Extension SDK 10.1.2

oracle.ide.model
Class PropertiesContainer

java.lang.Object
  extended byoracle.ide.model.DefaultDisplayable
      extended byoracle.ide.model.DefaultElement
          extended byoracle.ide.model.DefaultDocument
              extended byoracle.ide.model.DefaultNode
                  extended byoracle.ide.model.PropertiesNode
                      extended byoracle.ide.model.PropertiesContainer
All Implemented Interfaces:
Category, Container, Data, Dirtyable, Displayable, Document, Element, Folder, LazyLoadable, Locatable, Node, PropertyAccess, Subject

public class PropertiesContainer
extends PropertiesNode
implements Container

This is a complete implementation of the Container interface that uses a single HashMap to hold all of its data and an ArrayList to hold its children. PropertiesContainer takes care of marshalling the data and the children to XML and unmarshalling them from XML back into their respective HashMap and ArrayList. Unmarshalling (loading) and marshalling (saving) are done only on-demand. Access to the properties occurs through the PropertyAccess interface. Access to the children occurs through the Container interface.

This class serves primarily as an example of how a Container implementation can interact with Object2Dom to produce marshalling behavior that differs from the approach taken by XMLDataContainer. The XMLDataContainer class is the main Container class that is responsible for XML marshalling in the Oracle IDE framework and in JDeveloper.


Field Summary
 
Fields inherited from interface oracle.ide.addin.Subject
OBJECT_MODIFIED
 
Fields inherited from interface oracle.ide.model.Category
UNDEFINED
 
Constructor Summary
protected PropertiesContainer()
           
protected PropertiesContainer(java.net.URL url)
           
 
Method Summary
 boolean add(Element element)
          Appends a child Element to the end of the Folder.
 boolean add(Element element, boolean notifyObservers)
          This is a variant of the Folder.add(Element) method that accepts an additional flag that indicates whether or not notifications of the change should be sent to registered observers.
 boolean canAdd(Element element)
          Other classes can call this method to determine whether the given Element can be added to the Folder.
 boolean canRemove(Element element)
          Other classes can call this method to determine whether the specified Element can be removed from this Folder.
 void close()
          Closes the Document and unloads any associated data.
 boolean containsChild(Element child)
          Returns true if the folder contains the specified child Element; returns false otherwise.
 java.util.Iterator getChildren()
          This method is part of the Element interface to provide a convenient way of getting an Iterator over any contained child Elements without having to test the object's type with the instanceof operator or having to downcast to a more specific type.
 java.lang.String getShortLabel()
          Returns a short label that can be displayed to the user.
protected  java.lang.String getXMLRootElementName()
           
 boolean hasChild(Element element)
           
 boolean mayHaveChildren()
          This method is part of the Element interface to provide a convenient way of determining whether an object may have children without having to test the object's type with the instanceof operator or having to downcast to a more specific type.
 boolean remove(Element element)
          Removes the specified child Element.
 boolean remove(Element element, boolean notifyObservers)
          This is a variant of the Folder.remove(Element) method that accepts an additional flag that indiciates whether or not notifications of the change should be sent to registered observers.
 void removeAll()
          Removes all children from the folder.
 void removeAll(boolean notifyObservers)
          Removes all elements in the Container.
 void reopen()
          Overrides PropertiesNode.reopen().
 void save(boolean shallow)
          Saves the contents of the document.
 int size()
          Returns the current number of children in the folder.
 
Methods inherited from class oracle.ide.model.PropertiesNode
getProperties, getProperty, open, removeProperty, setProperties, setProperty
 
Methods inherited from class oracle.ide.model.DefaultNode
equalsImpl, getCategory, setURL
 
Methods inherited from class oracle.ide.model.DefaultDocument
attach, copyToImpl, createSubject, detach, ensureOpen, equalsImpl, getInputStream, getLongLabel, getSubject, getTimestamp, getTimestampDirectly, getToolTipText, getURL, isDirty, isNew, isOpen, isReadOnly, markDirty, notifyObservers, refreshTimestamp, setOpen, setTimestampDirectly, setURLDirectly
 
Methods inherited from class oracle.ide.model.DefaultElement
getAttributes, getData
 
Methods inherited from class oracle.ide.model.DefaultDisplayable
getIcon, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface oracle.ide.model.Document
getInputStream, getTimestamp, isNew, isReadOnly, open
 
Methods inherited from interface oracle.ide.model.Locatable
getURL, setURL
 
Methods inherited from interface oracle.ide.model.Element
getAttributes
 
Methods inherited from interface oracle.ide.model.Data
getData
 
Methods inherited from interface oracle.ide.model.Displayable
getIcon, getLongLabel, getToolTipText, toString
 
Methods inherited from interface oracle.ide.addin.Subject
attach, detach, notifyObservers
 
Methods inherited from interface oracle.ide.model.Dirtyable
isDirty, markDirty
 
Methods inherited from interface oracle.ide.model.LazyLoadable
isOpen
 
Methods inherited from interface oracle.ide.model.Category
getCategory
 

Constructor Detail

PropertiesContainer

protected PropertiesContainer(java.net.URL url)

PropertiesContainer

protected PropertiesContainer()
Method Detail

getShortLabel

public java.lang.String getShortLabel()
Description copied from interface: Displayable
Returns a short label that can be displayed to the user. Generally, the value of the returned String is considered translatable and should therefore be placed in an appropriate resource file. When possible, the returned label should be reasonably short enough to show in the navigator or explorer windows but long enough to clearly identify and distinguish the Displayable.

Specified by:
getShortLabel in interface Displayable
Overrides:
getShortLabel in class DefaultDocument
See Also:
Displayable.getShortLabel()

mayHaveChildren

public boolean mayHaveChildren()
Description copied from interface: Element
This method is part of the Element interface to provide a convenient way of determining whether an object may have children without having to test the object's type with the instanceof operator or having to downcast to a more specific type.

An implementation of Element that represents a leaf in a tree structure should return false from this method. An implementation of Element that could represent a non-leaf in a tree structure should return true from this method, even if it does not currently contain any children.

Specified by:
mayHaveChildren in interface Element
Overrides:
mayHaveChildren in class DefaultElement
See Also:
Element.mayHaveChildren()

getChildren

public java.util.Iterator getChildren()
Description copied from interface: Element
This method is part of the Element interface to provide a convenient way of getting an Iterator over any contained child Elements without having to test the object's type with the instanceof operator or having to downcast to a more specific type.

An implementation of Element that represents a leaf in a tree structure should return null from this method. An implementation of Element that could represent a non-leaf in a tree structure should return either an Iterator over the child Elements or null if there are no children.

Specified by:
getChildren in interface Element
Overrides:
getChildren in class DefaultElement
See Also:
Element.getChildren()

canAdd

public boolean canAdd(Element element)
Description copied from interface: Folder
Other classes can call this method to determine whether the given Element can be added to the Folder.

Specified by:
canAdd in interface Folder
Parameters:
element - the Element that is about to be added to this Folder.
Returns:
true if the specified Element can be added to this Folder; false if the Element cannot be added.

add

public boolean add(Element element)
Description copied from interface: Folder
Appends a child Element to the end of the Folder.

Specified by:
add in interface Folder

canRemove

public boolean canRemove(Element element)
Description copied from interface: Folder
Other classes can call this method to determine whether the specified Element can be removed from this Folder.

Specified by:
canRemove in interface Folder
Parameters:
element - the Element that is about to be removed from this Folder.
Returns:
true if the specified Element can be removed from this Folder; false if the Element cannot be removed.

remove

public boolean remove(Element element)
Description copied from interface: Folder
Removes the specified child Element. If the child object appears more than once, only the first instance is removed.

Specified by:
remove in interface Folder
Parameters:
element - The child object to remove.

size

public int size()
Description copied from interface: Folder
Returns the current number of children in the folder.

Specified by:
size in interface Folder

containsChild

public boolean containsChild(Element child)
Description copied from interface: Folder
Returns true if the folder contains the specified child Element; returns false otherwise.

Specified by:
containsChild in interface Folder

removeAll

public void removeAll()
Description copied from interface: Folder
Removes all children from the folder.

Specified by:
removeAll in interface Folder

add

public boolean add(Element element,
                   boolean notifyObservers)
Description copied from interface: Container
This is a variant of the Folder.add(Element) method that accepts an additional flag that indicates whether or not notifications of the change should be sent to registered observers.

Specified by:
add in interface Container
Parameters:
element - The Element to be added to this Container.
notifyObservers - If true, any observers are notified of the change. If false, no notification is sent.

remove

public boolean remove(Element element,
                      boolean notifyObservers)
Description copied from interface: Container
This is a variant of the Folder.remove(Element) method that accepts an additional flag that indiciates whether or not notifications of the change should be sent to registered observers.

Specified by:
remove in interface Container
Parameters:
element - The Element to be removed from this Container.
notifyObservers - If true, any observers are notified of the change. If false, no notification is sent.

removeAll

public void removeAll(boolean notifyObservers)
Description copied from interface: Container
Removes all elements in the Container. The notify flag indicates whether observers should be notified of the change.

Specified by:
removeAll in interface Container
Parameters:
notifyObservers - If true, any observers are notified of the change. If false, no notification is sent.

save

public void save(boolean shallow)
Description copied from interface: Document
Saves the contents of the document.

Specified by:
save in interface Document
Overrides:
save in class PropertiesNode

close

public void close()
Description copied from interface: Document
Closes the Document and unloads any associated data. When this method returns, the state of the Document object should be equivalent to when the Document object has just been instantiated but not yet opened.

Specified by:
close in interface Document
Overrides:
close in class PropertiesNode

reopen

public void reopen()
Overrides PropertiesNode.reopen(). This therefore also affects the behavior of PropertiesNode.open().

Overrides:
reopen in class PropertiesNode

getXMLRootElementName

protected java.lang.String getXMLRootElementName()
Overrides:
getXMLRootElementName in class PropertiesNode

hasChild

public boolean hasChild(Element element)

Extension SDK

 

Copyright © 1997, 2004, Oracle. All rights reserved.