Class ContextRequest


  • public class ContextRequest
    extends Object
    Specific context information related to sandbox and/or multitenant state. This information is generally harvested from an API request over HTTP in the form of the X-Context-Request header. This header value is expressed as a json string and conversion is generally performed automatically by Spring in any MVC Controller implementations using the ContextRequestConverter and included inside of ContextInfo by ContextInfoHandlerMethodArgumentResolver. Therefore, you can simply include ContextInfo as a parameter to method in your request mapping method Spring will construct a valid instance for you.
    Author:
    Jeff Fischer
    • Constructor Detail

      • ContextRequest

        public ContextRequest​(@NonNull
                              ContextRequest contextRequest)
        Create a copy of an existing ContextRequest.

        Note that catalog and application are not deep copies.

        Parameters:
        contextRequest - The ContextRequest to copy from.
      • ContextRequest

        public ContextRequest()
    • Method Detail

      • getSandboxId

        public String getSandboxId()
        The id for the current user sandbox. This is used to discriminate results in order to make sure CRUD operations are executed against the right version of an entity. Multiple versions will share the same context id.
        Returns:
        The id for the current user sandbox
      • getSandboxName

        public String getSandboxName()
        The friendly name for the current user sandbox.
        Returns:
        The friendly name for the current user sandbox
      • getCatalogId

        public String getCatalogId()
        A multitenant concept, the id for the current catalog. This is used to discriminate results in order to make sure CRUD operations are executed against the right version of an entity.
        Returns:
        The id for the current catalog
      • isForceCatalogForFetch

        public boolean isForceCatalogForFetch()
        Whether or not a getCatalogId() is filtered on during a fetch operation. When false, any catalogs visible to the current application are used to filter instead. Setting this to true is useful when you want limit results to a specific catalog visible to the current application, regardless of whether or not the current application has visibility into more catalogs.
        Returns:
        Whether or not a getCatalogId() is filtered on during a fetch operation
      • getApplicationId

        public String getApplicationId()
        A multitenant concept, the id for the current application. Catalogs are generally associated with applications. This is used to discriminate results in order to make sure CRUD operations are executed against the right version of an entity.
        Returns:
        The id for the current application
      • getTenantId

        public String getTenantId()
        A multitenant concept, the id for the current tenant. Represents the distinct, completely independent contexts, for example owned by separate companies. Applications always belong to a tenant.
        Returns:
        The id for the current tenant
      • getCustomerContextId

        public String getCustomerContextId()
        Returns the customer context id that is used to discriminate entities with TrackableBehavior.CUSTOMER_CONTEXT.
        Returns:
        the customer context id
      • getChangeContainer

        public ChangeContainer getChangeContainer()
        Metadata used to populate any ChangeEvent created from this request.
        Returns:
        Metadata used to populate any ChangeEvent created from this request
      • getApplication

        public Application getApplication()
        Context instance of the Application entity related to this applicationId. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of application using applicationId in the ContextRequestConverter.
        Returns:
        Context instance of the Application entity related to this applicationId
      • getCatalog

        public Catalog getCatalog()
        Context instance of the Catalog entity related to this catalogId. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of catalog using catalogId in the ContextRequestHydrator.
        Returns:
        Context instance of the Catalog entity related to this catalogId or null if there was no catalogId given
      • getCatalogHierarchy

        public InheritanceLines getCatalogHierarchy()
        Each level within the explicit catalog hierarchy made from resolving a catalog via the catalogId. This can be used to obtain the a list of the contextIds for the deep catalog tree parents. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of catalog using catalogId in the ContextRequestHydrator.
        Returns:
        the deep catalog tree parenting the catalogId
      • getCatalogLevel

        public Long getCatalogLevel()
        If the catalogId is set, catalogLevel represents the sorting level of that catalog in the overall hierarchy. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of application using applicationId in the ContextRequestHydrator.
        Returns:
        Represents the sorting level of that catalog in the overall hierarchy
      • setSandboxId

        public void setSandboxId​(String sandboxId)
        The id for the current user sandbox. This is used to discriminate results in order to make sure CRUD operations are executed against the right version of an entity. Multiple versions will share the same context id.
        Parameters:
        sandboxId - The id for the current user sandbox
      • setSandboxName

        public void setSandboxName​(String sandboxName)
        The friendly name for the current user sandbox.
        Parameters:
        sandboxName - The friendly name for the current user sandbox
      • setCatalogId

        public void setCatalogId​(String catalogId)
        A multitenant concept, the id for the current catalog. This is used to discriminate results in order to make sure CRUD operations are executed against the right version of an entity.
        Parameters:
        catalogId - The id for the current catalog
      • setForceCatalogForFetch

        public void setForceCatalogForFetch​(boolean forceCatalogForFetch)
        Whether or not a getCatalogId() is filtered on during a fetch operation. When false, any catalogs visible to the current application are used to filter instead. Setting this to true is useful when you want limit results to a specific catalog visible to the current application, regardless of whether or not the current application has visibility into more catalogs.
        Parameters:
        forceCatalogForFetch - Whether or not a getCatalogId() is filtered on during a fetch operation
      • setApplicationId

        public void setApplicationId​(String applicationId)
        A multitenant concept, the id for the current application. Catalogs are generally associated with applications. This is used to discriminate results in order to make sure CRUD operations are executed against the right version of an entity.
        Parameters:
        applicationId - The id for the current application
      • setTenantId

        public void setTenantId​(String tenantId)
        A multitenant concept, the id for the current tenant. Represents the distinct, completely independent contexts, for example owned by separate companies. Applications always belong to a tenant.
        Parameters:
        tenantId - The id for the current tenant
      • setCustomerContextId

        public void setCustomerContextId​(String customerContextId)
        Returns the customer context id that is used to discriminate entities with TrackableBehavior.CUSTOMER_CONTEXT.
        Parameters:
        customerContextId - the customer context id
      • setChangeContainer

        public void setChangeContainer​(ChangeContainer changeContainer)
        Metadata used to populate any ChangeEvent created from this request.
        Parameters:
        changeContainer - Metadata used to populate any ChangeEvent created from this request
      • setApplication

        public void setApplication​(Application application)
        Context instance of the Application entity related to this applicationId. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of application using applicationId in the ContextRequestConverter.
        Parameters:
        application - Context instance of the Application entity related to this applicationId
      • setCatalog

        public void setCatalog​(Catalog catalog)
        Context instance of the Catalog entity related to this catalogId. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of catalog using catalogId in the ContextRequestHydrator.
        Parameters:
        catalog - Context instance of the Catalog entity related to this catalogId
      • setCatalogHierarchy

        public void setCatalogHierarchy​(InheritanceLines catalogHierarchy)
        Each level within the explicit catalog hierarchy made from resolving a catalog via the catalogId. This can be used to obtain the a list of the contextIds for the deep catalog tree parents. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of catalog using catalogId in the ContextRequestHydrator.
        Parameters:
        catalogHierarchy - the deep catalog tree parenting the catalogId
      • setCatalogLevel

        public void setCatalogLevel​(Long catalogLevel)
        If the catalogId is set, catalogLevel represents the sorting level of that catalog in the overall hierarchy. This is not a value that is generally populated via JSON. Rather, this variable is generally calculated via lookup of application using applicationId in the ContextRequestHydrator.
        Parameters:
        catalogLevel - Represents the sorting level of that catalog in the overall hierarchy
      • canEqual

        protected boolean canEqual​(Object other)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object