Package com.sas.lsaf.core.type

## Class AttributeDefinition

- java.lang.Object
- - com.sas.lsaf.core.AbstractIdentifiable
  - - com.sas.lsaf.core.type.AttributeDefinition

- All Implemented Interfaces:
    `Identifiable`, `java.io.Serializable`

      public class AttributeDefinition
      extends AbstractIdentifiable

  Information about the attributes that are defined on a `Type`. Object types are defined by the system and provide extended attributes that can be defined by end users.
  Since:
    1.7
  See Also:
    `TypeService`, `Type`, `Type.getAttributeDefinitions()`, Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `AttributeDefinition.AttributeType` | The enumeration that defines the data type that is stored by the attribute.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AttributeDefinition​(java.lang.String id, java.lang.String name, AttributeDefinition.AttributeType attributeType, boolean inherited, boolean editable, boolean extended, boolean required)` | Initializing constructor that allocates an `AttributeDefinition` and that sets all attributes to the specified values.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object obj)` |
    `AttributeDefinition.AttributeType` | `getAttributeType()` | Gets the data type of the attribute definition.
    `java.lang.String` | `getName()` | Gets the name of the attribute definition.
    `int` | `hashCode()` |
    `boolean` | `isEditable()` | Indicates whether the attribute can be modified by an end user.
    `boolean` | `isExtended()` | Indicates whether the attribute definition is an extended attribute (defined by an end user) or an attribute defined by the system.
    `boolean` | `isInherited()` | Indicates whether the attribute definition is defined on a super type and, therefore is inherited or whether the definition is defined on the enclosing type.
    `boolean` | `isRequired()` | Indicates whether the attribute is required to have a value.
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class com.sas.lsaf.core.AbstractIdentifiable

      `getId, getTypeId`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### AttributeDefinition

          public AttributeDefinition​(java.lang.String id,
                                     java.lang.String name,
                                     AttributeDefinition.AttributeType attributeType,
                                     boolean inherited,
                                     boolean editable,
                                     boolean extended,
                                     boolean required)

      Initializing constructor that allocates an `AttributeDefinition` and that sets all attributes to the specified values.
      Parameters:
        `id` - the unique identifier for the attribute definition.
        `name` - the display name of the attribute definition.
        `attributeType` - the data type of the attribute that is represented by the attribute definition.
        `inherited` - indicates whether the attribute definition is inherited from a super type.
        `editable` - indicates whether the attribute that is represented by the attribute definition is editable by end users.
        `extended` - indicates whether the attribute definition is defined as an extended attribute.
        `required` - indicates whether the attribute that is represented by the attribute definition is a required field.

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

      Gets the name of the attribute definition.
      Returns:
        The name of the attribute definition.

    - #### getAttributeType

          public AttributeDefinition.AttributeType getAttributeType()

      Gets the data type of the attribute definition.
      Returns:
        The data type of the attribute definition.

    - #### isInherited

          public boolean isInherited()

      Indicates whether the attribute definition is defined on a super type and, therefore is inherited or whether the definition is defined on the enclosing type.
      Returns:
        `True`, if the attribute definition is inherited from a super type, `False` otherwise.

    - #### isEditable

          public boolean isEditable()

      Indicates whether the attribute can be modified by an end user.
      Returns:
        `True`, if the attribute can be modified by an end-user, `False` otherwise.

    - #### isExtended

          public boolean isExtended()

      Indicates whether the attribute definition is an extended attribute (defined by an end user) or an attribute defined by the system.
      Returns:
        `True`, if the attribute definition is defined as an extended attribute by an end user, `False`, if the attribute definition is system-defined.

    - #### isRequired

          public boolean isRequired()

      Indicates whether the attribute is required to have a value.
      Returns:
        `True`, if the attribute is required to have a value, `False` otherwise.

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `AbstractIdentifiable`

    - #### equals

          public boolean equals​(java.lang.Object obj)

      Overrides:
        `equals` in class `AbstractIdentifiable`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `AbstractIdentifiable`