Interface MetadataService


public interface MetadataService
A Service to manage Metadata of any content of any type. This Service will allow to store additional Metadata to contents without defining additional Services or Storage layers to allow to extends content definition
  • Method Details

    • createMetadata

      Metadata createMetadata(Metadata metadata, long userIdentityId)
      Creates a new Metadata object
      Parameters:
      metadata - Metadata
      userIdentityId - Identity identifier of the creator
      Returns:
      created Metadata
    • createMetadata

      Metadata createMetadata(Metadata metadata)
      Creates a new Metadata object
      Parameters:
      metadata - Metadata
      Returns:
      created Metadata
    • updateMetadata

      Metadata updateMetadata(Metadata metadata, long userIdentityId)
      Updates a Metadata object
      Parameters:
      metadata - Metadata
      userIdentityId - Identity identifier of the creator
      Returns:
      updated Metadata
    • updateMetadata

      default Metadata updateMetadata(Metadata metadata)
      Updates a Metadata object
      Parameters:
      metadata - Metadata
      Returns:
      updated Metadata
    • deleteMetadataById

      Metadata deleteMetadataById(long metadataId)
      Deletes a Metadata by a given Metadata identifier
      Parameters:
      metadataId - Metadata technical identifier
      Returns:
      Deleted Metadata
    • deleteMetadataBySpaceId

      int deleteMetadataBySpaceId(long spaceId)
      Deletes all MetadataItem by a given Space identifier
      Parameters:
      spaceId - Space technical identifier
      Returns:
      deleted items count
    • deleteMetadataBySpaceIdAndAudienceId

      int deleteMetadataBySpaceIdAndAudienceId(long spaceId, long audienceId)
      Deletes all MetadataItem by a given Space identifier and audience Identity identifier
      Parameters:
      spaceId -
      audienceId -
      Returns:
      deleted items count
    • getMetadataByKey

      Metadata getMetadataByKey(MetadataKey metadataKey)
      Retrieves a Metadata identified by a unique constraint for 'Metadata Type', 'Metadata Name' and 'Metadata Audience'.
      Parameters:
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      Returns:
      Metadata if found, else null
    • getMetadataById

      Metadata getMetadataById(long id)
      Retrieves a Metadata identified by its technical identifier
      Parameters:
      id - technical identifier
      Returns:
      Metadata if found, else null
    • createMetadataItem

      MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, long userIdentityId) throws ObjectAlreadyExistsException
      Creates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one
      Parameters:
      metadataObject - object to store
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      userIdentityId - Identity technical identifier designating the user making the operation
      Returns:
      Created MetadataItem
      Throws:
      ObjectAlreadyExistsException - when the MetadataTypePlugin doesn't allow multiple objects per Metadata and an object is already associated to the designated Metadata
    • createMetadataItem

      MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String,String> properties, long userIdentityId, boolean broadcast) throws ObjectAlreadyExistsException
      Creates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one
      Parameters:
      metadataObject - object to store
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      properties - Map properties of MetadataItem
      userIdentityId - Identity technical identifier designating the user making the operation
      broadcast - whether broadcast event after creating or not
      Returns:
      Created MetadataItem
      Throws:
      ObjectAlreadyExistsException - when the MetadataTypePlugin doesn't allow multiple objects per Metadata and an object is already associated to the designated Metadata
    • createMetadataItem

      MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String,String> properties, long userIdentityId) throws ObjectAlreadyExistsException
      Creates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one
      Parameters:
      metadataObject - object to store
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      properties - Map properties of MetadataItem
      userIdentityId - Identity technical identifier designating the user making the operation
      Returns:
      Created MetadataItem
      Throws:
      ObjectAlreadyExistsException - when the MetadataTypePlugin doesn't allow multiple objects per Metadata and an object is already associated to the designated Metadata
    • createMetadataItem

      MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String,String> properties, boolean broadcast) throws ObjectAlreadyExistsException
      Creates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one
      Parameters:
      metadataObject - object to store
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      properties - Map properties of MetadataItem
      broadcast - whether broadcast event after creating or not
      Returns:
      Created MetadataItem
      Throws:
      ObjectAlreadyExistsException - when the MetadataTypePlugin doesn't allow multiple objects per Metadata and an object is already associated to the designated Metadata
    • createMetadataItem

      MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String,String> properties) throws ObjectAlreadyExistsException
      Creates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one
      Parameters:
      metadataObject - object to store
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      properties - Map properties of MetadataItem
      Returns:
      Created MetadataItem
      Throws:
      ObjectAlreadyExistsException - when the MetadataTypePlugin doesn't allow multiple objects per Metadata and an object is already associated to the designated Metadata
    • updateMetadataItem

      MetadataItem updateMetadataItem(MetadataItem metadataItem, long userIdentityId, boolean broadcast)
      Parameters:
      metadataItem - MetadataItem
      userIdentityId - Identity technical identifier designating the user making the operation
      broadcast - whether broadcast event after updating or not
      Returns:
      Updated MetadataItem
    • updateMetadataItem

      MetadataItem updateMetadataItem(MetadataItem metadataItem, long userIdentityId)
      Parameters:
      metadataItem - MetadataItem
      userIdentityId - Identity technical identifier designating the user making the operation
      Returns:
      Updated MetadataItem
    • deleteMetadataItem

      MetadataItem deleteMetadataItem(long itemId, long userIdentityId) throws org.exoplatform.commons.exception.ObjectNotFoundException
      Parameters:
      itemId - MetadataItem technical identifier
      userIdentityId - Identity technical identifier designating the user making the operation
      Returns:
      Deleted MetadataItem
      Throws:
      org.exoplatform.commons.exception.ObjectNotFoundException - when the MetadataItem isn't found
    • deleteMetadataItem

      MetadataItem deleteMetadataItem(long itemId, boolean broadcast) throws org.exoplatform.commons.exception.ObjectNotFoundException
      Parameters:
      itemId - MetadataItem technical identifier
      broadcast - whether broadcast event after deleting or not
      Returns:
      Deleted MetadataItem
      Throws:
      org.exoplatform.commons.exception.ObjectNotFoundException - when the MetadataItem isn't found
    • deleteMetadataItemsByObject

      void deleteMetadataItemsByObject(MetadataObject object)
      Deletes Metadata items for a given MetadataItem objectId and objectType. This is generally called when the associated object has been removed (activity removed, comment removed ...)
      Parameters:
      object - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and an objectId (the object technical identifier. In general we use here the DB identifier of the object).
    • deleteByMetadataTypeAndSpaceIdAndCreatorId

      void deleteByMetadataTypeAndSpaceIdAndCreatorId(String metadataTypeName, long spaceId, long userIdentityId)
      Deletes all metadata items by MetadataType and spaceId and audienceId
      Parameters:
      metadataTypeName - MetadataType name
      spaceId - Space id
      userIdentityId - Identity id
    • deleteByMetadataTypeAndCreatorId

      void deleteByMetadataTypeAndCreatorId(String metadataTypeName, long userIdentityId)
      Deletes all metadata items by MetadataType and audienceId
      Parameters:
      metadataTypeName - MetadataType name
      userIdentityId - Identity id
    • deleteMetadataItemsByMetadataTypeAndObject

      void deleteMetadataItemsByMetadataTypeAndObject(String metadataType, MetadataObject object)
      Deletes Metadata items for a given Metadata type, objectId and objectType. This is generally called when the associated object has been removed (activity removed, comment removed ...)
      Parameters:
      metadataType - Metadata type
      object - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and an objectId (the object technical identifier. In general we use here the DB identifier of the object).
    • shareMetadataItemsByObject

      List<MetadataItem> shareMetadataItemsByObject(MetadataObject sourceObject, String targetObjectId, long audienceId, long creatorId)
      Shares/copy the MetadataItem list of a shared object to the newly created object.
      Parameters:
      sourceObject - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and an objectId (the object technical identifier. In general we use here the DB identifier of the object).
      targetObjectId - target content that will receive the metadata items
      audienceId - targeted audience Identity identifier
      creatorId - Identity identifier of user sharing object
      Returns:
      newly created MetadataItem associated to targetObjectId
    • getMetadataNamesByObject

      Set<String> getMetadataNamesByObject(MetadataObject object)
      return Set of Metadata names associated to a given object
      Parameters:
      object - MetadataObject used to search items
      Returns:
      Set of Metadata name
    • getMetadataNamesByMetadataTypeAndObject

      List<String> getMetadataNamesByMetadataTypeAndObject(String metadataTypeName, String objectType, String objectId)
      return List of Metadata names associated to a given metadata type, object type and object id. The returned list is sorted descending by id.
      Parameters:
      metadataTypeName -
      objectType -
      objectId -
      Returns:
      List of metadata names
    • getMetadataNamesByMetadataTypeAndObject

      List<String> getMetadataNamesByMetadataTypeAndObject(String metadataTypeName, String objectType, String objectId, int offset, int limit)
      Retrieves list of metadata names associated with a specific metadata type, object type, and object ID.
      Parameters:
      metadataTypeName - The name of the metadata type used to filter the results.
      objectType - The type of the object that the metadata is associated with.
      objectId - The unique identifier of the object to filter the metadata by.
      offset - The number of records to skip before starting to return results (used for pagination).
      limit - The maximum number of results to return (used for pagination).
      Returns:
      A List of String containing the metadata names associated with the specified metadata type, object type, and object ID, sorted in descending order by the metadata ID.
    • getMetadataItemsByObject

      List<MetadataItem> getMetadataItemsByObject(MetadataObject object)
      Retrieves the list of Metadata attached to an object identified by its name and identifier
      Parameters:
      object - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and an objectId (the object technical identifier. In general we use here the DB identifier of the object).
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataTypeAndObject

      List<MetadataItem> getMetadataItemsByMetadataTypeAndObject(String metadataType, MetadataObject object)
      Retrieves the list of Metadata items attached to a given Metadata type and an object identified by its name and identifier
      Parameters:
      metadataType - Metadata type
      object - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and an objectId (the object technical identifier. In general we use here the DB identifier of the object).
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataTypeAndObjectType

      List<MetadataItem> getMetadataItemsByMetadataTypeAndObjectType(String metadataType, String objectType)
      Retrieves the list of Metadata items attached to a given Metadata type and an object identified by its name and identifier
      Parameters:
      metadataType - Metadata type
      objectType - MetadataObject type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...)
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataNameAndTypeAndObject

      List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObject(String metadataName, String metadataTypeName, String objectType, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata name, type and MetadataItem object type
      Parameters:
      metadataName - Metadata name
      metadataTypeName - Metadata type name
      objectType - objectType MetadataItem objectType
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataNameAndTypeAndObject

      List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObject(String metadataName, String metadataTypeName, String objectType, String objectId, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata name, type and MetadataItem object type
      Parameters:
      metadataName - Metadata name
      metadataTypeName - Metadata type name
      objectType - MetadataItem objectType
      objectId - MetadataItem objectId
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceId

      default List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceId(String metadataName, String metadataTypeName, String objectType, long spaceId, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata name, type and MetadataItem object type and MetadataItem space id
      Parameters:
      metadataName - Metadata name
      metadataTypeName - Metadata type name
      objectType - objectType MetadataItem objectType
      spaceId - spaceId MetadataItem spaceId
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataNameAndTypeAndSpaceIds

      default List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndSpaceIds(String metadataName, String metadataTypeName, List<Long> spaceIds, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata name, type and MetadataItem space ids
      Parameters:
      metadataName - Metadata name
      metadataTypeName - Metadata type name
      spaceIds - spaceId List of MetadataItem
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceIds

      default List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceIds(String metadataName, String metadataTypeName, String objectType, List<Long> spaceIds, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata name, type and MetadataItem object type and MetadataItem space ids
      Parameters:
      metadataName - Metadata name
      metadataTypeName - Metadata type name
      objectType - objectType MetadataItem objectType
      spaceIds - spaceId List of MetadataItem
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataNameAndTypeAndObjectAndMetadataItemProperty

      List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObjectAndMetadataItemProperty(String metadataName, String metadataTypeName, String objectType, String propertyKey, String propertyValue, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata name, type, MetadataItem object type and MetadataItem property
      Parameters:
      metadataName - Metadata name
      metadataTypeName - Metadata type name
      objectType - objectType MetadataItem objectType
      propertyKey - MetadataItem property key
      propertyValue - MetadataItem property value
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • getMetadataItemsByMetadataTypeAndCreator

      List<MetadataItem> getMetadataItemsByMetadataTypeAndCreator(String metadataTypeName, long creatorId, long offset, long limit)
      Retrieves the Metadata item attached to a given Metadata type, MetadataItem creatorId
      Parameters:
      metadataTypeName - Metadata type
      creatorId - MetadataItem creatorId
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of linked MetadataItem
    • countMetadataItemsByMetadataTypeAndCreator

      int countMetadataItemsByMetadataTypeAndCreator(String metadataTypeName, long creatorId)
      Count the size of metadata items to a given Metadata type, MetadataItem creatorId
      Parameters:
      metadataTypeName - Metadata type
      creatorId - MetadataItem creatorId
      Returns:
      integer
    • countMetadataItemsByMetadataTypeAndObjectTypeAndCreator

      int countMetadataItemsByMetadataTypeAndObjectTypeAndCreator(String metadataTypeName, String objectType, long creatorId)
      Count the size of metadata items to a given Metadata type, MetadataItem creatorId
      Parameters:
      metadataTypeName - Metadata type
      objectType - MetadataItem objectType
      creatorId - MetadataItem creatorId
      Returns:
      integer
    • countMetadataItemsByMetadataTypeAndAudienceId

      Map<String,Long> countMetadataItemsByMetadataTypeAndAudienceId(String metadataTypeName, long creatorId, long spaceId)
      Count the size of Metadata items to a given Metadata type, MetadataItem creatorId by a given Space identifier
      Parameters:
      metadataTypeName - Metadata type
      creatorId - MetadataItem creatorId
      spaceId - Space technical identifier
      Returns:
      map of Metadata items grouped by objectId MetadataObject
    • countMetadataItemsByMetadataTypeAndSpacesIdAndCreatorId

      Map<Long,Long> countMetadataItemsByMetadataTypeAndSpacesIdAndCreatorId(String metadataTypeName, long creatorId, List<Long> spaceIds)
      Count the size of Metadata items to a given Metadata type, creatorId MetadataItem by Space technical identifier
      Parameters:
      metadataTypeName - Metadata name
      creatorId - MetadataItem creatorId
      spaceIds - Space technical identifier
      Returns:
      map of Metadata items grouped by space MetadataObject
    • getMetadataItemsByMetadataAndObject

      List<MetadataItem> getMetadataItemsByMetadataAndObject(MetadataKey metadataKey, MetadataObject object)
      Retrieves the list of Metadata items attached to a MetadataKey and an object identified by its name and identifier
      Parameters:
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      object - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and an objectId (the object technical identifier. In general we use here the DB identifier of the object).
      Returns:
      List of linked MetadataItem
    • getMetadataObjectIds

      List<String> getMetadataObjectIds(String metadataType, String metadataName, String objectType, long offset, long limit)
      Retieves a list of object identifiers switch Metadata type, name and objectType
      Parameters:
      metadataType - Metadata type
      metadataName - Metadata name
      objectType - MetadataItem objectType
      offset - offset of ids to retrieve
      limit - limit of ids to retrieve
      Returns:
      List of associated objects ordered by MetadataItem creationDate desc
    • addMetadataTypePlugin

      void addMetadataTypePlugin(MetadataTypePlugin metadataTypePlugin)
      Registers a new MetadataType
      Parameters:
      metadataTypePlugin - a ComponentPlugin defining MetadataType to register
    • addMetadataPlugin

      void addMetadataPlugin(MetadataInitPlugin metadataInitPlugin)
      Save a new Metadata
      Parameters:
      metadataInitPlugin - a ComponentPlugin defining Metadata to save
    • getMetadataTypePluginByName

      MetadataTypePlugin getMetadataTypePluginByName(String name)
      Retrieves a registered MetadataTypePlugin by name
      Parameters:
      name - MetadataType name
      Returns:
      MetadataTypePlugin
    • getMetadataTypeByName

      MetadataType getMetadataTypeByName(String name)
      Retrieves a registered MetadataType by name
      Parameters:
      name - MetadataType name
      Returns:
      MetadataType
    • getMetadataTypes

      List<MetadataType> getMetadataTypes()
      Returns:
      List of Managed MetadataType
    • getMetadatasByProperty

      List<Metadata> getMetadatasByProperty(String propertyKey, String propertyValue, long limit)
      Parameters:
      propertyKey - Metadata property key
      propertyValue - Metadata property value
      limit - limit of results to retrieve
      Returns:
      List of Managed Metadata by property
    • countMetadataIdsByProperty

      long countMetadataIdsByProperty(String propertyKey, String propertyValue)
      Parameters:
      propertyKey - Metadata property key
      propertyValue - Metadata property value
      Returns:
      count of found Metadata
    • getMetadataIdsByProperty

      List<Long> getMetadataIdsByProperty(String propertyKey, String propertyValue, long offset, long limit)
      Parameters:
      propertyKey - Metadata property key
      propertyValue - Metadata property value
      offset - offset of results to retrieve
      limit - limit of results to retrieve
      Returns:
      List of Managed Metadata by property
    • getMetadatas

      List<Metadata> getMetadatas(String metadataTypeName, long limit)
      Parameters:
      metadataTypeName - metadata name Metadata name
      limit - limit of results to retrieve
      Returns:
      List of Managed Metadata
    • getMetadataIds

      List<Long> getMetadataIds(String metadataTypeName, int offset, int limit)
      Parameters:
      metadataTypeName - metadata name Metadata name
      offset - offset of results to retrieve
      limit - limit of results to retrieve
      Returns:
      List of Managed Metadata
    • deleteMetadataItemsByParentObject

      void deleteMetadataItemsByParentObject(MetadataObject object)
      Deletes Metadata items for a given MetadataItem parentObjectId and objectType. This is generally called when the associated parent object has been removed (activity removed bu example, its comments metadata items has to be deleted as well)
      Parameters:
      object - MetadataObject that defines an objectType (an object type identifier like, ACTIVITY, COMMENT, NOTE, FILE ...) and a parentObjectId (the object technical identifier. In general we use here the DB identifier of the object).
    • deleteByMetadataItemsTypeAndUntilCreationDate

      int deleteByMetadataItemsTypeAndUntilCreationDate(String metadataTypeName, long untilDate)
      deletes Metadata Items which creation date is before the signated date
      Parameters:
      metadataTypeName - metadata name Metadata name
      untilDate - date in milliseconds
      Returns:
      the number of deleted items
    • findMetadataNamesByAudiences

      List<String> findMetadataNamesByAudiences(String term, String metadataTypeName, Set<Long> audienceIds, long limit)
      Retrieves a Set of Metadata name matching the given MetadataType and Set of audience Identity ids
      Parameters:
      term - Search query matching Metadata name
      metadataTypeName - MetadataType name
      audienceIds - Set of Identity identifiers
      limit - limit of results to retrieve
      Returns:
      List of Metadata names
    • findMetadataNamesByCreator

      List<String> findMetadataNamesByCreator(String term, String metadataTypeName, long creatorId, long limit)
      Retrieves a Set of Metadata name matching the given MetadataType and Set of audience Identity ids
      Parameters:
      term - Search query matching Metadata name
      metadataTypeName - MetadataType name
      creatorId - Identity identifier of creator
      limit - limit of results to retrieve
      Returns:
      List of Metadata names
    • findMetadataNamesByUserAndQuery

      List<String> findMetadataNamesByUserAndQuery(String term, String metadataTypeName, Set<Long> audienceIds, long creatorId, long limit)
      Retrieves a Set of Metadata name matching the given MetadataType and Set of audience Identity ids
      Parameters:
      term - Search query matching Metadata name
      metadataTypeName - MetadataType name
      audienceIds - Set of Identity identifiers
      creatorId - Identity identifier of creator
      limit - limit of results to retrieve
      Returns:
      List of Metadata names
    • getMetadataItemsByFilter

      default List<MetadataItem> getMetadataItemsByFilter(MetadataFilter filter, long offset, long limit)
      Retrieves Metadata items by MetadataFilter
      Parameters:
      filter - MetadataFilter metadata filter
      offset - offset of items to retrieve
      limit - limit of items to retrieve
      Returns:
      List of linked MetadataItem}
    • deleteMetadataItemsByMetadata

      default void deleteMetadataItemsByMetadata(String metadataTypeName, String metadataName)
      Delete associated Metadata items to a Metadata identified by its type/name
      Parameters:
      metadataTypeName - MetadataType name
      metadataName - Metadata name
    • getMetadataItemsByMetadata

      default List<MetadataItem> getMetadataItemsByMetadata(MetadataKey metadataKey, int offset, int limit)
      Parameters:
      metadataKey - MetadataKey that contains MetadataType name Metadata name and Metadata audience
      offset - offset of items to retrieve
      limit - limit of items to retrieve
      Returns:
      List of MetadataItem