Class InstanceProperties

  • All Implemented Interfaces:
    Serializable

    public class InstanceProperties
    extends InstanceElementHeader
    The InstanceProperties class provides support for properties to be added to an entity, classification or relationship instances. These properties are maintained by the consumers of metadata (typically the Open Metadata Access Services (OMASs). There are some fixed properties that are available on all instances. These are:
    • effectiveFromTime: Date/Time when the instance should be used. If this value is null then the instance can be used as soon as it is created.
    • effectiveToTime: Date/Time when the instance should not longer be used. If this is null then the instance can be used until it is deleted.
    Then there are variable properties that are defined in the TypeDefs. They are managed in a java.util.Map map object built around HashMap. The property name (or domain) of the map is the name of the property. The property value (or range) of the map is a subclass of InstancePropertyValue depending on the type of the property:
    • PrimitivePropertyValue: for primitives such as strings and numbers. The full list of primitives are given in PrimitiveDefCategory.
    • EnumPropertyValue: for properties with a type consisting of an enumeration of valid values. Each
    • StructPropertyValue: for properties that have a type of a complex structure (aka struct). The Struct can be thought of as a list of related properties.
    • MapPropertyValue: for properties that have a type of map. The map holds an unordered list of name-value pairs. The pairs are of the same type and the name for the pair is unique within the map.
    • ArrayPropertyValue: for properties that have a type of Array. This is an ordered list of values of the same type.
    See Also:
    Serialized Form
    • Constructor Detail

      • InstanceProperties

        public InstanceProperties()
        Typical constructor
      • InstanceProperties

        public InstanceProperties​(InstanceProperties templateProperties)
        Copy/clone constructor.
        Parameters:
        templateProperties - template object to copy.
    • Method Detail

      • getEffectiveFromTime

        public Date getEffectiveFromTime()
        Return the date/time that this instance should start to be used (null means it can be used from creationTime).
        Returns:
        Date object
      • setEffectiveFromTime

        public void setEffectiveFromTime​(Date effectiveFromTime)
        Set up the date/time that this instance should start to be used (null means it can be used from creationTime).
        Parameters:
        effectiveFromTime - Date object
      • getEffectiveToTime

        public Date getEffectiveToTime()
        Return the date/time that this instance should no longer be used.
        Returns:
        Date object
      • setEffectiveToTime

        public void setEffectiveToTime​(Date effectiveToTime)
        Set up the date/time that this instance should no longer be used.
        Parameters:
        effectiveToTime - Date object
      • getInstanceProperties

        public Map<String,​InstancePropertyValue> getInstanceProperties()
        Return the instance properties as a map.
        Returns:
        instance properties map.
      • setInstanceProperties

        public void setInstanceProperties​(Map<String,​InstancePropertyValue> instanceProperties)
        Set up the instance properties map.
        Parameters:
        instanceProperties - map of name valued properties
      • getPropertyNames

        public Iterator<String> getPropertyNames()
        Returns a list of the instance properties for the element. If no stored properties are present then null is returned.
        Returns:
        list of properties
      • getPropertyValue

        public InstancePropertyValue getPropertyValue​(String name)
        Returns the requested instance property for the element. If no stored property with that name is present then null is returned.
        Parameters:
        name - String name of the property to return.
        Returns:
        requested property value.
      • setProperty

        public void setProperty​(String newPropertyName,
                                InstancePropertyValue newPropertyValue)
        Adds or updates an instance property. If a null is supplied for the property name, an OMRS runtime exception is thrown. If a null is supplied for the property value, the property is removed.
        Parameters:
        newPropertyName - name
        newPropertyValue - value
      • getPropertyCount

        public int getPropertyCount()
        Return the number of properties stored.
        Returns:
        int property count
      • toString

        public String toString()
        Standard toString method.
        Overrides:
        toString in class Object
        Returns:
        JSON style description of variables.
      • equals

        public boolean equals​(Object objectToCompare)
        Validate that an object is equal depending on their stored values.
        Overrides:
        equals in class Object
        Parameters:
        objectToCompare - object
        Returns:
        boolean result
      • hashCode

        public int hashCode()
        Return a hash code based on the values of this object.
        Overrides:
        hashCode in class Object
        Returns:
        in hash code