agg.attribute.impl
Class DeclTuple

java.lang.Object
  extended by agg.attribute.impl.AttrObject
      extended by agg.attribute.impl.ManagedObject
          extended by agg.attribute.impl.ChainedObserver
              extended by agg.attribute.impl.TupleObject
                  extended by agg.attribute.impl.DeclTuple
All Implemented Interfaces:
AttrObserver, AttrTuple, AttrType, AttrMsgCode, Disposable, XMLObject, java.io.Serializable, java.util.Observer

public class DeclTuple
extends TupleObject
implements AttrType, AttrMsgCode, XMLObject

See Also:
Serialized Form

Field Summary
protected static AttrViewSetting fixedFormSetting
           
protected  boolean loneDeclaration
           
protected  java.util.Vector<DeclTuple> parents
          Parent list of this type.
 
Fields inherited from class agg.attribute.impl.TupleObject
members, parent
 
Fields inherited from class agg.attribute.impl.ChainedObserver
MAX_SIZE_OF_EVENT_STACK, sizeOfEventStack
 
Fields inherited from class agg.attribute.impl.ManagedObject
manager
 
Fields inherited from class agg.attribute.impl.AttrObject
classHandlerExpr, classObject, classString, initialized
 
Fields inherited from interface agg.attribute.impl.AttrMsgCode
ATTR_DONT_MATCH, BAD_EXPR_TYPE, EXPR_EVAL_ERR, EXPR_MUST_BE_CONST, EXPR_MUST_BE_CONST_OR_VAR, EXPR_PARSE_ERR, EXPR_REQUIRED, MATCH_TARGETS_DIFFER, NAME_DUPLICATION, NO_SUCH_NAME, NO_SUCH_TYPE, OK, RULE_SOURCES_DIFFER, VAR_NOT_DECLARED
 
Fields inherited from interface agg.attribute.AttrObserver
serialVersionUID
 
Constructor Summary
DeclTuple(AttrTupleManager manager)
           
DeclTuple(AttrTupleManager manager, DeclTuple parent)
           
 
Method Summary
 void addEntry(AttrHandler handler, java.lang.String type, java.lang.String name)
          Deprecated.  
 AttrTypeMember addMember()
          Adding an empty declaration.
 AttrTypeMember addMember(AttrHandler handler, java.lang.String type, java.lang.String name)
          Adding a declaration.
 AttrTypeMember addMember(int index, AttrHandler handler, java.lang.String type, java.lang.String name)
           
 void addObserver(AttrObserver attrObs)
          Overrides ChainedObserver: views must be notified before others.
 boolean addParent(DeclTuple p)
           
 void checkNameValidity(java.lang.String name)
          Checking the validity of a name as a unique key for a member.
 boolean compareTo(AttrType tuple)
          Compares an attribute type with the current one
 boolean containsMember(DeclMember m)
           
 boolean containsName(java.lang.String name)
          Querying if an entry is declared.
 void deleteEntry(java.lang.String name)
          Deprecated.  
protected  void deleteLeafMemberAt(int rootIndex)
           
 void deleteMemberAt(AttrViewSetting viewSetting, int slot)
          Delete a declaration.
 void deleteMemberAt(int index)
          Delete a declaration.
 void deleteMemberAt(java.lang.String name)
          Delete a declaration.
 void dispose()
          Prepare myself for garbage collection.
protected  void finalize()
           
 java.util.Enumeration<DeclTuple> getAllParents()
           
protected  DeclMember getDeclMemberAt(int index)
          Convenience method for internal operations; works much like the generic getMemberAt( int index ), but returns the appropriate member type.
protected  DeclMember getDeclMemberAt(java.lang.String name)
          Convenience method for internal operations; works much like the generic getMemberAt( int index ), but returns the appropriate member type.
 java.util.Vector<DeclTuple> getDirectParents()
           
protected  AttrViewSetting getForm()
           
 DeclTuple getHoldingTupleOfMember(int index)
           
 int getIndexForName(java.lang.String name)
          Translation between number- and name-oriented access.
protected  AttrMember getLeafMemberAt(int rootIndex)
          Getting a member from the container of this child.
 AttrMember getMemberAt(int index)
          Getting a tuple member by its absolute (view-independent) index.
 AttrMember getMemberAt(java.lang.String name)
          Getting a tuple member by its declaration name.
 java.lang.String getNameAsString(int entryIndex)
          Getting a simple representation of a name as String.
 int getNumberOfEntries()
          Getting the total number of attribute entries (lines); The retrieval index range is [0 ..
protected  DeclTuple getParent(int index)
           
 DeclTuple getParentInCharge(int index)
           
protected  java.util.Vector<DeclTuple> getParents()
           
 int getParentSize(DeclTuple p)
           
protected  int getParentsSize()
           
 int getSize()
          Own size is added to the parents' size, recursively, so the result ist the total number of declarations known to this instance.
 DeclTuple getTupleType()
          This method interface is needed in order to treat attribute types and instances uniformly.
 java.lang.String getTypeAsString(int entryIndex)
          Getting a simple representation of a type as String.
 java.lang.String getValueAsString(int entryIndex)
          Getting a view-independent representation of a value as String.
 OpenViewSetting getView()
           
 boolean isClassName(java.lang.String name)
           
 boolean isLeafMember(java.lang.String name)
           
 int isLegalName(java.lang.String text)
          Check if 'text'is already defined as attribute name.
 int isLegalType(AttrHandler handler, java.lang.String typeName)
          Check if 'handler' says that it can make a type out of 'typeName'.
 boolean isOwnMemberAt(AttrViewSetting viewSetting, int slot)
          Returns true when the member of the slot belongs to this attribute type, false - when the member belongs to a parent type.
protected  DeclMember newMember()
          Subclasses use/override this method in order to create their own members of the appropriate type.
 void refreshObservers()
           
 void refreshParents()
           
 void refreshParentsAfterAdd()
           
 void refreshParentsAfterRemove()
           
 void removeEntryAt(int index)
          Deprecated.  
 void removeParent(DeclTuple p)
          Removes the specified parent from my parents.
protected  void removeParents()
          Removes all parents.
 void renameMemberAt(int index, java.lang.String name)
          Deprecated.  
 void retypeMemberAt(int index, AttrHandler handler, java.lang.String type)
          Deprecated.  
protected  void setForm(AttrViewSetting formSetting)
           
 void setParent(DeclTuple newParent)
           
 void setView(OpenViewSetting ovs)
           
protected  int toLeafIndex(int rootIndex)
          Transforming a root index into the corresponding index of this leaf.
protected  int toRootIndex(int leafIndex)
          Obtaining the index relative to the root of the inheritance tree.
 java.lang.String toString()
           
 void updateMemberAdded(TupleEvent e)
          Fires the same event.
 void updateMemberDeleted(TupleEvent e)
          Fires the same event.
 void XreadObject(XMLHelper h)
           
 void XwriteObject(XMLHelper h)
           
 
Methods inherited from class agg.attribute.impl.TupleObject
addMember, addMember, assignParent, ensureNonNull, getIndexForMember, getIndexInView, getMemberAt, getNameAsString, getNumberOfEntries, getParent, getParentSize, getType, getTypeAsString, getValueAsString, isSubclassOf, isValid, memberChanged, propagateEvent, rawAddMember, rawAddMember, rawDeleteMemberAt, rawGetMemberAt, rawGetSize
 
Methods inherited from class agg.attribute.impl.ChainedObserver
addObserverAtPos, attributeChanged, contains, filterEvent, findObserver, fireAttrChanged, fireAttrChanged, fireAttrChanged, getObservers, isPersistentFor, removeObserver, updateGeneralChange, updateMemberModified, updateMemberRenamed, updateMemberRetyped, updateUnknownChange, updateValueCorrectness, updateValueModified
 
Methods inherited from class agg.attribute.impl.ManagedObject
getAttrManager, getManager
 
Methods inherited from class agg.attribute.impl.AttrObject
defaultToString, err, err, getInstRepr, log, log, log, logEnteredMethod, logPrintln, logPrintln, stdoutPrintOnEnter, stdoutPrintOnExit, update, warn, warn, warn, warn
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface agg.attribute.AttrTuple
getAttrManager, getIndexForMember, getMemberAt, getNameAsString, getNumberOfEntries, getTypeAsString, getValueAsString, isValid, removeObserver
 

Field Detail

fixedFormSetting

protected static AttrViewSetting fixedFormSetting

parents

protected final java.util.Vector<DeclTuple> parents
Parent list of this type. All parent entries are "inherited".


loneDeclaration

protected boolean loneDeclaration
Constructor Detail

DeclTuple

public DeclTuple(AttrTupleManager manager)

DeclTuple

public DeclTuple(AttrTupleManager manager,
                 DeclTuple parent)
Parameters:
parent - For inheritance purposes.
Method Detail

dispose

public void dispose()
Description copied from interface: Disposable
Prepare myself for garbage collection.

Specified by:
dispose in interface Disposable
Overrides:
dispose in class TupleObject

finalize

protected void finalize()
Overrides:
finalize in class TupleObject

removeParents

protected void removeParents()
Removes all parents.


getParents

protected java.util.Vector<DeclTuple> getParents()

getAllParents

public java.util.Enumeration<DeclTuple> getAllParents()

getParent

protected DeclTuple getParent(int index)
Parameters:
index - specifies the position of my direct parent to return
Returns:
parent

setView

public void setView(OpenViewSetting ovs)

getView

public OpenViewSetting getView()

getSize

public int getSize()
Own size is added to the parents' size, recursively, so the result ist the total number of declarations known to this instance.

Overrides:
getSize in class TupleObject

getParentSize

public int getParentSize(DeclTuple p)

getParentsSize

protected int getParentsSize()

getDirectParents

public java.util.Vector<DeclTuple> getDirectParents()

toLeafIndex

protected int toLeafIndex(int rootIndex)
Transforming a root index into the corresponding index of this leaf.

Parameters:
rootIndex - Relative to the root of the inheritance tree.
Returns:
Corresponding index value for this leaf.

toRootIndex

protected int toRootIndex(int leafIndex)
Obtaining the index relative to the root of the inheritance tree.

Parameters:
leafIndex - Refers to this leaf.
Returns:
Corresponding index value referring to the root.

getLeafMemberAt

protected AttrMember getLeafMemberAt(int rootIndex)
Getting a member from the container of this child.


getDeclMemberAt

protected DeclMember getDeclMemberAt(int index)
Convenience method for internal operations; works much like the generic getMemberAt( int index ), but returns the appropriate member type.

See Also:
TupleObject.getMemberAt( int )

getDeclMemberAt

protected DeclMember getDeclMemberAt(java.lang.String name)
Convenience method for internal operations; works much like the generic getMemberAt( int index ), but returns the appropriate member type.

See Also:
TupleObject.getMemberAt( String )

newMember

protected DeclMember newMember()
Subclasses use/override this method in order to create their own members of the appropriate type.


deleteLeafMemberAt

protected void deleteLeafMemberAt(int rootIndex)

getForm

protected AttrViewSetting getForm()
Overrides:
getForm in class TupleObject

setForm

protected void setForm(AttrViewSetting formSetting)
Overrides:
setForm in class TupleObject

getTupleType

public DeclTuple getTupleType()
Description copied from class: TupleObject
This method interface is needed in order to treat attribute types and instances uniformly.

Specified by:
getTupleType in interface AttrTuple
Specified by:
getTupleType in class TupleObject

checkNameValidity

public void checkNameValidity(java.lang.String name)
Checking the validity of a name as a unique key for a member. Tests if 'name' is assigned to more than one member. If so, the method 'setNameValid( false )' is invoked on every such member. Otherwise, 'setNameValid( true )' is invoked on the member with this name if such a member exists. Called by DeclMember when changing the name.


isClassName

public boolean isClassName(java.lang.String name)

containsName

public boolean containsName(java.lang.String name)
Querying if an entry is declared.


containsMember

public boolean containsMember(DeclMember m)

isLeafMember

public boolean isLeafMember(java.lang.String name)

getParentInCharge

public DeclTuple getParentInCharge(int index)
Overrides:
getParentInCharge in class TupleObject
Returns:
The ancestor that originated the member at 'index'.

getMemberAt

public AttrMember getMemberAt(int index)
Description copied from interface: AttrTuple
Getting a tuple member by its absolute (view-independent) index.

Specified by:
getMemberAt in interface AttrTuple
Overrides:
getMemberAt in class TupleObject

getMemberAt

public AttrMember getMemberAt(java.lang.String name)
Description copied from interface: AttrTuple
Getting a tuple member by its declaration name.

Specified by:
getMemberAt in interface AttrTuple
Overrides:
getMemberAt in class TupleObject

addMember

public AttrTypeMember addMember()
Description copied from interface: AttrType
Adding an empty declaration. The new declaration member is returned and can be extended by calling the respective AttrTypeMember methods.

Specified by:
addMember in interface AttrType

addMember

public AttrTypeMember addMember(AttrHandler handler,
                                java.lang.String type,
                                java.lang.String name)
Description copied from interface: AttrType
Adding a declaration.

Specified by:
addMember in interface AttrType
Parameters:
handler - attribute handler for the entry type;
type - textual representation of the entry type;
name - name (selector) of the entry within the attribute tuple.
Returns:
The newly created member declaration.

addMember

public AttrTypeMember addMember(int index,
                                AttrHandler handler,
                                java.lang.String type,
                                java.lang.String name)

getHoldingTupleOfMember

public DeclTuple getHoldingTupleOfMember(int index)

deleteMemberAt

public void deleteMemberAt(int index)
Description copied from interface: AttrType
Delete a declaration.

Specified by:
deleteMemberAt in interface AttrType
Overrides:
deleteMemberAt in class TupleObject
Parameters:
index - index of the member within the attribute tuple.

isOwnMemberAt

public boolean isOwnMemberAt(AttrViewSetting viewSetting,
                             int slot)
Description copied from interface: AttrType
Returns true when the member of the slot belongs to this attribute type, false - when the member belongs to a parent type.

Specified by:
isOwnMemberAt in interface AttrType
Parameters:
viewSetting - view setting to relate to
slot - slot of the member within the view of the attribute tuple

deleteMemberAt

public void deleteMemberAt(AttrViewSetting viewSetting,
                           int slot)
Description copied from interface: AttrType
Delete a declaration.

Specified by:
deleteMemberAt in interface AttrType
Parameters:
viewSetting - view setting to relate to.
slot - slot of the member within the view of the attribute tuple.

deleteMemberAt

public void deleteMemberAt(java.lang.String name)
Description copied from interface: AttrType
Delete a declaration.

Specified by:
deleteMemberAt in interface AttrType
Parameters:
name - name (selector) of the entry within the attribute tuple.

XwriteObject

public void XwriteObject(XMLHelper h)
Specified by:
XwriteObject in interface XMLObject

XreadObject

public void XreadObject(XMLHelper h)
Specified by:
XreadObject in interface XMLObject

getIndexForName

public int getIndexForName(java.lang.String name)
Translation between number- and name-oriented access.

Overrides:
getIndexForName in class TupleObject
Returns:
The corresponding index if the name is declared within the tuple, -1 otherwise.

isLegalType

public int isLegalType(AttrHandler handler,
                       java.lang.String typeName)
Check if 'handler' says that it can make a type out of 'typeName'.


isLegalName

public int isLegalName(java.lang.String text)
Check if 'text'is already defined as attribute name. Returns an attribute status code as result of the attribute name check. It is failed for the status code > 0.

See Also:
interface

renameMemberAt

public void renameMemberAt(int index,
                           java.lang.String name)
Deprecated. 

Renaming a declaration.

See Also:
DeclMember

retypeMemberAt

public void retypeMemberAt(int index,
                           AttrHandler handler,
                           java.lang.String type)
Deprecated. 

Changing the type of a declaration.

See Also:
DeclMember

removeEntryAt

public void removeEntryAt(int index)
Deprecated. 

Removing a declaration at 'index'.

See Also:
deleteMemberAt(int)

getNumberOfEntries

public int getNumberOfEntries()
Getting the total number of attribute entries (lines); The retrieval index range is [0 .. (getNumberOfEntries() - 1)].

Specified by:
getNumberOfEntries in interface AttrTuple
Overrides:
getNumberOfEntries in class TupleObject

getTypeAsString

public java.lang.String getTypeAsString(int entryIndex)
Description copied from class: TupleObject
Getting a simple representation of a type as String.

Specified by:
getTypeAsString in interface AttrTuple
Overrides:
getTypeAsString in class TupleObject
Parameters:
entryIndex - Index of entry.

getNameAsString

public java.lang.String getNameAsString(int entryIndex)
Description copied from class: TupleObject
Getting a simple representation of a name as String.

Specified by:
getNameAsString in interface AttrTuple
Overrides:
getNameAsString in class TupleObject
Parameters:
entryIndex - Index of entry.

getValueAsString

public java.lang.String getValueAsString(int entryIndex)
Description copied from interface: AttrTuple
Getting a view-independent representation of a value as String.

Specified by:
getValueAsString in interface AttrTuple
Overrides:
getValueAsString in class TupleObject
Parameters:
entryIndex - Index of entry.

addObserver

public void addObserver(AttrObserver attrObs)
Overrides ChainedObserver: views must be notified before others.

Specified by:
addObserver in interface AttrTuple
Overrides:
addObserver in class ChainedObserver
Parameters:
attrObs - The attribute observer to be registered.

updateMemberAdded

public void updateMemberAdded(TupleEvent e)
Description copied from class: ChainedObserver
Fires the same event. Subclasses should override this method for customized behaviour.

Overrides:
updateMemberAdded in class ChainedObserver

updateMemberDeleted

public void updateMemberDeleted(TupleEvent e)
Description copied from class: ChainedObserver
Fires the same event. Subclasses should override this method for customized behaviour.

Overrides:
updateMemberDeleted in class ChainedObserver

toString

public java.lang.String toString()
Overrides:
toString in class AttrObject

addEntry

public void addEntry(AttrHandler handler,
                     java.lang.String type,
                     java.lang.String name)
Deprecated. 

Description copied from interface: AttrType
Adding a declaration.

Specified by:
addEntry in interface AttrType
Parameters:
handler - attribute handler for the entry type;
type - textual representation of the entry type;
name - name (selector) of the entry within the attribute tuple.
See Also:
addMember()

deleteEntry

public void deleteEntry(java.lang.String name)
Deprecated. 

Description copied from interface: AttrType
Delete a declaration.

Specified by:
deleteEntry in interface AttrType
Parameters:
name - name (selector) of the entry within the attribute tuple.
See Also:
deleteMemberAt(int)

compareTo

public boolean compareTo(AttrType tuple)
Compares an attribute type with the current one

Specified by:
compareTo in interface AttrType
Parameters:
tuple - attribute type to be compared with.

setParent

public void setParent(DeclTuple newParent)

addParent

public boolean addParent(DeclTuple p)

removeParent

public void removeParent(DeclTuple p)
Removes the specified parent from my parents.


refreshParents

public void refreshParents()

refreshParentsAfterAdd

public void refreshParentsAfterAdd()

refreshParentsAfterRemove

public void refreshParentsAfterRemove()

refreshObservers

public void refreshObservers()