Eliminate ByteBuffers
Elliotte Harold
elharo at metalab.unc.edu
Mon Oct 6 06:43:39 PDT 2008
Well, not everywhere. :-) However I do wonder about the use of
ByteBuffers in what amount to maps such as NamedAttributeView.
int write(String name, ByteBuffer src) throws IOException
Why not just simple getAttribute and setAttribute methods? We have them but
Object getAttribute(String attribute)
throws IOException
Reads the value of an attribute.
In this release, this method may not be used to read the value of a
named attribute. Consequently this method will return null.
and
NamedAttributeView setAttribute(String attribute,
Object value)
throws IOException
Writes the value of an named attribute from a buffer.
The value parameter is a ByteBuffer and this method writes the
value of the attribute from the buffer as if by invoking the write method.
This is so weird I'm not sure where to start. The object passed to
setAttribute is always a ByteBuffer, but it's declared as an Object?
Why? getAttribute always returns null?
This is improving, but it's still very strange and hard to follow.
I think named attributes need to be reduced to a simple String name and
an Object or String (probably Object) value. ByteBuffers simply should
not be in the picture here. I guess you have ByteBuffers on the brain
because of all the other work you're doing with them, but they're not a
common or comfortable API for this sort of work. Nor are they necessary.
I think if you treat the NamedAttributeView as a map, it will be much
simpler, cleaner, and more effective.
--
Elliotte Rusty Harold elharo at metalab.unc.edu
Refactoring HTML Just Published!
http://www.amazon.com/exec/obidos/ISBN=0321503635/ref=nosim/cafeaulaitA
More information about the nio-discuss
mailing list