|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectpl.edu.agh.cast.data.model.property.PropertyContainer
pl.edu.agh.cast.data.model.AbstractDataSet<T>
T - type of elements contained in the data set
XXX: [kpietak] consider if AbstractDataSet (IDataSet) could implement PropertyChangeProviderpublic abstract class AbstractDataSet<T extends IElement>
Abstract implementation of IDataSet.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface pl.edu.agh.cast.data.model.IDataSet |
|---|
IDataSet.Properties |
| Field Summary |
|---|
| Fields inherited from interface pl.edu.agh.cast.data.model.IDataSet |
|---|
ACCEPTED_TYPES, TYPE |
| Constructor Summary | |
|---|---|
protected |
AbstractDataSet(DataSetDescriptor descriptor)
Initializes data set with its descriptor and a newly created MetaPropertyManager. |
protected |
AbstractDataSet(DataSetDescriptor descriptor,
MetaPropertyManager metaPropertyManager)
Initializes data set with its descriptor and MetaPropertyManager. |
protected |
AbstractDataSet(DataSetDescriptor descriptor,
MetaPropertyManager metaPropertyManager,
Map<Type,MetaPropertyManager> elementMPMs)
Initializes data set with its descriptor and MetaPropertyManager. |
| Method Summary | ||
|---|---|---|
protected DataSetDescriptor |
acquireDescriptor()
Returns the non-null descriptor of this data set. |
|
void |
addElement(T element)
Adds an element to this data set. |
|
void |
addElements(Collection<? extends T> elements)
Adds a collection of elements to this data set. |
|
void |
addElements(T... elements)
Adds multiple elements to this data set. |
|
void |
addMetaPropertyManager(Type elementType)
Adds a meta-property manager of elements of given type based on type class annotations. |
|
void |
addMetaPropertyManager(Type elementType,
MetaPropertyManager metaPropertyManager)
Adds a meta-property manager of elements of given type. |
|
void |
addMetaPropertyManagersForAcceptedTypes()
Adds meta-property managers for all types accepted by the data set by default. |
|
protected void |
afterAddElement(T element)
This method is called after successfully adding the given element to the data set. |
|
protected void |
afterRemoveElement(T element)
This method is called after successfully removing the given element from the data set. |
|
protected void |
afterSetMetaPropertyManager()
Adds all PermanentProperty'ies and TransientProperty'ies defined this container's meta-property
manager. |
|
protected void |
beforeAddElement(T element)
This method is called before adding the given element to the data set. |
|
protected void |
beforeRemoveElement(T element)
This method is called before attempting to remove the given element from the data set. |
|
protected boolean |
checkIfValid()
Checks if the data set is valid. |
|
protected DataSetDescriptor |
createNewDescriptor()
Returns new, uninitialized instance of descriptor. |
|
boolean |
equals(Object other)
Compares two elements. |
|
Collection<Type> |
getAcceptedTypes()
Returns collection of types of IElements this data set is able to accept. |
|
Collection<? extends T> |
getAssignableElements(Type elementType)
Returns elements from this data set of given type (or it's sub-type). |
|
Date |
getCreationDate()
Returns the data set creation date. |
|
DataSetDescriptor |
getDescriptor()
Returns the descriptor of this data set. |
|
protected String |
getDescString()
Returns a string with short description of element. |
|
T |
getElement(UUID elementId)
Returns element from this data set with given ID. |
|
int |
getElementCount()
Returns the number of elements in this data set. |
|
Collection<? extends T> |
getElements()
Returns all elements from this data set. |
|
Collection<? extends T> |
getElements(Type elementType)
Returns elements from this data set of the same type as given one. |
|
Collection<Type> |
getElementTypes()
Returns collection of types of IElements this data set contains. |
|
UUID |
getId()
Returns object's globally unique ID. |
|
MetaPropertyManager |
getMetaPropertyManager(Type elementType)
Returns meta-property manager of elements of given type. |
|
Collection<MetaPropertyManager> |
getMetaPropertyManagers()
Returns meta-property managers for all types of elements. |
|
String |
getName()
Returns the name of the data set. |
|
Collection<Type> |
getRegisteredTypes()
Returns collection of types of IElements this data set is ready to accept, i.e. |
|
Type |
getType()
Returns object's type. |
|
int |
hashCode()
|
|
protected boolean |
isDescriptorValid(DataSetDescriptor descriptor)
Checks if the descriptor is valid for the data set. |
|
protected boolean |
isElementValid(T element)
Checks if given element is valid for the data set. |
|
boolean |
isValid()
Checks if the state of implementing object is valid. |
|
|
removeElement(E element)
Removes the given element from this data set. |
|
T |
removeElement(UUID elementId)
Removes IElement from this data set with given ID. |
|
|
removeElements(Collection<E> elements)
Removes multiple elements from this data set. |
|
|
removeElements(E... elements)
Removes multiple elements from this data set. |
|
void |
setCreationDate(Date creationDate)
Sets the data set creation date. |
|
void |
setDescriptor(DataSetDescriptor descriptor)
Sets the data set descriptor. |
|
void |
setElements(Collection<? extends T> elemnts)
Sets elements from this data set. |
|
void |
setId(UUID id)
Sets the id of a data set. |
|
void |
setName(String name)
Sets the name of the data set. |
|
void |
setType(Type type)
Sets the type of a data set. |
|
String |
toString()
|
|
| Methods inherited from class pl.edu.agh.cast.data.model.property.PropertyContainer |
|---|
addProperty, createProperty, dispose, getCustomProperties, getMetaPropertyManager, getPermanentProperties, getProperties, getProperty, getTransientProperties, initializeProperties, matches, removeProperty, setMetaPropertyManager, setProperty, update |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface pl.edu.agh.cast.data.model.property.IPropertyContainer |
|---|
addProperty, getCustomProperties, getMetaPropertyManager, getPermanentProperties, getProperties, getProperty, getTransientProperties, matches, removeProperty, setProperty |
| Methods inherited from interface java.util.Observer |
|---|
update |
| Methods inherited from interface pl.edu.agh.cast.common.IDisposable |
|---|
dispose |
| Constructor Detail |
|---|
protected AbstractDataSet(DataSetDescriptor descriptor)
MetaPropertyManager.
If the descriptor does not specify the data set type, then the MPM has to be set manually - until then (and as
long as the descriptor is invalid) the data set is invalid.
descriptor - the data set descriptor
IllegalArgumentException - if type is null
protected AbstractDataSet(DataSetDescriptor descriptor,
MetaPropertyManager metaPropertyManager)
MetaPropertyManager. It also sets up default
MetaPropertyManagers for all types accepted by the concrete data set.
This constructor uses addMetaPropertyManager(Type) method to add MetaPropertyManagers for all
types returned by getAcceptedTypes(), thus may throw any of the exceptions that method may throw.
descriptor - the data set descriptormetaPropertyManager - manager of data set's meta properties
IllegalArgumentException - if any of the arguments is null
ModelException - if the given descriptor is not valid (see DataSetDescriptor.isValid())IDataSet.getAcceptedTypes()
protected AbstractDataSet(DataSetDescriptor descriptor,
MetaPropertyManager metaPropertyManager,
Map<Type,MetaPropertyManager> elementMPMs)
MetaPropertyManager. It also accepts a map of element
MetaPropertyManagers.
This constructor uses addMetaPropertyManager(Type, MetaPropertyManager) method to add all
MetaPropertyManagers from the elementMPMs map, thus may throw any of the exceptions that
method may throw.
descriptor - the data set descriptormetaPropertyManager - manager of data set's meta propertieselementMPMs - a map of element MetaPropertyManagers indexed with Types
IllegalArgumentException - if any of the arguments (except elementMPMs) is null| Method Detail |
|---|
public final boolean isValid()
isValid in interface IValidatableisValid in class PropertyContainertrue if object's state is valid, false otherwisePropertyContainer.isValid()protected boolean checkIfValid()
This method is called by the isValid() method. By default it always returns true, however
it can be overridden in order to define new validation rules. In such case the implementation from base class
should be called inside the overridden method in order to preserve data consistency.
true if the data set is valid, false otherwiseprotected boolean isDescriptorValid(DataSetDescriptor descriptor)
This method is called by the setDescriptor(DataSetDescriptor) method. By default it always returns
true, however it can be overridden in order to define new descriptor validation rules. In such case
the implementation from base class should be called inside the overridden method in order to preserve data
consistency.
descriptor - the descriptor to validate
true if given descriptor is valid, false otherwise
protected boolean isElementValid(T element)
throws ModelException
This method is called by the addElement(IElement) method. By default it always returns true
, however it can be overridden in order to define new validation rules. In such case the implementation from base
class should be called inside the overridden method in order to preserve data consistency.
element - the element to validate
true if the element is valid, false otherwise
ModelException - if there is a severe validity violationpublic int getElementCount()
getElementCount in interface IDataSet<T extends IElement>IDataSet.getElementCount()public final T getElement(UUID elementId)
getElement in interface IDataSet<T extends IElement>elementId - ID of element to find
null otherwiseIDataSet.getElement(java.util.UUID)public final Collection<? extends T> getElements()
getElements in interface IDataSet<T extends IElement>IDataSet.getElements()public final Collection<? extends T> getAssignableElements(Type elementType)
getAssignableElements in interface IDataSet<T extends IElement>elementType - type of elements to return
pl.edu.agh.cast.data.model.IDataSet#getAssignableElements(java.lang.String)public final Collection<? extends T> getElements(Type elementType)
getElements in interface IDataSet<T extends IElement>elementType - type of elements to return
pl.edu.agh.cast.data.model.IDataSet#getElements(java.lang.String)public final Collection<Type> getElementTypes()
IElements this data set contains.
getElementTypes in interface IDataSet<T extends IElement>IDataSet.getElementTypes()public final void addElement(T element)
addElement in interface IDataSet<T extends IElement>element - element to addIDataSet.addElement(pl.edu.agh.cast.data.model.IElement)protected void beforeAddElement(T element)
It should be overridden by subclasses to add custom activities which should be perform after removing the given element.
element - element which is to be removedisElementValid(IElement)protected void afterAddElement(T element)
It should be overridden by subclasses to add custom activities which should be perform after removing the given element.
element - element which has been just removedpublic final void addElements(Collection<? extends T> elements)
addElements in interface IDataSet<T extends IElement>elements - collection of elements to addIDataSet.addElements(java.util.Collection)public final void addElements(T... elements)
addElements in interface IDataSet<T extends IElement>elements - elements to addpl.edu.agh.cast.data.model.IDataSet#addElements(T[])public final void setElements(Collection<? extends T> elemnts)
setElements in interface IDataSet<T extends IElement>elemnts - elements from this data setIDataSet.setElements(java.util.Collection)public final T removeElement(UUID elementId)
IElement from this data set with given ID.
removeElement in interface IDataSet<T extends IElement>elementId - ID of element to remove
null otherwiseIDataSet.removeElement(java.util.UUID)public final <E extends T> E removeElement(E element)
removeElement in interface IDataSet<T extends IElement>E - type of element to removeelement - element to remove
null otherwiseIDataSet.removeElement(pl.edu.agh.cast.data.model.IElement)public final <E extends T> Collection<E> removeElements(Collection<E> elements)
removeElements in interface IDataSet<T extends IElement>E - type of elements to removeelements - list of elements to remove
IDataSet.removeElements(java.util.Collection)public final <E extends T> Collection<E> removeElements(E... elements)
removeElements in interface IDataSet<T extends IElement>E - type of elements to removeelements - array of elements to remove
pl.edu.agh.cast.data.model.IDataSet#removeElements(E[])protected void beforeRemoveElement(T element)
It should be overridden by subclasses to add custom activities which should be perform after removing the given element.
element - element which is to be removedprotected void afterRemoveElement(T element)
It should be overridden by subclasses to add custom activities which should be perform after removing the given element.
element - element which has been just removedpublic final MetaPropertyManager getMetaPropertyManager(Type elementType)
getMetaPropertyManager in interface IDataSet<T extends IElement>elementType - type of elements
MetaPropertyManager of elements of given typepl.edu.agh.cast.data.model.IDataSet#getMetaPropertyManager(java.lang.String)public final Collection<MetaPropertyManager> getMetaPropertyManagers()
getMetaPropertyManagers in interface IDataSet<T extends IElement>MetaPropertyManagersIDataSet.getMetaPropertyManagers()public final void addMetaPropertyManager(Type elementType)
This method will not throw any exception if a MetaPropertyManager for given type is already defined.
elementType - type of elements
IllegalArgumentException - if any of the arguments is nullPropertyHelper.constructMetaPropertyManagerForClass(Class),
Type.getTypeClass()
public final void addMetaPropertyManager(Type elementType,
MetaPropertyManager metaPropertyManager)
addMetaPropertyManager in interface IDataSet<T extends IElement>elementType - type of elementsmetaPropertyManager - MetaPropertyManager of elements of given typepl.edu.agh.cast.data.model.IDataSet#addMetaPropertyManager(java.lang.String,
pl.edu.agh.cast.data.model.property.MetaPropertyManager)public final Collection<Type> getRegisteredTypes()
IElements this data set is ready to accept, i.e. contains
MetaPropertyManager's for those types.
getRegisteredTypes in interface IDataSet<T extends IElement>IDataSet.getRegisteredTypes()protected final void afterSetMetaPropertyManager()
PermanentProperty'ies and TransientProperty'ies defined this container's meta-property
manager.
Called right after setting the MPM. May be overridden.
afterSetMetaPropertyManager in class PropertyContainerPropertyContainer.afterSetMetaPropertyManager()public void addMetaPropertyManagersForAcceptedTypes()
addMetaPropertyManagersForAcceptedTypes in interface IDataSet<T extends IElement>IDataSet.addMetaPropertyManagersForAcceptedTypes()protected DataSetDescriptor createNewDescriptor()
This method may be overridden in order to provide
protected DataSetDescriptor acquireDescriptor()
createNewDescriptor(),
setDescriptor(DataSetDescriptor)public DataSetDescriptor getDescriptor()
getDescriptor in interface IDataSet<T extends IElement>IDataSet.getDescriptor()public final void setDescriptor(DataSetDescriptor descriptor)
descriptor - the data set descriptor
ModelException - if the data set descriptor is already set or given descriptor is not valid (see
DataSetDescriptor.isValid())
IllegalArgumentException - if the given descriptor is nullpublic Collection<Type> getAcceptedTypes()
IElements this data set is able to accept.
This method should be overridden by all concrete subclasses.
Returns collection of types of elements this data set is able to accept.
getAcceptedTypes in interface IDataSet<T extends IElement>IDataSet.getAcceptedTypes()public final UUID getId()
getId in interface IdentifiableIdentifiable.getId(),
DataSetDescriptor.getId()public final void setId(UUID id)
id - identifier to be setDataSetDescriptor.setId(java.util.UUID)public final Type getType()
getType in interface IdentifiableIdentifiable.getType(),
DataSetDescriptor.getType()public final void setType(Type type)
type - type to be setDataSetDescriptor.setType(Type)public final String getName()
getName in interface IDataSet<T extends IElement>IDataSet.getName(),
DataSetDescriptor.getName()public final void setName(String name)
setName in interface IDataSet<T extends IElement>name - the name of the data setIDataSet.setName(java.lang.String),
DataSetDescriptor.setName(java.lang.String)public final Date getCreationDate()
getCreationDate in interface IDataSet<T extends IElement>IDataSet.getCreationDate(),
DataSetDescriptor.getCreationDate()public final void setCreationDate(Date creationDate)
setCreationDate in interface IDataSet<T extends IElement>creationDate - the data set creation dateIDataSet.setCreationDate(java.util.Date),
DataSetDescriptor.setCreationDate(java.util.Date)public final boolean equals(Object other)
To compare domain semantic of two elements use IPropertyContainer#match(IPropertyContainer) method.
equals in class ObjectObject.equals(java.lang.Object),
IPropertyContainer#match(IPropertyContainer)public final int hashCode()
hashCode in class ObjectObject.hashCode()public final String toString()
toString in class ObjectObject.toString()protected String getDescString()
toString() and may be
overridden in order to customize its results.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||