Package org.exoplatform.social.metadata
Interface MetadataService
public interface MetadataService
A Service to manage Metadata of any content of any type in eXo Platform. This
Service will allow to store additional Metadata to contents without defining
additional Services or Storage layers to allow to extends content definition
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddMetadataPlugin(MetadataInitPlugin metadataInitPlugin) Save a newMetadatavoidaddMetadataTypePlugin(MetadataTypePlugin metadataTypePlugin) Registers a newMetadataTypecountMetadataItemsByMetadataTypeAndAudienceId(String metadataTypeName, long creatorId, long spaceId) Count the size of Metadata items to a givenMetadatatype,MetadataItemcreatorId by a givenSpaceidentifierintcountMetadataItemsByMetadataTypeAndCreator(String metadataTypeName, long creatorId) Count the size of metadata items to a givenMetadatatype,MetadataItemcreatorIdcountMetadataItemsByMetadataTypeAndSpacesIdAndCreatorId(String metadataTypeName, long creatorId, List<Long> spaceIds) Count the size of Metadata items to a givenMetadatatype, creatorIdMetadataItembySpacetechnical identifiercreateMetadata(Metadata metadata, long userIdentityId) Creates a newMetadataobjectcreateMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, long userIdentityId) Creates a new Metadata Item.createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String, String> properties) Creates a new Metadata Item.createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String, String> properties, long userIdentityId) Creates a new Metadata Item.voiddeleteByMetadataTypeAndCreatorId(String metadataTypeName, long userIdentityId) Deletes all metadata items byMetadataTypeand audienceIdvoiddeleteByMetadataTypeAndSpaceIdAndCreatorId(String metadataTypeName, long spaceId, long userIdentityId) Deletes all metadata items byMetadataTypeand spaceId and audienceIddeleteMetadataById(long metadataId) intdeleteMetadataBySpaceId(long spaceId) Deletes allMetadataItemby a givenSpaceidentifierintdeleteMetadataBySpaceIdAndAudienceId(long spaceId, long audienceId) deleteMetadataItem(long itemId, boolean broadcast) deleteMetadataItem(long itemId, long userIdentityId) voiddeleteMetadataItemsByMetadataTypeAndObject(String metadataType, MetadataObject object) Deletes Metadata items for a givenMetadatatype, objectId and objectType.voidDeletes Metadata items for a givenMetadataItemobjectId and objectType.voidDeletes Metadata items for a givenMetadataItemparentObjectId and objectType.findMetadataNamesByAudiences(String term, String metadataTypeName, Set<Long> audienceIds, long limit) findMetadataNamesByCreator(String term, String metadataTypeName, long creatorId, long limit) findMetadataNamesByUserAndQuery(String term, String metadataTypeName, Set<Long> audienceIds, long creatorId, long limit) getMetadataByKey(MetadataKey metadataKey) Retrieves aMetadataidentified by a unique constraint for 'Metadata Type', 'Metadata Name' and 'Metadata Audience'.getMetadataItemsByMetadataAndObject(MetadataKey metadataKey, MetadataObject object) Retrieves the list of Metadata items attached to aMetadataKeyand an object identified by its name and identifiergetMetadataItemsByMetadataNameAndTypeAndObject(String metadataName, String metadataTypeName, String objectType, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject typegetMetadataItemsByMetadataNameAndTypeAndObject(String metadataName, String metadataTypeName, String objectType, String objectId, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject typegetMetadataItemsByMetadataNameAndTypeAndObjectAndMetadataItemProperty(String metadataName, String metadataTypeName, String objectType, String propertyKey, String propertyValue, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type,MetadataItemobject type andMetadataItempropertydefault List<MetadataItem>getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceId(String metadataName, String metadataTypeName, String objectType, long spaceId, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject type andMetadataItemspace iddefault List<MetadataItem>getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceIds(String metadataName, String metadataTypeName, String objectType, List<Long> spaceIds, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject type andMetadataItemspace idsdefault List<MetadataItem>getMetadataItemsByMetadataNameAndTypeAndSpaceIds(String metadataName, String metadataTypeName, List<Long> spaceIds, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemspace idsgetMetadataItemsByMetadataTypeAndCreator(String metadataTypeName, long creatorId, long offset, long limit) Retrieves the Metadata item attached to a givenMetadatatype,MetadataItemcreatorIdgetMetadataItemsByMetadataTypeAndObject(String metadataType, MetadataObject object) Retrieves the list of Metadata items attached to a givenMetadatatype and an object identified by its name and identifierRetrieves the list of Metadata attached to an object identified by its name and identifiergetMetadataNamesByMetadataTypeAndObject(String metadataTypeName, String objectType, String objectId) getMetadataObjectIds(String metadataType, String metadataName, String objectType, long offset, long limit) Retieves a list of object identifiers switch Metadata type, name and objectTypegetMetadatas(String metadataTypeName, long limit) getMetadatasByProperty(String propertyKey, String propertyValue, long limit) getMetadataTypeByName(String name) Retrieves a registeredMetadataTypeby nameRetrieves a registeredMetadataTypePluginby nameshareMetadataItemsByObject(MetadataObject sourceObject, String targetObjectId, long audienceId, long creatorId) Shares/copy theMetadataItemlist of a shared object to the newly created object.updateMetadata(Metadata metadata, long userIdentityId) Updates aMetadataobjectupdateMetadataItem(MetadataItem metadataItem, long userIdentityId)
-
Method Details
-
createMetadata
Creates a newMetadataobject -
updateMetadata
Updates aMetadataobject -
deleteMetadataById
-
deleteMetadataBySpaceId
int deleteMetadataBySpaceId(long spaceId) Deletes allMetadataItemby a givenSpaceidentifier- Parameters:
spaceId-Spacetechnical identifier- Returns:
- deleted items count
-
deleteMetadataBySpaceIdAndAudienceId
int deleteMetadataBySpaceIdAndAudienceId(long spaceId, long audienceId) - Parameters:
spaceId-audienceId-- Returns:
- deleted items count
-
getMetadataByKey
Retrieves aMetadataidentified by a unique constraint for 'Metadata Type', 'Metadata Name' and 'Metadata Audience'.- Parameters:
metadataKey-MetadataKeythat containsMetadataTypenameMetadataname andMetadataaudience- Returns:
Metadataif 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 storemetadataKey-MetadataKeythat containsMetadataTypenameMetadataname andMetadataaudienceuserIdentityId-Identitytechnical identifier designating the user making the operation- Returns:
- Created
MetadataItem - Throws:
ObjectAlreadyExistsException- when theMetadataTypePlugindoesn't allow multiple objects perMetadataand an object is already associated to the designatedMetadata
-
createMetadataItem
MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String, String> properties, long userIdentityId) throws ObjectAlreadyExistsExceptionCreates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one- Parameters:
metadataObject- object to storemetadataKey-MetadataKeythat containsMetadataTypenameMetadataname andMetadataaudienceproperties-Mapproperties ofMetadataItemuserIdentityId-Identitytechnical identifier designating the user making the operation- Returns:
- Created
MetadataItem - Throws:
ObjectAlreadyExistsException- when theMetadataTypePlugindoesn't allow multiple objects perMetadataand an object is already associated to the designatedMetadata
-
createMetadataItem
MetadataItem createMetadataItem(MetadataObject metadataObject, MetadataKey metadataKey, Map<String, String> properties) throws ObjectAlreadyExistsExceptionCreates a new Metadata Item. When the metadata with the designated key doesn't exists, it will create a new one- Parameters:
metadataObject- object to storemetadataKey-MetadataKeythat containsMetadataTypenameMetadataname andMetadataaudienceproperties-Mapproperties ofMetadataItem- Returns:
- Created
MetadataItem - Throws:
ObjectAlreadyExistsException- when theMetadataTypePlugindoesn't allow multiple objects perMetadataand an object is already associated to the designatedMetadata
-
updateMetadataItem
- Parameters:
metadataItem-MetadataItemuserIdentityId-Identitytechnical identifier designating the user making the operation- Returns:
- Deleted
MetadataItem
-
deleteMetadataItem
MetadataItem deleteMetadataItem(long itemId, long userIdentityId) throws org.exoplatform.commons.exception.ObjectNotFoundException - Parameters:
itemId-MetadataItemtechnical identifieruserIdentityId-Identitytechnical identifier designating the user making the operation- Returns:
- Deleted
MetadataItem - Throws:
org.exoplatform.commons.exception.ObjectNotFoundException- when theMetadataItemisn't found
-
deleteMetadataItem
MetadataItem deleteMetadataItem(long itemId, boolean broadcast) throws org.exoplatform.commons.exception.ObjectNotFoundException - Parameters:
itemId-MetadataItemtechnical identifierbroadcast- whether broadcast event after deleting or not- Returns:
- Deleted
MetadataItem - Throws:
org.exoplatform.commons.exception.ObjectNotFoundException- when theMetadataItemisn't found
-
deleteMetadataItemsByObject
Deletes Metadata items for a givenMetadataItemobjectId and objectType. This is generally called when the associated object has been removed (activity removed, comment removed ...)- Parameters:
object-MetadataObjectthat 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 byMetadataTypeand spaceId and audienceId- Parameters:
metadataTypeName-MetadataTypenamespaceId-SpaceiduserIdentityId-Identityid
-
deleteByMetadataTypeAndCreatorId
Deletes all metadata items byMetadataTypeand audienceId- Parameters:
metadataTypeName-MetadataTypenameuserIdentityId-Identityid
-
deleteMetadataItemsByMetadataTypeAndObject
Deletes Metadata items for a givenMetadatatype, objectId and objectType. This is generally called when the associated object has been removed (activity removed, comment removed ...)- Parameters:
metadataType-Metadatatypeobject-MetadataObjectthat 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).
-
getMetadataNamesByObject
- Parameters:
object-MetadataObjectused to search items- Returns:
SetofMetadataname
-
getMetadataNamesByMetadataTypeAndObject
List<String> getMetadataNamesByMetadataTypeAndObject(String metadataTypeName, String objectType, String objectId) returnListofMetadatanames associated to a given metadata type, object type and object id. The returned list is sorted descending by id.- Parameters:
metadataTypeName-objectType-objectId-- Returns:
Listof metadata names
-
getMetadataItemsByObject
Retrieves the list of Metadata attached to an object identified by its name and identifier- Parameters:
object-MetadataObjectthat 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:
Listof linkedMetadataItem
-
getMetadataItemsByMetadataTypeAndObject
List<MetadataItem> getMetadataItemsByMetadataTypeAndObject(String metadataType, MetadataObject object) Retrieves the list of Metadata items attached to a givenMetadatatype and an object identified by its name and identifier- Parameters:
metadataType-Metadatatypeobject-MetadataObjectthat 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:
Listof linkedMetadataItem
-
getMetadataItemsByMetadataNameAndTypeAndObject
List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObject(String metadataName, String metadataTypeName, String objectType, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject type- Parameters:
metadataName-MetadatanamemetadataTypeName-Metadatatype nameobjectType- objectTypeMetadataItemobjectTypeoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
getMetadataItemsByMetadataNameAndTypeAndObject
List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObject(String metadataName, String metadataTypeName, String objectType, String objectId, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject type- Parameters:
metadataName-MetadatanamemetadataTypeName-Metadatatype nameobjectType-MetadataItemobjectTypeobjectId-MetadataItemobjectIdoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceId
default List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndObjectAndSpaceId(String metadataName, String metadataTypeName, String objectType, long spaceId, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemobject type andMetadataItemspace id- Parameters:
metadataName-MetadatanamemetadataTypeName-Metadatatype nameobjectType- objectTypeMetadataItemobjectTypespaceId- spaceIdMetadataItemspaceIdoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
getMetadataItemsByMetadataNameAndTypeAndSpaceIds
default List<MetadataItem> getMetadataItemsByMetadataNameAndTypeAndSpaceIds(String metadataName, String metadataTypeName, List<Long> spaceIds, long offset, long limit) Retrieves the Metadata item attached to a givenMetadataname, type andMetadataItemspace ids- Parameters:
metadataName-MetadatanamemetadataTypeName-Metadatatype namespaceIds- spaceIdListofMetadataItemoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
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 givenMetadataname, type andMetadataItemobject type andMetadataItemspace ids- Parameters:
metadataName-MetadatanamemetadataTypeName-Metadatatype nameobjectType- objectTypeMetadataItemobjectTypespaceIds- spaceIdListofMetadataItemoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
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 givenMetadataname, type,MetadataItemobject type andMetadataItemproperty- Parameters:
metadataName-MetadatanamemetadataTypeName-Metadatatype nameobjectType- objectTypeMetadataItemobjectTypepropertyKey-MetadataItemproperty keypropertyValue-MetadataItemproperty valueoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
getMetadataItemsByMetadataTypeAndCreator
List<MetadataItem> getMetadataItemsByMetadataTypeAndCreator(String metadataTypeName, long creatorId, long offset, long limit) Retrieves the Metadata item attached to a givenMetadatatype,MetadataItemcreatorId- Parameters:
metadataTypeName-MetadatatypecreatorId-MetadataItemcreatorIdoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof linkedMetadataItem
-
countMetadataItemsByMetadataTypeAndCreator
Count the size of metadata items to a givenMetadatatype,MetadataItemcreatorId- Parameters:
metadataTypeName-MetadatatypecreatorId-MetadataItemcreatorId- Returns:
- integer
-
countMetadataItemsByMetadataTypeAndAudienceId
Map<String,Long> countMetadataItemsByMetadataTypeAndAudienceId(String metadataTypeName, long creatorId, long spaceId) Count the size of Metadata items to a givenMetadatatype,MetadataItemcreatorId by a givenSpaceidentifier- Parameters:
metadataTypeName-MetadatatypecreatorId-MetadataItemcreatorIdspaceId-Spacetechnical 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 givenMetadatatype, creatorIdMetadataItembySpacetechnical identifier- Parameters:
metadataTypeName-MetadatanamecreatorId-MetadataItemcreatorIdspaceIds-Spacetechnical 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 aMetadataKeyand an object identified by its name and identifier- Parameters:
metadataKey-MetadataKeythat containsMetadataTypenameMetadataname andMetadataaudienceobject-MetadataObjectthat 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:
Listof linkedMetadataItem
-
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-MetadatatypemetadataName-MetadatanameobjectType-MetadataItemobjectTypeoffset- offset of ids to retrievelimit- limit of ids to retrieve- Returns:
Listof associated objects ordered byMetadataItemcreationDate desc
-
addMetadataTypePlugin
Registers a newMetadataType- Parameters:
metadataTypePlugin- aComponentPlugindefiningMetadataTypeto register
-
addMetadataPlugin
Save a newMetadata- Parameters:
metadataInitPlugin- aComponentPlugindefiningMetadatato save
-
getMetadataTypePluginByName
Retrieves a registeredMetadataTypePluginby name- Parameters:
name-MetadataTypename- Returns:
MetadataTypePlugin
-
getMetadataTypeByName
Retrieves a registeredMetadataTypeby name- Parameters:
name-MetadataTypename- Returns:
MetadataType
-
getMetadataTypes
List<MetadataType> getMetadataTypes()- Returns:
Listof ManagedMetadataType
-
getMetadatasByProperty
-
getMetadatas
-
deleteMetadataItemsByParentObject
Deletes Metadata items for a givenMetadataItemparentObjectId 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-MetadataObjectthat 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).
-
findMetadataNamesByAudiences
-
findMetadataNamesByCreator
List<String> findMetadataNamesByCreator(String term, String metadataTypeName, long creatorId, long limit) - Parameters:
term- Search query matchingMetadatanamemetadataTypeName-MetadataTypenamecreatorId-Identityidentifier of creatorlimit- limit of results to retrieve- Returns:
ListofMetadatanames
-
findMetadataNamesByUserAndQuery
-