Class Property
- java.lang.Object
-
- com.inductiveautomation.rm.base.RMListenerList
-
- com.inductiveautomation.rm.base.RMObject
-
- com.inductiveautomation.snap.data.Property
-
- All Implemented Interfaces:
Archivable
,RMJSONArchiver.GetKeys
,RMPropertyChanger
,java.lang.Cloneable
,java.lang.Comparable
public class Property extends RMObject implements java.lang.Comparable, RMJSONArchiver.GetKeys, Archivable
This class describes an attribute of an entity.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Property.DateType
static class
Property.NumberType
static class
Property.StringSize
static class
Property.Type
-
Constructor Summary
Constructors Constructor Description Property()
Creates a new property.Property(java.lang.String aName)
Creates a new property with given name.Property(java.lang.String aName, Property.Type aType)
Creates a new property with given name and type.Property(java.lang.String aName, java.lang.Object aType)
Creates a new property with given name and type.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Property
clone()
Standard clone implementation.int
compareTo(java.lang.Object anObj)
Implements comparable to compare based on name.java.lang.Object
convertValue(java.lang.Object anObj)
Converts an arbitrary object to property type.boolean
equals(java.lang.Object anObj)
Standard equals implementation.Property
fromXML(RXArchiver anArchiver, RXElement anElement)
XML unarchival.Property.DateType
getDateType()
Returns the date type.Property.DateType
getDateTypeDefault()
Returns the default date type.java.lang.Object
getDefaultValue()
Returns default value for this property.Entity
getEntity()
Returns the entity that owns this property.java.lang.String
getEnumsString()
Returns the enum strings as a single string (comma separated).java.util.List<java.lang.String>
getEnumStrings()
Returns the enum strings (for type Enum).java.util.List<java.lang.String>
getJSONKeys()
Returns JSON keys.java.lang.Object
getKeyValue(java.lang.String aKey)
RMKey.Get implementation to return Property for key from RelationEntity (if found).java.lang.String
getName()
Returns the name of this property.boolean
getNullableDefault()
Returns the nullable default.Property.NumberType
getNumberType()
Returns the number type.Property.NumberType
getNumberTypeDefault()
Return default number type.Entity
getRelationEntity()
Returns the relation entity.java.lang.String
getRelationEntityName()
Returns the name of the entity that this relation property points to.Property
getRelationLocalProperty()
Returns the relation local property.java.lang.String
getRelationLocalPropertyName()
Returns the property name local to this property's entity that the relation uses as a key (primary or foreign).Property
getRelationRemoteProperty()
Returns the relation remote property.java.lang.String
getRelationRemotePropertyName()
Returns the property name that the relation uses as a key in the remote table (primary or foreign).java.lang.String
getStandardName()
Returns the name in a standard format (strip is/get prefix and start with capital letter).Property.StringSize
getStringSize()
Returns the string size.Property.StringSize
getStringSizeDefault()
Return default string size.Property.Type
getType()
Returns the type of this property.boolean
isAttribute()
Returns whether this property is a simple attribute.boolean
isAutoGenerated()
Returns whether column is automatically generated (numbered), thus read-only.boolean
isDerived()
Returns whether property value is derived from other properties and doesn't require persistence.boolean
isNullable()
Returns whether property allows nulls.boolean
isPrimary()
Returns whether this property is a primary key.boolean
isPrivate()
Returns whether this property is private.boolean
isRelation()
Returns whether this property is a relation.boolean
isToMany()
Returns whether this property is a to many relation.void
setAutoGenerated(boolean aValue)
Sets whether column is automatically generated (numbered), thus read-only.void
setDateType(Property.DateType aDateType)
Sets the date type.void
setDefaultValue(java.lang.Object aValue)
Sets default value for this property.void
setEntity(Entity anEntity)
Sets the entity that owns this property.void
setEnumsString(java.lang.String aValue)
Sets the enum strings as a single string (comma separated).void
setEnumStrings(java.util.List<java.lang.String> theValues)
Sets the enum strings (for type Enum).void
setName(java.lang.String aName)
Sets the name of this property.void
setNullable(boolean aValue)
Sets whether property allows nulls.void
setNumberType(Property.NumberType aNumberType)
Sets the number type.void
setPrimary(boolean isPrimary)
Sets whether this property is a primary key.void
setPrivate(boolean isPrivate)
Sets whether this property is private.void
setRelationEntity(Entity anEntity)
Sets the relation entity.void
setRelationEntityName(java.lang.String aName)
Sets the name of the entity that this relation property points to.void
setRelationLocalPropertyName(java.lang.String aName)
Sets the property name local to this property's entity that the relation uses as a key (primary or foreign).void
setRelationRemotePropertyName(java.lang.String aName)
Sets the property name that the relation uses as a key in the remote table (primary or foreign).void
setStringSize(Property.StringSize aSize)
Sets the string size.void
setToMany(boolean aValue)
Sets whether this property is a to many relation.void
setType(Property.Type aType)
Sets the type of this property.void
setTypeFromSample(java.lang.String aSample)
Sets property type from sample string - tries to discern whether string represents a date or number.void
setTypeName(java.lang.String aName)
Sets the type from a given name.java.lang.String
toString()
Returns a string representation of this property (its name).java.lang.String
toString(java.lang.Object aValue)
Returns a string representation of given value according to property type.RXElement
toXML(RXArchiver anArchiver)
XML archival.-
Methods inherited from class com.inductiveautomation.rm.base.RMObject
addPropertyChangeListener, animUpdate, firePropertyChange, firePropertyChange, firePropertyChange, getPCEvent, removePropertyChangeListener, sendPropertyChange
-
Methods inherited from class com.inductiveautomation.rm.base.RMListenerList
addListener, getListener, getListenerCount, getListenerCount, getListenerList, getListeners, hasListeners, removeListener
-
-
-
-
Constructor Detail
-
Property
public Property()
Creates a new property.
-
Property
public Property(java.lang.String aName)
Creates a new property with given name.
-
Property
public Property(java.lang.String aName, Property.Type aType)
Creates a new property with given name and type.
-
Property
public Property(java.lang.String aName, java.lang.Object aType)
Creates a new property with given name and type.
-
-
Method Detail
-
getEntity
public Entity getEntity()
Returns the entity that owns this property.
-
setEntity
public void setEntity(Entity anEntity)
Sets the entity that owns this property.
-
getName
@Nonnull public java.lang.String getName()
Returns the name of this property.
-
setName
public void setName(java.lang.String aName)
Sets the name of this property.
-
getStandardName
public java.lang.String getStandardName()
Returns the name in a standard format (strip is/get prefix and start with capital letter).
-
getType
public Property.Type getType()
Returns the type of this property.
-
setType
public void setType(Property.Type aType)
Sets the type of this property.
-
setTypeName
public void setTypeName(java.lang.String aName)
Sets the type from a given name.
-
setTypeFromSample
public void setTypeFromSample(java.lang.String aSample)
Sets property type from sample string - tries to discern whether string represents a date or number.
-
isPrimary
public boolean isPrimary()
Returns whether this property is a primary key.
-
setPrimary
public void setPrimary(boolean isPrimary)
Sets whether this property is a primary key.
-
isPrivate
public boolean isPrivate()
Returns whether this property is private.
-
setPrivate
public void setPrivate(boolean isPrivate)
Sets whether this property is private.
-
getStringSize
public Property.StringSize getStringSize()
Returns the string size.
-
setStringSize
public void setStringSize(Property.StringSize aSize)
Sets the string size.
-
getStringSizeDefault
public Property.StringSize getStringSizeDefault()
Return default string size.
-
getNumberType
public Property.NumberType getNumberType()
Returns the number type.
-
setNumberType
public void setNumberType(Property.NumberType aNumberType)
Sets the number type.
-
getNumberTypeDefault
public Property.NumberType getNumberTypeDefault()
Return default number type.
-
getDateType
public Property.DateType getDateType()
Returns the date type.
-
setDateType
public void setDateType(Property.DateType aDateType)
Sets the date type.
-
getDateTypeDefault
public Property.DateType getDateTypeDefault()
Returns the default date type.
-
isAutoGenerated
public boolean isAutoGenerated()
Returns whether column is automatically generated (numbered), thus read-only.
-
setAutoGenerated
public void setAutoGenerated(boolean aValue)
Sets whether column is automatically generated (numbered), thus read-only.
-
isNullable
public boolean isNullable()
Returns whether property allows nulls.
-
setNullable
public void setNullable(boolean aValue)
Sets whether property allows nulls.
-
getNullableDefault
public boolean getNullableDefault()
Returns the nullable default.
-
getDefaultValue
public java.lang.Object getDefaultValue()
Returns default value for this property.
-
setDefaultValue
public void setDefaultValue(java.lang.Object aValue)
Sets default value for this property.
-
getEnumStrings
public java.util.List<java.lang.String> getEnumStrings()
Returns the enum strings (for type Enum).
-
setEnumStrings
public void setEnumStrings(java.util.List<java.lang.String> theValues)
Sets the enum strings (for type Enum).
-
getEnumsString
public java.lang.String getEnumsString()
Returns the enum strings as a single string (comma separated).
-
setEnumsString
public void setEnumsString(java.lang.String aValue)
Sets the enum strings as a single string (comma separated).
-
isAttribute
public boolean isAttribute()
Returns whether this property is a simple attribute.
-
isRelation
public boolean isRelation()
Returns whether this property is a relation.
-
isToMany
public boolean isToMany()
Returns whether this property is a to many relation.
-
isDerived
public boolean isDerived()
Returns whether property value is derived from other properties and doesn't require persistence. A common (though advanced) example is a relationship that references the primary key against a foreign table/key. A less sophisticated example would be a property based on an expression comprised of other properties.
-
setToMany
public void setToMany(boolean aValue)
Sets whether this property is a to many relation.
-
getRelationEntity
public Entity getRelationEntity()
Returns the relation entity.
-
setRelationEntity
public void setRelationEntity(Entity anEntity)
Sets the relation entity.
-
getRelationEntityName
public java.lang.String getRelationEntityName()
Returns the name of the entity that this relation property points to.
-
setRelationEntityName
public void setRelationEntityName(java.lang.String aName)
Sets the name of the entity that this relation property points to.
-
getRelationLocalPropertyName
public java.lang.String getRelationLocalPropertyName()
Returns the property name local to this property's entity that the relation uses as a key (primary or foreign).
-
setRelationLocalPropertyName
public void setRelationLocalPropertyName(java.lang.String aName)
Sets the property name local to this property's entity that the relation uses as a key (primary or foreign).
-
getRelationRemotePropertyName
public java.lang.String getRelationRemotePropertyName()
Returns the property name that the relation uses as a key in the remote table (primary or foreign).
-
setRelationRemotePropertyName
public void setRelationRemotePropertyName(java.lang.String aName)
Sets the property name that the relation uses as a key in the remote table (primary or foreign).
-
getRelationLocalProperty
public Property getRelationLocalProperty()
Returns the relation local property.
-
getRelationRemoteProperty
public Property getRelationRemoteProperty()
Returns the relation remote property.
-
convertValue
public java.lang.Object convertValue(java.lang.Object anObj)
Converts an arbitrary object to property type.
-
getKeyValue
public java.lang.Object getKeyValue(java.lang.String aKey)
RMKey.Get implementation to return Property for key from RelationEntity (if found).
-
toString
public java.lang.String toString(java.lang.Object aValue)
Returns a string representation of given value according to property type.
-
equals
public boolean equals(java.lang.Object anObj)
Standard equals implementation.- Overrides:
equals
in classjava.lang.Object
-
clone
public Property clone()
Standard clone implementation.- Overrides:
clone
in classRMListenerList
-
compareTo
public int compareTo(java.lang.Object anObj)
Implements comparable to compare based on name.- Specified by:
compareTo
in interfacejava.lang.Comparable
-
toXML
public RXElement toXML(RXArchiver anArchiver)
XML archival.- Specified by:
toXML
in interfaceArchivable
-
fromXML
public Property fromXML(RXArchiver anArchiver, RXElement anElement)
XML unarchival.- Specified by:
fromXML
in interfaceArchivable
-
getJSONKeys
public java.util.List<java.lang.String> getJSONKeys()
Returns JSON keys.- Specified by:
getJSONKeys
in interfaceRMJSONArchiver.GetKeys
-
-