RowanChristmas - 10/03/05 -- A copy? or the actual CyData object? Getting a copy seems like it would be more or less useless as I would not be able to have my changes reflected anywhere. Also I am not sure what we gain by not having this class extend CyData/Definition directly. It seems like the logical way to go, especailly since both of those classes are already implemented by the same class.
EthanCerami - 10/4/05 - This is still very much open to debate, and I don't think anyone agrees 100% with my original proposal to have CyAttributes return CyData. However, if we were to adopt this approach, I agree it would have to return the actual CyData object, and not a copy or a clone. Otherwise, things would get really confusing. And, I definitely see the logic in having CyAttributes extend CyData / CyDefinition. However, I think there is also some logic in having CyAttributes embed CyData too.
My current thinking on this is that we rename CyData into something more meaningful, and more clearly tied to its role as a data structure. For example, we might consider renaming it to something like SparseTree. If that were the case, then we could simple say that CyAttributes uses a SparseTree as a back-end data structure, and CyAttributes provides simplified access to that data structure. If you want to add data that is any more complicated, you can obtain the backend data store directly via getSparseTree(), and work on the data structure directly.
IlianaAvila - 10/04/05 -- I have a request, could we link the Javadocs for CyData/CyDefinition in this Wiki, so that we can all look at them? I think these two classes need to be renamed, urgently. The way we name things affects the way we think about them, like Ethan suggests above. I think we should talk about that renaming during our conference call. It sounds to me like "CyData" itself is an interface, right? There is a separate class (that uses a tree) that implements it. Why not have "CyAttributes" contain the methods that "CyData" has (which I hear are a few), and then, have the class that implements "CyData" (I don't know its name) be the back end data structure for "CyAttributes"? "CyAttributes" could have a get method for "CyDefinition". I don't think "CyAttributes" should extend "CyDefinition".
EthanCerami - 10/04/05 -- Subgroup (Nerius, Iliana, and Ethan) agreed to embed CyData instead of extending it.