pl.edu.agh.cast.data.model
Interface IDataSet<T extends IElement>

Type Parameters:
T - type of elements contained in the data set
All Superinterfaces:
Identifiable, IDisposable, IPropertyContainer, IValidatable, Observer, Serializable
All Known Subinterfaces:
IDomainDataSet<T>, IGeneralDataSet<T>, IPresentationDataSet<T>, ISchemaDataSet, IVisualDataSet<T,M>, IVisualSchemaDataSet
All Known Implementing Classes:
AbstractDataSet, DomainDataSet, GeneralDataSet, PresentationDataSet, SampleGeneralDataSet, SchemaDataSet, VisualDataSet, VisualSchemaDataSet

public interface IDataSet<T extends IElement>
extends Identifiable, IPropertyContainer, IDisposable, IValidatable

Interface of a data set.

Data sets are containers for elements. All elements in a data set have to be valid (internally) as well as have valid relations with other element in the same data set.

Author:
AGH CAST Team
See Also:
IElement

Nested Class Summary
static class IDataSet.Properties
          Enumeration of property name constants.
 
Field Summary
static Collection<Type> ACCEPTED_TYPES
          Collection of element types accepted by this type of data set.
static Type TYPE
          Type of IDataSet.
 
Method Summary
 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, 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.
 Collection<Type> getAcceptedTypes()
          Returns collection of types of elements this data set is able to accept.
 Collection<? extends T> getAssignableElements(Type type)
          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.
 T getElement(UUID id)
          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 type)
          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.
 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.
<E extends T>
E
removeElement(E element)
          Removes the given element from this data set.
 T removeElement(UUID id)
          Removes IElement from this data set with given ID.
<E extends T>
Collection<E>
removeElements(Collection<E> elements)
          Removes multiple elements from this data set.
<E extends T>
Collection<E>
removeElements(E... elements)
          Removes multiple elements from this data set.
 void setCreationDate(Date creationDate)
          Sets the data set creation date.
 void setElements(Collection<? extends T> elements)
          Sets elements from this data set.
 void setName(String name)
          Sets the name of the data set.
 
Methods inherited from interface pl.edu.agh.cast.data.model.Identifiable
getId, getType
 
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.IValidatable
isValid
 
Methods inherited from interface pl.edu.agh.cast.common.IDisposable
dispose
 

Field Detail

TYPE

static final Type TYPE
Type of IDataSet.


ACCEPTED_TYPES

static final Collection<Type> ACCEPTED_TYPES
Collection of element types accepted by this type of data set.

Method Detail

getDescriptor

DataSetDescriptor getDescriptor()
Returns the descriptor of this data set.

Returns:
the descriptor of this data set

getAcceptedTypes

Collection<Type> getAcceptedTypes()
Returns collection of types of elements this data set is able to accept.

Returns:
collection of element types this data set is able to accept

getElementCount

int getElementCount()
Returns the number of elements in this data set.

Returns:
the number of elements

getElements

@PropertyGetter(name="ELEMENTS",
                type=REFERENCE_LIST,
                matchable=false,
                required=false)
Collection<? extends T> getElements()
Returns all elements from this data set.

Returns:
all elements from this data set

setElements

@PropertySetter(name="ELEMENTS")
void setElements(Collection<? extends T> elements)
Sets elements from this data set.

Parameters:
elements - elements from this data set

getAssignableElements

Collection<? extends T> getAssignableElements(Type type)
Returns elements from this data set of given type (or it's sub-type).

Parameters:
type - type of elements to return
Returns:
elements of given type from this data set

getElements

Collection<? extends T> getElements(Type type)
Returns elements from this data set of the same type as given one.

Parameters:
type - type of elements to return
Returns:
elements of given type from this data set

getElement

T getElement(UUID id)
Returns element from this data set with given ID.

Parameters:
id - ID of element to find
Returns:
element with given ID if present in this data set, null otherwise

getElementTypes

Collection<Type> getElementTypes()
Returns collection of types of IElements this data set contains.

Returns:
collection of data set elements' types

addElement

void addElement(T element)
Adds an element to this data set.

Parameters:
element - element to add
Throws:
IllegalArgumentException - if element is null
ModelException - if element is already in this data set

addElements

void addElements(Collection<? extends T> elements)
Adds a collection of elements to this data set.

Parameters:
elements - collection of elements to add
Throws:
IllegalArgumentException - if element collection or any of the elements is null
ModelException - if any of elements is already in this data set

addElements

void addElements(T... elements)
Adds multiple elements to this data set.

Parameters:
elements - elements to add
Throws:
IllegalArgumentException - if any of the elements is null
ModelException - if any of elements is already in this data set

removeElement

T removeElement(UUID id)
Removes IElement from this data set with given ID.

Parameters:
id - ID of element to remove
Returns:
removed element with given ID if present in this data set, null otherwise
Throws:
IllegalArgumentException - if element ID is null
ModelException - if element with given ID is not in this data set

removeElement

<E extends T> E removeElement(E element)
Removes the given element from this data set.

Type Parameters:
E - type of element to remove
Parameters:
element - element to remove
Returns:
removed element with given ID if present in this data set, null otherwise
Throws:
IllegalArgumentException - if element ID is null
ModelException - if element with given ID is not in this data set

removeElements

<E extends T> Collection<E> removeElements(Collection<E> elements)
Removes multiple elements from this data set.

Type Parameters:
E - type of elements to remove
Parameters:
elements - list of elements to remove
Returns:
list of successfully removed elements
Throws:
IllegalArgumentException - if element list is null
ModelException - if any of the elements is not in this data set

removeElements

<E extends T> Collection<E> removeElements(E... elements)
Removes multiple elements from this data set.

Type Parameters:
E - type of elements to remove
Parameters:
elements - array of elements to remove
Returns:
list of successfully removed elements
Throws:
IllegalArgumentException - if element list is null
ModelException - if any of the elements is not in this data set

addMetaPropertyManager

void addMetaPropertyManager(Type elementType,
                            MetaPropertyManager metaPropertyManager)
Adds a meta-property manager of elements of given type.

Parameters:
elementType - type of elements
metaPropertyManager - MetaPropertyManager of elements of given type
Throws:
IllegalArgumentException - if any of the arguments is null
ModelException - if a different MetaPropertyManager is already registered for this type

getMetaPropertyManager

MetaPropertyManager getMetaPropertyManager(Type elementType)
Returns meta-property manager of elements of given type.

Parameters:
elementType - type of elements
Returns:
MetaPropertyManager of elements of given type
Throws:
IllegalArgumentException - if elementType is null

getMetaPropertyManagers

Collection<MetaPropertyManager> getMetaPropertyManagers()
Returns meta-property managers for all types of elements.

Returns:
collection of element MetaPropertyManagers

addMetaPropertyManagersForAcceptedTypes

void addMetaPropertyManagersForAcceptedTypes()
Adds meta-property managers for all types accepted by the data set by default.

See Also:
getAcceptedTypes()

getRegisteredTypes

Collection<Type> getRegisteredTypes()
Returns collection of types of IElements this data set is ready to accept, i.e. contains MetaPropertyManager's for those types.

Returns:
collection of data set registered element types

getName

@PropertyGetter(name="DS_NAME",
                type=TEXT,
                matchable=false)
String getName()
Returns the name of the data set.

Returns:
the name of the data set

setName

@PropertySetter(name="DS_NAME")
void setName(String name)
Sets the name of the data set.

Parameters:
name - the name of the data set

getCreationDate

@PropertyGetter(name="DS_CREATION_DATE",
                type=DATE,
                matchable=false)
Date getCreationDate()
Returns the data set creation date.

Returns:
the data set creation date

setCreationDate

void setCreationDate(Date creationDate)
Sets the data set creation date.

Parameters:
creationDate - the data set creation date


Copyright © 2007-2009 IISG AGH-UST Krakow, Poland. All Rights Reserved.