Interface ICStorageElement
- All Known Implementing Classes:
XmlStorageElement
public interface ICStorageElement
This interface represents an generic element in a storage tree. These trees are rooted at
ICSettingsStorage
elements.
This abstract storage mechanism is used, e.g. with the ICProjectDescription
and
ICConfigurationDescription
for storing custom data in the settings file (.cproject)
or in a database.- See Also:
- Restriction:
- This interface is not intended to be implemented by clients.
- Restriction:
- This interface is not intended to be extended by clients.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Erases all children, attributes and any value set on this ICStorageElementcreateChild
(String name) Create a child ICStorageElement with the given name.Create a deep copy of the current ICStorageElement such that name, children, attributes and value are the same.boolean
equals
(ICStorageElement other) Tests whether this storage element is exactly equal to other To be equal all name, children attributes and value must be equal between the two ICStorageElementsgetAttribute
(String name) Return the String of attribute value for name.String[]
Returns a string array of attribute namesReturns an array of the ICStorageElement children of this ICStorageElement or an empty array if no children were foundgetChildrenByName
(String name) Returns the children ICStorageElements with name namegetName()
Returns the name of this ICStorageElementReturn the parent IStorageElement or null if this ICStorageElement doesn't have a parentgetValue()
Returns the String value of this element or null if there is no String value set.boolean
hasAttribute
(String name) Return whether this ICStorageElement contains an attribute value for nameboolean
Returns true if this storage element has child ICStorageElementsimportChild
(ICStorageElement element) Imports an existing ICStorageElemtn as a child of this ICStorageElementvoid
removeAttribute
(String name) Remove an attribute from this ICStorageElementvoid
Removes the ICStorageElement from the set of child ICSotrageElementsvoid
setAttribute
(String name, String value) Set an attribute on this ICStorageElementvoid
Sets a String value on the ICStorageElement
-
Method Details
-
getAttribute
Return the String of attribute value for name. If attribute is not found (hasAttribute(name) is false) this method returns null- Parameters:
name
-- Returns:
- String value or null if hasAttribute is false
-
hasAttribute
Return whether this ICStorageElement contains an attribute value for name- Parameters:
name
-- Returns:
- boolean indicating existence of attribute with name name
- Since:
- 5.1
-
getAttributeNames
String[] getAttributeNames()Returns a string array of attribute names -
getParent
ICStorageElement getParent()Return the parent IStorageElement or null if this ICStorageElement doesn't have a parent- Returns:
- ICStorageElement parent or null
-
setAttribute
Set an attribute on this ICStorageElement- Parameters:
name
-value
-
-
removeAttribute
Remove an attribute from this ICStorageElement- Parameters:
name
-
-
createChild
Create a child ICStorageElement with the given name.- Parameters:
name
-- Returns:
- new ICStorageElement representing the child
-
getChildren
ICStorageElement[] getChildren()Returns an array of the ICStorageElement children of this ICStorageElement or an empty array if no children were found- Returns:
- ICStorageElement[] of children or empty array
-
getChildrenByName
Returns the children ICStorageElements with name name- Parameters:
name
- String name of children to be returned- Returns:
- ICStorageElement[] of children may be the empty list if no children with name found
- Since:
- 5.1
-
hasChildren
boolean hasChildren()Returns true if this storage element has child ICStorageElements- Returns:
- boolean indicating whether this ICStorageElement has children
- Since:
- 5.1
-
clear
void clear()Erases all children, attributes and any value set on this ICStorageElement -
getName
String getName()Returns the name of this ICStorageElement -
removeChild
Removes the ICStorageElement from the set of child ICSotrageElements- Parameters:
el
-
-
getValue
String getValue()Returns the String value of this element or null if there is no String value set. NB a pure whitespace value is considered to be null- Returns:
- String or null
-
setValue
Sets a String value on the ICStorageElement- Parameters:
value
-
-
importChild
Imports an existing ICStorageElemtn as a child of this ICStorageElement- Parameters:
element
-- Returns:
- ICStorageElement a handle on the newly imported ICStorageElement
- Throws:
UnsupportedOperationException
-
createCopy
ICStorageElement createCopy() throws UnsupportedOperationException, org.eclipse.core.runtime.CoreExceptionCreate a deep copy of the current ICStorageElement such that name, children, attributes and value are the same.
However this is implemented it should appear to the user that a deep copy of the elements within has occurred. [ Though the implementation may be copy-on-write if the underlying data structure is suitable. ]
getParent() of the clone should be equal to the original element.getParent(). However the clone() doesn't appear in the parent's getChildren() array.- Returns:
- ICStorageElement deep copy of this ICStorageElement
- Throws:
UnsupportedOperationException
org.eclipse.core.runtime.CoreException
- Since:
- 5.1
-
equals
Tests whether this storage element is exactly equal to other To be equal all name, children attributes and value must be equal between the two ICStorageElements- Parameters:
other
-- Returns:
- boolean indicating equality
- Since:
- 5.1
-