oracle.ide.model
Class ObservableDataFolder
java.lang.Object
oracle.ide.model.DefaultDisplayable
oracle.ide.model.DefaultElement
oracle.ide.model.DefaultFolder
oracle.ide.model.DataFolder
oracle.ide.model.ObservableDataFolder
- All Implemented Interfaces:
- Copyable, Data, Dirtyable, Displayable, Element, Folder, Subject
- Direct Known Subclasses:
- Workspaces
- public class ObservableDataFolder
- extends DataFolder
- implements Subject
ObservableDataFolder
is a complete, default implementation of the Folder
and Subject
interfaces. This is a convenient starting point for the implementation of data classes which can be integrated with the IDE framework.
- See Also:
Subject
, DataFolder
Method Summary |
void |
attach(Observer observer)
Registers an observer interested in being notified when the internal state of the class implementing the Subject interface changes. |
java.lang.Object |
copyTo(java.lang.Object object)
Copies the internal state of this object to the specified copy . |
void |
detach(Observer observer)
Unregisters an observer that is not interested anymore in being notified when the internal state of the class implementing the Subject interface changes. |
void |
notifyObservers(java.lang.Object observed, UpdateMessage change)
Notifies all observers that the state of the subject has changed. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface oracle.ide.model.Data |
getData |
ObservableDataFolder
public ObservableDataFolder()
- Default constructor needed for JavaBean status.
ObservableDataFolder
public ObservableDataFolder(ObservableDataFolder observableDataFolder)
- Copy constructor.
copyTo
public java.lang.Object copyTo(java.lang.Object object)
- Description copied from interface:
Copyable
- Copies the internal state of
this
object to the specified copy
. If copy
is null
, then this method should create a new instance of this
class and proceed to copy the internal state to the newly created object. Generally, only the persistent state of the object should be copied, but whether or not it is appropriate to copy transient properties is at the discretion of the individual implementor.
Regardless of whether the copy occurs to an existing object or to a newly created object, the return value is object to which this
object's state was copied.
There is a standard implementation pattern for the copyTo
method that helps avoid problems that arise when a Copyable
object is subclassed. The pattern is:
public Object copyTo( Object target )
{
final <this_class> copy =
target != null ? (<this_class>) target : new <this_class>();
copyToImpl( copy );
return copy;
} protected final void copyToImpl( <this_class> copy ) { super.copyToImpl( copy ); // if necessary // put code here for copying the properties of <this_class> }
The parameter passed into the copyToImpl
method is the same type of this
class. The responsibility of copyToImpl
is to copy the state of this
class through direct access of the fields. The copyToImpl
method should not use getters and setters since these may be overridden, causing the state of this
class to be incompletely copied.
-
- Specified by:
copyTo
in interface Copyable
- Overrides:
copyTo
in class DataFolder
attach
public void attach(Observer observer)
- Description copied from interface:
Subject
- Registers an observer interested in being notified when the internal state of the class implementing the
Subject
interface changes. Implementors should do nothing when the same observer is added more than once.
-
- Specified by:
attach
in interface Subject
-
- Parameters:
observer
- the Observer
interested in change notification messages.
detach
public void detach(Observer observer)
- Description copied from interface:
Subject
- Unregisters an observer that is not interested anymore in being notified when the internal state of the class implementing the
Subject
interface changes. Implementors should do nothing when the same observer is removed more than once.
-
- Specified by:
detach
in interface Subject
-
- Parameters:
observer
- the Observer
disinterested in change notification messages.
notifyObservers
public void notifyObservers(java.lang.Object observed,
UpdateMessage change)
- Description copied from interface:
Subject
- Notifies all observers that the state of the subject has changed.
-
- Specified by:
notifyObservers
in interface Subject
-
- Parameters:
observed
- the subject whose state has changed.
change
- what changed.
Copyright © 1997, 2004, Oracle. All rights reserved.