pl.edu.agh.cast.data.model.general
Class TimedOneToOneRelation

java.lang.Object
  extended by pl.edu.agh.cast.data.model.property.PropertyContainer
      extended by pl.edu.agh.cast.data.model.AbstractElement
          extended by pl.edu.agh.cast.data.model.general.ManyToManyRelation
              extended by pl.edu.agh.cast.data.model.general.TimedManyToManyRelation
                  extended by pl.edu.agh.cast.data.model.general.TimedOneToOneRelation
All Implemented Interfaces:
Serializable, Observer, IDisposable, IReplicable, IValidatable, IDomainElement, IGeneralElement, IManyToManyRelation, IOneToOneRelation, ITimedManyToManyRelation, ITimedOneToOneRelation, Identifiable, IElement, IPropertyContainer

public class TimedOneToOneRelation
extends TimedManyToManyRelation
implements ITimedOneToOneRelation

Default implementation of ITimedOneToOneRelation used in GeneralDataSet.

All public constructors set the element type to ITimedOneToOneRelation.TYPE. Protected constructors should only be used by direct subclasses to provide the concrete type to the super constructor.

Author:
AGH CAST Team
See Also:
ITimedOneToOneRelation, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface pl.edu.agh.cast.data.model.general.ITimedManyToManyRelation
ITimedManyToManyRelation.Properties
 
Field Summary
 
Fields inherited from interface pl.edu.agh.cast.data.model.general.ITimedOneToOneRelation
TYPE
 
Constructor Summary
  TimedOneToOneRelation()
          Default constructor.
  TimedOneToOneRelation(IGeneralDataSet<? extends IGeneralElement> dataSet, IEntity source, IEntity target, boolean directed, Date date)
          Creates new timed one-to-one relation with given data set, source and target entity, direction and date (start == end).
  TimedOneToOneRelation(IGeneralDataSet<? extends IGeneralElement> dataSet, IReferenceList<IEntity> sources, IReferenceList<IEntity> targets, boolean directed, Date date)
          Creates new timed one-to-one relation with given data set, source and target entity (lists), direction and date (start == end).
protected TimedOneToOneRelation(Type type)
          Initializes element with type.
protected TimedOneToOneRelation(Type type, UUID id, IReferenceList<IEntity> sources, IReferenceList<IEntity> targets, boolean directed, Date startDate, Date endDate)
          Initializes element with given data set, source and target entity (lists), direction and start and end date.
  TimedOneToOneRelation(UUID id, IGeneralDataSet<? extends IGeneralElement> dataSet, IEntity source, IEntity target, boolean directed, Date startDate, Date endDate)
          Creates new timed one-to-one relation with given ID, data set, source and target entity, direction and start and end dates.
 
Method Summary
 IEntity getSourceEntity()
          Returns the source entity.
 IEntity getTargetEntity()
          Returns the target entity.
 TimedOneToOneRelation replicate()
          Returns a replicated instance of this instance.
 TimedOneToOneRelation replicateTo(Object replica)
          Replicates this instance state to given replica object.
 void setSourceEntity(IEntity entity)
          Sets the source entity.
 void setTargetEntity(IEntity entity)
          Sets the target entity.
 
Methods inherited from class pl.edu.agh.cast.data.model.general.TimedManyToManyRelation
getDuration, getEndDate, getStartDate, setEndDate, setStartDate
 
Methods inherited from class pl.edu.agh.cast.data.model.general.ManyToManyRelation
addSourceEntitiy, addTargetEntitiy, getDescString, getSourceEntities, getSourceEntitiy, getTargetEntities, getTargetEntitiy, isDirected, isEntityListValid, isEntityValid, isSourceEntitiesResolved, isSourceEntityListValid, isTargetEntitiesResolved, isTargetEntityListValid, removeSourceEntitiy, removeTargetEntitiy, setDirected, setSourceEntities, setTargetEntities
 
Methods inherited from class pl.edu.agh.cast.data.model.AbstractElement
afterSetMetaPropertyManager, canReplicateTo, checkIfValid, equals, getDataSet, getId, getType, hashCode, isValid, setDataSet, setId, setType, 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.general.ITimedManyToManyRelation
getDuration, getEndDate, getStartDate, setEndDate, setStartDate
 
Methods inherited from interface pl.edu.agh.cast.data.model.general.IManyToManyRelation
addSourceEntitiy, addTargetEntitiy, getSourceEntities, getSourceEntitiy, getTargetEntities, getTargetEntitiy, isDirected, removeSourceEntitiy, removeTargetEntitiy, setDirected, setSourceEntities, setTargetEntities
 
Methods inherited from interface pl.edu.agh.cast.data.model.IElement
getDataSet
 
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.IDisposable
dispose
 

Constructor Detail

TimedOneToOneRelation

public TimedOneToOneRelation()
Default constructor.

Usage of this constructor is discouraged, since it does not provide any integrity control. If, however, this constructor is used, the AbstractElement.isValid() method should be called in order to check the integrity.


TimedOneToOneRelation

public TimedOneToOneRelation(UUID id,
                             IGeneralDataSet<? extends IGeneralElement> dataSet,
                             IEntity source,
                             IEntity target,
                             boolean directed,
                             Date startDate,
                             Date endDate)
Creates new timed one-to-one relation with given ID, data set, source and target entity, direction and start and end dates.

Parameters:
id - ID of the element
dataSet - the general data set this relation is in
source - the source entity of this relation
target - the target entity of this relation
directed - the flag indicating whether the relation is directed or not (see IManyToManyRelation.isDirected())
startDate - date of relation occurrence start
endDate - date of relation occurrence end, if null, then startDate is used

TimedOneToOneRelation

public TimedOneToOneRelation(IGeneralDataSet<? extends IGeneralElement> dataSet,
                             IEntity source,
                             IEntity target,
                             boolean directed,
                             Date date)
Creates new timed one-to-one relation with given data set, source and target entity, direction and date (start == end).

Parameters:
dataSet - the general data set this relation is in
source - the source entity of this relation
target - the target entity of this relation
directed - the flag indicating whether the relation is directed or not (see IManyToManyRelation.isDirected())
date - date of relation occurrence (no duration)

TimedOneToOneRelation

public TimedOneToOneRelation(IGeneralDataSet<? extends IGeneralElement> dataSet,
                             IReferenceList<IEntity> sources,
                             IReferenceList<IEntity> targets,
                             boolean directed,
                             Date date)
Creates new timed one-to-one relation with given data set, source and target entity (lists), direction and date (start == end).

Parameters:
dataSet - the general data set this relation is in
sources - reference list to source entities - must contain exactly one reference
targets - reference list to target entities - must contain exactly one reference
directed - the flag indicating whether the relation is directed or not (see IManyToManyRelation.isDirected())
date - date of relation occurrence (no duration)

TimedOneToOneRelation

protected TimedOneToOneRelation(Type type)
Initializes element with type.

This constructor should be used only by extending classes to implement the default constructor.

Parameters:
type - type of the element
See Also:
TimedManyToManyRelation.TimedManyToManyRelation(Type)

TimedOneToOneRelation

protected TimedOneToOneRelation(Type type,
                                UUID id,
                                IReferenceList<IEntity> sources,
                                IReferenceList<IEntity> targets,
                                boolean directed,
                                Date startDate,
                                Date endDate)
Initializes element with given data set, source and target entity (lists), direction and start and end date.

Parameters:
type - type of element which extends this one
sources - reference list to source entities - must contain exactly one reference
targets - reference list to target entities - must contain exactly one reference
directed - the flag indicating whether the relation is directed or not (see IManyToManyRelation.isDirected())
startDate - date of relation occurrence start
endDate - date of relation occurrence end, if null, then startDate is used
Method Detail

getSourceEntity

public IEntity getSourceEntity()
Returns the source entity.

Specified by:
getSourceEntity in interface IOneToOneRelation
Returns:
the source entity (non-null)
See Also:
IOneToOneRelation.getSourceEntity()

setSourceEntity

public void setSourceEntity(IEntity entity)
Sets the source entity.

Specified by:
setSourceEntity in interface IOneToOneRelation
Parameters:
entity - the source entity
See Also:
#setSourceEntity(pl.edu.agh.cast.data.model.general.IEntity)

getTargetEntity

public IEntity getTargetEntity()
Returns the target entity.

Specified by:
getTargetEntity in interface IOneToOneRelation
Returns:
the target entity (non-null)
See Also:
IOneToOneRelation.getTargetEntity()

setTargetEntity

public void setTargetEntity(IEntity entity)
Sets the target entity.

Specified by:
setTargetEntity in interface IOneToOneRelation
Parameters:
entity - the target entity
See Also:
#setTargetEntity(pl.edu.agh.cast.data.model.general.IEntity)

replicateTo

public TimedOneToOneRelation replicateTo(Object replica)
                                  throws IllegalArgumentException,
                                         ReplicationException
Replicates this instance state to given replica object. The replica should be an instance of replicated instance's class (same class or subclass).

Replicates element type and ID.

Replicates relation direction, the lists of source and target entities are empty.

Replicates relation direction, the lists of source and target entities are empty.

Replicates relation direction, the lists of source and target entities are empty.

Specified by:
replicateTo in interface IReplicable
Overrides:
replicateTo in class TimedManyToManyRelation
Parameters:
replica - the object to replicate to
Returns:
the replica object (the same instance as given)
Throws:
IllegalArgumentException - if given object is null or of invalid type
ReplicationException - if replication fails
See Also:
ManyToManyRelation.replicateTo(java.lang.Object)

replicate

public TimedOneToOneRelation replicate()
                                throws ReplicationException
Returns a replicated instance of this instance.

Specified by:
replicate in interface IReplicable
Overrides:
replicate in class TimedManyToManyRelation
Returns:
replicated instance
Throws:
ReplicationException - if replication fails
See Also:
IReplicable.replicate()


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