Class ApplicationInstance

java.lang.Object
oracle.iam.provisioning.vo.ApplicationInstance
All Implemented Interfaces:
Serializable

public class ApplicationInstance extends Object implements Serializable
Despite introducing new request management feature in OIM 11gR1, the mechanism for provisioning an account or entitlement in any target remained very IT centric. End-users who are requesting for accounts or entitlements in targets are supposed to be IT savvy enough to know the names of the target types In addition, requesting for entitlements as a first-class entity is not supported directly. This is due to the fact that in OIM, provisioning is driven by the "Resource Object" abstraction. The provisioning flow always selects the Resource Object first, and the actual physical target (IT Resource instance) is selected as a part of the data on the account profile. However, typically in enterprises, most end-users or requesters are more familiar with the real life name of the IT Resource, which encapsulates the physical target, as well as the type of the account requested This calls out for defining an entity which has a business friendly name/metadata, and encapsulates, in addition to the physical target, also the account type. Hence, we are defining a new abstraction called ApplicationInstance. This is a combination of the IT Resource Instance (target connectivity + connector configuration) and the Resource Object (the provisioning mechanism). An Application Instance will have a well-known business friendly name and additional metadata associated with it. An Application Instance is the provision able entity which will be published to the catalog. The Application Instance is also the entity with which security primitives are associated via the organization publishing mechanism. In multi-tenant environments, resource definitions can be shared by multiple organizations, but only those organizations that have the application instance published to them will be actually able to provision to the targets
Since:
11.1.2.0.0
Author:
apitre
See Also:
  • Field Details

  • Constructor Details

    • ApplicationInstance

      public ApplicationInstance(long appInstanceKey)
      This constructor creates an instance of ApplicationInstance that is already been created.
      Parameters:
      appInstanceKey - The primary key of ApplicationInstance record in APP_INSTANCE table.
    • ApplicationInstance

      public ApplicationInstance()
    • ApplicationInstance

      public ApplicationInstance(String applicationInstanceName, String displayName, String description, long objectKey, long itResourceKey, String dataSetName, String uiFragmentName)
      This constructor is used to create (add) an ApplicationInstance record in OIM respository.
      Parameters:
      applicationInstanceName - ApplicationInstance name. One can not change ApplicationInstance name once it is created.
      displayName - ApplicationInstance display name.
      description - ApplicationInstance description.
      objectKey - A Resource Object key (APP_INSTANCE.OBJECT_KEY) associated with ApplicationInstance. This should be available in Resource Object table. (OBJ.OBJ_KEY).
      itResourceKey - - An ITResource Key (APP_INSTANCE.ITRESOURCE_KEY) associated with ApplicationInstance. This key should be available in ITResource table (SVR.SVR_KEY)
      dataSetName - - The name of dataset associated with ApplicationInstance. The attributes in this dataset are used to display form associated with ApplicationInstance in UI.
      uiFragmentName - - This is not currently used. Can be used in future.
  • Method Details

    • getApplicationInstanceKey

      public long getApplicationInstanceKey()
      This method is used to get primary key of ApplicationInstance (APP_INSTANCE.APP_INSTANCE_KEY)
      Returns:
      ApplicationInstance primary key.
    • setApplicationInstanceKey

      public void setApplicationInstanceKey(long applicationInstanceKey)
      This method is used to set ApplicationInstance primary key.
      Parameters:
      applicationInstanceKey - ApplicationInstance primary key.
    • getDescription

      public String getDescription()
      This method is used to get the description associated with ApplicationInstance.
      Returns:
      description associated with ApplicationInstance.
    • setDescription

      public void setDescription(String description)
      This method is used to set the description associated with ApplicationInstance.
      Parameters:
      description - description associated with ApplicationInstance.
    • getObjectKey

      public long getObjectKey()
      This method is used to get the Resource Object Key (APP_INSTANCE.OBJECT_KEY) associated with ApplicationInstance.
      Returns:
      Resource Object key associated with ApplicationInstance.
    • setObjectKey

      public void setObjectKey(long objectKey)
      This method is used to set the Resource Object Key (APP_INSTANCE.OBJECT_KEY) associated with ApplicationInstance.
      Parameters:
      objectKey -
    • getObjectName

      public String getObjectName()
      This method is used to get the Resource Object Name (APP_INSTANCE.OBJECT_NAME) associated with ApplicationInstance. Even though it looks redundant to have Resource Object name here, it avoids call to Resource Object table when Resource Object name is needed. Hence, this is intentionally maintained in this value object. It is not stored in APP_INSTANCE table.
      Returns:
      Resource object name of the application instance.
    • setObjectName

      public void setObjectName(String objectName)
      This method is used to set the Resource Object Name (APP_INSTANCE.OBJECT_NAME) associated with ApplicationInstance. Even though it looks redundant to have Resource Object name here, it avoids call to Resource Object table when Object name is needed. Hence, this is intentionally maintained in this value object.
      Parameters:
      objectName - object name of the application instance.
    • getDataSetName

      public String getDataSetName()
      This method is used to get the dataset Name (APP_INSTANCE.APP_INSTANCE_DATASET) associated with ApplicationInstance. This in turn is used in dataset plugin that is used to return dataset name associated to ApplicationInstance, to request engine. The actual dataset XML is stored in MDS.
      Returns:
      dataset name associated with ApplicationInstance.
    • setDataSetName

      public void setDataSetName(String dataSetName)
      This method is used to set the dataset Name (APP_INSTANCE.APP_INSTANCE_DATASET) associated with ApplicationInstance. This in turn is used in dataset plugin that is used to return dataset name associated to ApplicationInstance, to request engine. The actual dataset XML is stored in MDS.
      Parameters:
      dataSetName - The dataset name that has to be associated with ApplicationInstance.
    • getItResourceKey

      public long getItResourceKey()
      This method is used to get the ITResource key (APP_INSTANCE.ITRESOURCE_KEY) associated with ApplicationInstance. This key should also be available in ITResource table (SVR.SVR_KEY). ITResource represents the connectivity to target system.
      Returns:
      ITResource Key associated with ApplicationInstance.
    • setItResourceKey

      public void setItResourceKey(long itResourceKey)
      This method is used to set the ITResource key (APP_INSTANCE.ITRESOURCE_KEY) associated with ApplicationInstance. This key should also be available in ITResource table (SVR.SVR_KEY). ITResource represents the connectivity to target system.
      Parameters:
      itResourceKey -
    • getItResourceName

      public String getItResourceName()
      This method is used to get the ITResource name (SVR.SVR_NAME) for ITResource associated with ApplicationInstance. ITResource name is not stored in APP_INSTANCE table.
      Returns:
      ITResource name associated with ApplicationInstance.
    • setItResourceName

      public void setItResourceName(String itResourceName)
      This method is used to set the ITResource name (SVR.SVR_NAME) for ITResource associated with ApplicationInstance. ITResource name is not stored in APP_INSTANCE table.
      Parameters:
      itResourceName - ITResource name associated with ApplicationInstance.
    • getParentKey

      public long getParentKey()
      This method gets the primary Key of the parent ApplicationInstance.
      Returns:
      The primary Key of the parent ApplicationInstance.
    • setParentKey

      public void setParentKey(long parentKey)
      This method sets the primary Key of the parent ApplicationInstance.
      Parameters:
      parentKey - The primary Key of the parent ApplicationInstance.
    • isSoftDelete

      public boolean isSoftDelete()
      This method returns if ApplicationInstance is soft deleted. When ApplicationInstance is deleted via API (ApplicationInstanceService/deleteApplicationInstance) then this flag is marked as true. i.e the record is soft deleted. Also, when ITResource and/or Resource Object associated with ApplicationInstance is deleted, this flag is marked as true (APP_INSTANCE_IS_SOFT_DELETE = 1) Once "Application Instance Post Delete Processing Job" is run, for all such soft-deleted records of ApplicationInstance, the system will proceed with processing as follows after hard deleting entry in APP_INSTANCE table. 1) Revoke mode - Task will revoke accounts associated with ApplicationInstance via API, which in turn will remove entries from target as well. 2) Delete mode - Task will hard delete the entries from OIM DB (OBI, OIU, ORC, UD_PARENT, UD_CHILD) 3) Decommission mode - All accounts associated to AppInstance will be marked revoked without actually going to target (i.e no adapters executed) All such deleted entries will be removed from CATALOG as well via Catalog Synchronization Job.
      Returns:
      If ApplicationInstance record is soft deleted. (APP_INSTANCE_IS_SOFT_DELETE = 1)
    • setSoftDelete

      public void setSoftDelete(boolean softDelete)
      This method sets if ApplicationInstance is soft deleted. When ApplicationInstance is deleted via API (ApplicationInstanceService/deleteApplicationInstance) then this flag is marked as true. i.e the record is soft deleted. Also, when ITResource and/or Resource Object associated with ApplicationInstance is deleted, this flag is marked as true (APP_INSTANCE_IS_SOFT_DELETE = 1) Once "Application Instance Post Delete Processing Job" is run, for all such soft-deleted records of ApplicationInstance, the system will proceed with processing as follows after hard deleting entry in APP_INSTANCE table. 1) Revoke mode - Task will revoke accounts associated with ApplicationInstance via API, which in turn will remove entries from target as well. 2) Delete mode - Task will hard delete the entries from OIM DB (OBI, OIU, ORC, UD_PARENT, UD_CHILD) 3) Decommission mode - All accounts associated to AppInstance will be marked revoked without actually going to target (i.e no adapters executed) All such deleted entries will be removed from CATALOG as well via Catalog Synchronization Job.
      Parameters:
      softDelete - A flag representing if ApplicationInstance is soft deleted.
    • isApplicableToEntitlement

      public boolean isApplicableToEntitlement()
      Deprecated.
    • setApplicableToEntitlement

      public void setApplicableToEntitlement(boolean isApplicableToEntitlement)
      Deprecated.
    • getAccountForm

      public FormInfo getAccountForm()
      This method returns FormInfo value object containing meta data information about parent form and child form associated with ApplicationInstance
      Returns:
      FormInfo value object containing meta data information about parent form associated with ApplicationInstance
    • setAccountForm

      public void setAccountForm(FormInfo accountForm)
      This method sets FormInfo value object containing meta data information about parent form associated with ApplicationInstance
      Parameters:
      accountForm - FormInfo value object
      See Also:
    • getChildForms

      public List<FormInfo> getChildForms()
      This method returns the list of FormInfo value object containing meta data information about child form associated with ApplicationInstance
      Returns:
      The list of FormInfo value object containing child form meta data infomration.
      See Also:
    • setChildForms

      public void setChildForms(List<FormInfo> childForms)
      This method sets the list of FormInfo value object containing meta data information about child form associated with ApplicationInstance
      Parameters:
      childForms - The list of FormInfo value objects representing child forms.
      See Also:
    • addChildForm

      public void addChildForm(FormInfo childForm)
    • getApplicationInstanceName

      public String getApplicationInstanceName()
      This method is used to get ApplicationInstance name (APP_INSTANCE.APP_INSTANCE_NAME)
      Returns:
      ApplicationInstance name (APP_INSTANCE.APP_INSTANCE_NAME)
    • setApplicationInstanceName

      public void setApplicationInstanceName(String applicationInstanceName)
      This method is used to set ApplicationInstance name (APP_INSTANCE.APP_INSTANCE_NAME)
      Parameters:
      applicationInstanceName - ApplicationInstance name (APP_INSTANCE.APP_INSTANCE_NAME)
    • getType

      public ApplicationInstance.TYPE getType()
      This method is used to get type of ApplicationInstance. DOBBased for connected ApplicationInstance Disconnected for Disconnected ApplicationInstance SPMLBased and ICFBased are reserved for future.
      Returns:
      ApplicationInstance type (APP_INSTANCE. APP_INSTANCE_TYPE)
    • setType

      public void setType(ApplicationInstance.TYPE type)
      This method is used to set type of ApplicationInstance. DOBBased for connected ApplicationInstance Disconnected for Disconnected ApplicationInstance SPMLBased and ICFBased are reserved for future.
      Parameters:
      type - ApplicationInstance type
    • getDisplayName

      public String getDisplayName()
      This method gets the display name of the ApplicationInstance (APP_INSTANCE.APP_INSTANCE_DISPLAY_NAME)
      Returns:
      the display name of the ApplicationInstance (APP_INSTANCE.APP_INSTANCE_DISPLAY_NAME)
    • setDisplayName

      public void setDisplayName(String displayName)
      This method sets the display name of the ApplicationInstance (APP_INSTANCE.APP_INSTANCE_DISPLAY_NAME)
      Parameters:
      displayName - the display name of the ApplicationInstance (APP_INSTANCE.APP_INSTANCE_DISPLAY_NAME)
    • toString

      public String toString()
      This method is used to convert ApplicationInstance value object to String It prints ApplicationInstance name:ITResourceKey:ResourceObjectKey
      Overrides:
      toString in class Object
    • getParentAppInstance

      public ApplicationInstance getParentAppInstance()
      This method gets the parent ApplicationInstance associated with current ApplicationInstance. It means current ApplicationInstance depends on ApplicationInstance returned by this method.
      Returns:
      Parent ApplicationInstance of this ApplicationInstance.
    • setParentAppInstance

      public void setParentAppInstance(ApplicationInstance parentAppInstance)
      This method sets the parent ApplicationInstance associated with current ApplicationInstance. It means current ApplicationInstance depends on ApplicationInstance returned by this method.
      Parameters:
      parentAppInstance - Parent ApplicationInstance of this ApplicationInstance.
    • getCatalogAttributes

      public Catalog getCatalogAttributes()
      This method gets the catalog values
    • setCatalogAttributes

      public void setCatalogAttributes(Catalog catalogAttributes)
      This method sets the catalog values to the Application Instance object