org.openstreetmap.osmosis.core.domain.v0_6
Class Relation

java.lang.Object
  extended by org.openstreetmap.osmosis.core.domain.v0_6.Entity
      extended by org.openstreetmap.osmosis.core.domain.v0_6.Relation
All Implemented Interfaces:
java.lang.Comparable<Relation>, Storeable

public class Relation
extends Entity
implements java.lang.Comparable<Relation>

A data class representing a single OSM relation.

Author:
Brett Henderson

Constructor Summary
Relation(CommonEntityData entityData)
          Creates a new instance.
Relation(CommonEntityData entityData, java.util.List<RelationMember> members)
          Creates a new instance.
Relation(long id, int version, java.util.Date timestamp, OsmUser user, long changesetId)
          Creates a new instance.
Relation(long id, int version, java.util.Date timestamp, OsmUser user, long changesetId, java.util.Collection<Tag> tags, java.util.List<RelationMember> members)
          Creates a new instance.
Relation(long id, int version, TimestampContainer timestampContainer, OsmUser user, long changesetId)
          Creates a new instance.
Relation(long id, int version, TimestampContainer timestampContainer, OsmUser user, long changesetId, java.util.Collection<Tag> tags, java.util.List<RelationMember> members)
          Creates a new instance.
Relation(StoreReader sr, StoreClassRegister scr)
          Creates a new instance.
 
Method Summary
protected  int compareMemberList(java.util.Collection<RelationMember> comparisonMemberList)
          Compares this member list to the specified member list.
 int compareTo(Relation comparisonRelation)
          Compares this relation to the specified relation.
 boolean equals(java.lang.Object o)
          
 java.util.List<RelationMember> getMembers()
          Returns the attached list of relation members.
 EntityType getType()
          Returns the specific data type represented by this entity.
 Relation getWriteableInstance()
          Returns a writeable instance of this entity.
 int hashCode()
          
 void makeReadOnly()
          Configures the object to be read-only.
 void store(StoreWriter sw, StoreClassRegister scr)
          Stores all state to the specified store writer.
 java.lang.String toString()
          $.
 
Methods inherited from class org.openstreetmap.osmosis.core.domain.v0_6.Entity
assertWriteable, compareTags, getChangesetId, getFormattedTimestamp, getId, getTags, getTimestamp, getTimestampContainer, getUser, getVersion, isReadOnly, setChangesetId, setId, setTimestamp, setTimestampContainer, setUser, setVersion
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Relation

public Relation(long id,
                int version,
                java.util.Date timestamp,
                OsmUser user,
                long changesetId)
Creates a new instance.

Parameters:
id - The unique identifier.
version - The version of the entity.
timestamp - The last updated timestamp.
user - The user that last modified this entity.
changesetId - The id of the changeset that this version of the entity was created by.

Relation

public Relation(long id,
                int version,
                TimestampContainer timestampContainer,
                OsmUser user,
                long changesetId)
Creates a new instance.

Parameters:
id - The unique identifier.
version - The version of the entity.
timestampContainer - The container holding the timestamp in an alternative timestamp representation.
user - The user that last modified this entity.
changesetId - The id of the changeset that this version of the entity was created by.

Relation

public Relation(CommonEntityData entityData)
Creates a new instance.

Parameters:
entityData - The common entity data.

Relation

public Relation(long id,
                int version,
                java.util.Date timestamp,
                OsmUser user,
                long changesetId,
                java.util.Collection<Tag> tags,
                java.util.List<RelationMember> members)
Creates a new instance.

Parameters:
id - The unique identifier.
version - The version of the entity.
timestamp - The last updated timestamp.
user - The user that last modified this entity.
changesetId - The id of the changeset that this version of the entity was created by.
tags - The tags to apply to the object.
members - The members to apply to the object.

Relation

public Relation(long id,
                int version,
                TimestampContainer timestampContainer,
                OsmUser user,
                long changesetId,
                java.util.Collection<Tag> tags,
                java.util.List<RelationMember> members)
Creates a new instance.

Parameters:
id - The unique identifier.
version - The version of the entity.
timestampContainer - The container holding the timestamp in an alternative timestamp representation.
user - The user that last modified this entity.
changesetId - The id of the changeset that this version of the entity was created by.
tags - The tags to apply to the object.
members - The members to apply to the object.

Relation

public Relation(CommonEntityData entityData,
                java.util.List<RelationMember> members)
Creates a new instance.

Parameters:
entityData - The common entity data.
members - The members to apply to the object.

Relation

public Relation(StoreReader sr,
                StoreClassRegister scr)
Creates a new instance.

Parameters:
sr - The store to read state from.
scr - Maintains the mapping between classes and their identifiers within the store.
Method Detail

store

public void store(StoreWriter sw,
                  StoreClassRegister scr)
Stores all state to the specified store writer.

Specified by:
store in interface Storeable
Overrides:
store in class Entity
Parameters:
sw - The writer that persists data to an underlying store.
scr - Maintains the mapping between classes and their identifiers within the store.

getType

public EntityType getType()
Returns the specific data type represented by this entity.

Specified by:
getType in class Entity
Returns:
The entity type enum value.

equals

public boolean equals(java.lang.Object o)

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()

Overrides:
hashCode in class java.lang.Object

compareMemberList

protected int compareMemberList(java.util.Collection<RelationMember> comparisonMemberList)
Compares this member list to the specified member list. The bigger list is considered bigger, if that is equal then each relation member is compared.

Parameters:
comparisonMemberList - The member list to compare to.
Returns:
0 if equal, < 0 if considered "smaller", and > 0 if considered "bigger".

compareTo

public int compareTo(Relation comparisonRelation)
Compares this relation to the specified relation. The relation comparison is based on a comparison of id, version, timestamp, and tags in that order.

Specified by:
compareTo in interface java.lang.Comparable<Relation>
Parameters:
comparisonRelation - The relation to compare to.
Returns:
0 if equal, < 0 if considered "smaller", and > 0 if considered "bigger".

makeReadOnly

public void makeReadOnly()
Configures the object to be read-only. This should be called if the object is to be processed by multiple threads concurrently. It updates the read-only status of the object, and makes all collections unmodifiable. This must be overridden by sub-classes to make their own collections unmodifiable.

Overrides:
makeReadOnly in class Entity

getWriteableInstance

public Relation getWriteableInstance()
Returns a writeable instance of this entity. If the object is read-only a clone is created, if it is already writeable then this object is returned.

Specified by:
getWriteableInstance in class Entity
Returns:
A writeable instance of this entity.

getMembers

public java.util.List<RelationMember> getMembers()
Returns the attached list of relation members. The returned list is read-only.

Returns:
The member list.

toString

public java.lang.String toString()
$.

Overrides:
toString in class java.lang.Object