commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Victor Volle <victor.vo...@gmxpro.net>
Subject Re: [clazz] Type-based or instance-based metadata? Take II
Date Mon, 28 Oct 2002 06:49:44 GMT
> a) We introduce all those methods suggested by Victor Volle:

It was never meant as a suggestion but rather as a "beware" :-)

> boolean isIndexed();
> boolean isMapped();
> boolean isListed();        // I would call it "isUnorderedCollection"
> 
> we keep all access methods and throw an exception when the wrong one is
> called.
> 
> 
> b) We follow what I think is Berin's suggestion (admittedly I don't always
> understand them - I am not a native speaker of English, C# and Avalon),
> 
> Anyway, my understanding is that the idea is to have these methods:
> 
> field.getAttributeMethod(),        // Type based
> field.getAttributeMethod(Object instance) // Instance based
> 
> which return one of the following
>     BasicAttributeMethod
>     IndexedAttributeMethod
>     MappedAttributeMethod
>     UnorderedCollectionAttributeMethod
>     IterationAttributeMethod
> 
> (names would have to be fixed up)
> 
> Each of these would have methods specific to the corresponding way of
> manipulating the attribute.  For example,
> 
> class BasicAttributeMethod {
>     Object get(Object instance);
>     void set(Object instance, Object value);
>     Object setNew(Object instance, Clazz clazz, Object[] parameters);
> }
> 
> class IndexedAttributeMethod {
>     int getSize(Object instance);
>     Object get(Object instance, int index);
>     void set(Object instance, int index, Object value);
>     Object setNew(Object instance, int index, Clazz clazz, Object[]
> parameters);
> }
> 
> etc.
> 
> I think (b) is the nicer of the two appoaches.

that would mean calling "instanceof". 
I do not like either solution.

Anyway, I would also tend to solution b) if we throw
in the method add() for Indexed and (Un)orderedCollection.
(Lists are not unordered, Sets are. What about 
CollectionAttribute and make IndexedAttribute a subclass?)


Victor


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message