com.ansys.ingress.client.api

## Interface ModelObject

-     public interface ModelObject

  ModelObject represents an object in the EKM repository.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getBaseTypeName()`
    `com.ansys.ingress.commons.model.CheckinStatus` | `getCheckinStatus()`
    `ModelObject` | `getChild(java.lang.String name)` Gets the child with the specified name.
    `java.util.Set<java.lang.String>` | `getChildNames()`
    `java.util.Map<java.lang.String,ModelObject>` | `getChildren()`
    `DataManager` | `getDataManager()`
    `java.lang.String` | `getDescription()`
    `java.lang.String` | `getDisplayName()`
    `java.lang.String` | `getID()`
    `java.util.Calendar` | `getModificationTime()`
    `java.lang.String` | `getModifiedBy()`
    `java.lang.String` | `getName()`
    `ModelObject` | `getParent()`
    `java.lang.String` | `getParentPath()`
    `java.lang.String` | `getPath()`
    `java.util.Map<java.lang.String,com.ansys.ingress.commons.model.Variant>` | `getProperties()`
    `com.ansys.ingress.commons.model.Variant` | `getProperty(java.lang.String propertyName)` Retrieves a property of this object.
    `com.ansys.ingress.commons.model.properties.PropertySpec` | `getPropertySpec(java.lang.String propName)` Gets the property specfication for the specified property name.
    `ModelSpec` | `getSpec()`
    `java.lang.String` | `getTypeName()`
    `java.lang.String` | `getViewName()`
    `java.lang.String` | `getViewPath()`
    `boolean` | `hasChild(java.lang.String name)` Determines if this object has a child with the given name.
    `boolean` | `hasPermission(java.lang.String modifyAction)` Determines if the current user has permission to perform the specified action.
    `boolean` | `isCheckedIn()`
    `boolean` | `isCheckedOut()`
    `boolean` | `isFolder()`
    `boolean` | `isInternal()`
    `boolean` | `isLocked()`
    `boolean` | `isUnderVersionControl()`
    `void` | `removeProperty(java.lang.String name)` Removes a property from this object.
    `void` | `setDescription(java.lang.String description)` Sets the description of this object.
    `void` | `setProperty(java.lang.String propertyName, com.ansys.ingress.commons.model.Variant value)` Sets a property's value in this object.
    `void` | `setUserProperty(java.lang.String category, java.lang.String name, com.ansys.ingress.commons.model.Variant value)` Sets a user-defined property in this object.

- - ### Method Detail

    - #### getBaseTypeName

          java.lang.String getBaseTypeName()

      Returns:
        Returns the base type of this object.

    - #### getCheckinStatus

          com.ansys.ingress.commons.model.CheckinStatus getCheckinStatus()

      Returns:
        Returns the checkin status of an object.

    - #### getChild

          ModelObject getChild(java.lang.String name)

      Gets the child with the specified name.
      Parameters:
        `name` - the name of the child to get
      Returns:
        Returns the child or null if it does not exist.

    - #### getChildren

          java.util.Map<java.lang.String,ModelObject> getChildren()

      Returns:
        Returns the children of this object.

    - #### getChildNames

          java.util.Set<java.lang.String> getChildNames()

      Returns:
        Returns the names of this object's children.

    - #### getDataManager

          DataManager getDataManager()

      Returns:
        Returns the `DataManager` associated with this object.

    - #### getDescription

          java.lang.String getDescription()

      Returns:
        Returns the description of this object.

    - #### getDisplayName

          java.lang.String getDisplayName()

      Returns:
        Returns the name of the object as it is displayed in the EKM Web user interface.

    - #### getID

          java.lang.String getID()

      Returns:
        Returns the unique ID of this object.

    - #### getModificationTime

          java.util.Calendar getModificationTime()

      Returns:
        Returns the date and time this object was last modified.

    - #### getModifiedBy

          java.lang.String getModifiedBy()

      Returns:
        Returns the user that last modified this object.

    - #### getName

          java.lang.String getName()

      Returns:
        Returns the name of the object.

    - #### getParent

          ModelObject getParent()
                         throws DataException

      Returns:
        Returns the parent of this object.
      Throws:
        `DataException` - if the parent could not be retrieved.

    - #### getParentPath

          java.lang.String getParentPath()

      Returns:
        Returns the path to this object's parent.

    - #### getPath

          java.lang.String getPath()

      Returns:
        Returns the path of the object.

    - #### getProperties

          java.util.Map<java.lang.String,com.ansys.ingress.commons.model.Variant> getProperties()

      Returns:
        Returns the properties of this object.

    - #### getProperty

          com.ansys.ingress.commons.model.Variant getProperty(java.lang.String propertyName)

      Retrieves a property of this object.
      Parameters:
        `propertyName` - the name of the property to get
      Returns:
        Returns the property's value or null if the property does not exist.

    - #### getPropertySpec

          com.ansys.ingress.commons.model.properties.PropertySpec getPropertySpec(java.lang.String propName)
                                                                           throws com.ansys.ingress.commons.model.PropertyNotFoundException

      Gets the property specfication for the specified property name.
      Parameters:
        `propName` - the name of the property.
      Returns:
        Returns the [@link `PropertySpec` for the property.
      Throws:
        `com.ansys.ingress.commons.model.PropertyNotFoundException` - if not property with the given name is defined for this object.

    - #### getSpec

          ModelSpec getSpec()

      Returns:
        Returns the specification of this object.

    - #### getTypeName

          java.lang.String getTypeName()

      Returns:
        Returns the EKM type of this object.

    - #### getViewName

          java.lang.String getViewName()

      Returns:
        Returns the user-friendly name of the object.

    - #### getViewPath

          java.lang.String getViewPath()

      Returns:
        Returns the "view" path of an object as opposed to the raw, repository path. For example, /Data/Shared Data/foo.txt is the view path for /Repository/foo.txt.

    - #### hasChild

          boolean hasChild(java.lang.String name)

      Determines if this object has a child with the given name.
      Parameters:
        `name` - the name to check
      Returns:
        Returns true if this object has a child with the given name.

    - #### hasPermission

          boolean hasPermission(java.lang.String modifyAction)

      Determines if the current user has permission to perform the specified action.
      Parameters:
        `action` - the action to check
      Returns:
        Returns true if the user has permission.

    - #### isCheckedIn

          boolean isCheckedIn()

      Returns:
        Returns true if this object is current checked into version control.

    - #### isCheckedOut

          boolean isCheckedOut()

      Returns:
        Returns true if this object is checked out by the current user.

    - #### isFolder

          boolean isFolder()

      Returns:
        Returns true if this ModelObject represents a folder in the EKM repository.

    - #### isInternal

          boolean isInternal()

    - #### isLocked

          boolean isLocked()

      Returns:
        Returns true if this object is locked for exclusive use by the current user.

    - #### isUnderVersionControl

          boolean isUnderVersionControl()

      Returns:
        Returns true if this object is under version control.

    - #### removeProperty

          void removeProperty(java.lang.String name)

      Removes a property from this object.
      Parameters:
        `name` - the name of the property to remove

    - #### setDescription

          void setDescription(java.lang.String description)

      Sets the description of this object.
      Parameters:
        `description` - the description to set

    - #### setProperty

          void setProperty(java.lang.String propertyName,
                           com.ansys.ingress.commons.model.Variant value)
                    throws EkmException

      Sets a property's value in this object.
      Parameters:
        `propertyName` - the name of the property to set
        `value` - the value to set
      Throws:
        `EkmException` - if the property cannot be modified.

    - #### setUserProperty

          void setUserProperty(java.lang.String category,
                               java.lang.String name,
                               com.ansys.ingress.commons.model.Variant value)
                        throws com.ansys.ingress.commons.model.InvalidNameException

      Sets a user-defined property in this object.
      Parameters:
        `category` - the category of the property
        `name` - the name of the property
        `value` - the value of the property
      Throws:
        `com.ansys.ingress.commons.model.InvalidNameException` - if the name or its format is invalid.