|
||||||||||
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 IElement s 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 IElement s 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 IElement s 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
MetaPropertyManager
s for all types accepted by the concrete data set.
This constructor uses addMetaPropertyManager(Type)
method to add MetaPropertyManager
s 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
MetaPropertyManager
s.
This constructor uses addMetaPropertyManager(Type, MetaPropertyManager)
method to add all
MetaPropertyManager
s 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 MetaPropertyManager
s indexed with Type
s
IllegalArgumentException
- if any of the arguments (except elementMPMs
) is null
Method Detail |
---|
public final boolean isValid()
isValid
in interface IValidatable
isValid
in class PropertyContainer
true
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
otherwiseprotected 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()
IElement
s 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>
MetaPropertyManager
sIDataSet.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 null
PropertyHelper.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()
IElement
s 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 PropertyContainer
PropertyContainer.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 null
public Collection<Type> getAcceptedTypes()
IElement
s 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 Identifiable
Identifiable.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 Identifiable
Identifiable.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 Object
Object.equals(java.lang.Object)
,
IPropertyContainer#match(IPropertyContainer)
public final int hashCode()
hashCode
in class Object
Object.hashCode()
public final String toString()
toString
in class Object
Object.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 |