Package org.opentcs.data
Class TCSObject<E extends TCSObject<E>>
java.lang.Object
org.opentcs.data.TCSObject<E>
- Type Parameters:
E- The actual object class.
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
Group,LocationType,OrderSequence,PeripheralJob,TCSResource,TransportOrder,Vehicle,VisualLayout
public abstract class TCSObject<E extends TCSObject<E>>
extends java.lang.Object
implements java.io.Serializable
Describes the base behaviour of TCS data objects.
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected TCSObjectReference<E>referenceA transient reference to this business object. -
Constructor Summary
Constructors Modifier Constructor Description protectedTCSObject(java.lang.String objectName)Creates a new TCSObject.protectedTCSObject(java.lang.String objectName, java.util.Map<java.lang.String,java.lang.String> properties, ObjectHistory history)Creates a new TCSObject. -
Method Summary
Modifier and Type Method Description booleanequals(java.lang.Object obj)Checks if this object is equal to another one.ObjectHistorygetHistory()java.lang.StringgetName()Returns this object's name.java.util.Map<java.lang.String,java.lang.String>getProperties()Returns an unmodifiable view on this object's properties.java.lang.StringgetProperty(java.lang.String key)Returns the property value for the given key.TCSObjectReference<E>getReference()Returns a transient/soft reference to this object.inthashCode()Returns this object's hashcode.protected static <V> java.util.List<V>listWithoutNullValues(java.util.List<V> original)Returns a new list with the values from the given list but allnullvalues removed.protected static <K, V> java.util.Map<K,V>mapWithoutNullValues(java.util.Map<K,V> original)Returns a new map with the entries from the given map but all entries withnullvalues removed.protected java.util.Map<java.lang.String,java.lang.String>propertiesWith(java.lang.String key, java.lang.String value)Returns a new map of this object's properties, with the given property integrated.protected static <V> java.util.Set<V>setWithoutNullValues(java.util.Set<V> original)Returns a new set with the values from the given set but allnullvalues removed.java.lang.StringtoString()abstract TCSObject<E>withHistory(ObjectHistory history)Creates a copy of this object, with the given history.abstract TCSObject<E>withHistoryEntry(ObjectHistory.Entry entry)Creates a copy of this object, with the given history entry integrated.abstract TCSObject<E>withProperties(java.util.Map<java.lang.String,java.lang.String> properties)Creates a copy of this object, with the given properties.abstract TCSObject<E>withProperty(java.lang.String key, java.lang.String value)Creates a copy of this object, with the given property integrated.
-
Field Details
-
reference
A transient reference to this business object.
-
-
Constructor Details
-
TCSObject
protected TCSObject(@Nonnull java.lang.String objectName)Creates a new TCSObject.- Parameters:
objectName- The new object's name.
-
TCSObject
protected TCSObject(@Nonnull java.lang.String objectName, @Nonnull java.util.Map<java.lang.String,java.lang.String> properties, @Nonnull ObjectHistory history)Creates a new TCSObject.- Parameters:
objectName- The new object's name.properties- A set of properties (key-value pairs) associated with this object.history- A history of events related to this object.
-
-
Method Details
-
getName
@Nonnull public java.lang.String getName()Returns this object's name.- Returns:
- This object's name.
-
getReference
Returns a transient/soft reference to this object.- Returns:
- A transient/soft reference to this object.
-
getProperties
@Nonnull public java.util.Map<java.lang.String,java.lang.String> getProperties()Returns an unmodifiable view on this object's properties.- Returns:
- This object's properties.
-
getProperty
@Nullable public java.lang.String getProperty(java.lang.String key)Returns the property value for the given key. This is basically a shortcut forgetProperties().get(key).- Parameters:
key- The property's key.- Returns:
- The property value for the given key, or
null, if there is none.
-
withProperty
Creates a copy of this object, with the given property integrated.- Parameters:
key- The key of the property to be changed.value- The new value of the property, ornull, if the property is to be removed.- Returns:
- A copy of this object, with the given property integrated.
-
withProperties
public abstract TCSObject<E> withProperties(java.util.Map<java.lang.String,java.lang.String> properties)Creates a copy of this object, with the given properties.- Parameters:
properties- The properties.- Returns:
- A copy of this object, with the given properties.
-
getHistory
-
withHistoryEntry
Creates a copy of this object, with the given history entry integrated.- Parameters:
entry- The history entry to be integrated.- Returns:
- A copy of this object, with the given history entry integrated.
-
withHistory
Creates a copy of this object, with the given history.- Parameters:
history- The history.- Returns:
- A copy of this object, with the given history.
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)Checks if this object is equal to another one. TwoTCSObjects are equal if both their IDs and their runtime classes are equal.- Overrides:
equalsin classjava.lang.Object- Parameters:
obj- The object to compare this one to.- Returns:
trueif, and only if,objis also aTCSObjectand both its ID and runtime class equal those of this object.
-
hashCode
public int hashCode()Returns this object's hashcode. ATCSObject's hashcode is calculated by XORing its ID's hashcode and the hashcode of its runtime class's name.- Overrides:
hashCodein classjava.lang.Object- Returns:
- This object's hashcode.
-
propertiesWith
protected final java.util.Map<java.lang.String,java.lang.String> propertiesWith(java.lang.String key, java.lang.String value)Returns a new map of this object's properties, with the given property integrated.- Parameters:
key- The key of the property to be changed.value- The new value of the property, ornull, if the property is to be removed.- Returns:
- A new map of this object's properties, with the given property integrated.
-
mapWithoutNullValues
protected static final <K, V> java.util.Map<K,V> mapWithoutNullValues(java.util.Map<K,V> original)Returns a new map with the entries from the given map but all entries withnullvalues removed.- Type Parameters:
K- The type of the map's keys.V- The type of the map's values.- Parameters:
original- The original map.- Returns:
- A new map with the entries from the given map but all entries with
nullvalues removed.
-
listWithoutNullValues
protected static final <V> java.util.List<V> listWithoutNullValues(java.util.List<V> original)Returns a new list with the values from the given list but allnullvalues removed.- Type Parameters:
V- The type of the list's values.- Parameters:
original- The original list.- Returns:
- A new list with the values from the given list but all
nullvalues removed.
-
setWithoutNullValues
protected static final <V> java.util.Set<V> setWithoutNullValues(java.util.Set<V> original)Returns a new set with the values from the given set but allnullvalues removed.- Type Parameters:
V- The type of the set's values.- Parameters:
original- The original set.- Returns:
- A new set with the values from the given set but all
nullvalues removed.
-