http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/metadatacollection/OMRSMetadataCollectionBase.java ---------------------------------------------------------------------- diff --git a/omrs/src/main/java/org/apache/atlas/omrs/metadatacollection/OMRSMetadataCollectionBase.java b/omrs/src/main/java/org/apache/atlas/omrs/metadatacollection/OMRSMetadataCollectionBase.java index 778f6b0..70c9070 100644 --- a/omrs/src/main/java/org/apache/atlas/omrs/metadatacollection/OMRSMetadataCollectionBase.java +++ b/omrs/src/main/java/org/apache/atlas/omrs/metadatacollection/OMRSMetadataCollectionBase.java @@ -18,12 +18,15 @@ package org.apache.atlas.omrs.metadatacollection; import org.apache.atlas.omrs.ffdc.exception.*; +import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryHelper; +import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryValidator; import org.apache.atlas.omrs.metadatacollection.properties.MatchCriteria; import org.apache.atlas.omrs.metadatacollection.properties.SequencingOrder; import org.apache.atlas.omrs.metadatacollection.properties.instances.*; import org.apache.atlas.omrs.metadatacollection.properties.typedefs.*; +import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector; -import java.util.ArrayList; +import java.util.List; import java.util.Date; /** @@ -74,19 +77,36 @@ import java.util.Date; */ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection { - protected String metadataCollectionId; /** * Constructor to save the metadata collection id. * * @param metadataCollectionId - unique identifier for the metadata managed by the repository. */ + @Deprecated public OMRSMetadataCollectionBase(String metadataCollectionId) { super(metadataCollectionId); } + /** + * Constructor ensures the metadata collection is linked to its connector and knows its metadata collection Id. + * + * @param parentConnector - connector that this metadata collection supports. The connector has the information + * to call the metadata repository. + * @param metadataCollectionId - unique Identifier of the metadata collection Id. + */ + public OMRSMetadataCollectionBase(OMRSRepositoryConnector parentConnector, + String repositoryName, + OMRSRepositoryHelper repositoryHelper, + OMRSRepositoryValidator repositoryValidator, + String metadataCollectionId) + { + super(parentConnector, repositoryName, metadataCollectionId, repositoryHelper, repositoryValidator); + } + + /* ====================================================================== * Group 1: Confirm the identity of the metadata repository being called. */ @@ -117,7 +137,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * and classifications. * * @param userId - unique identifier for requesting user. - * @return TypeDefGallery - List of different categories of type definitions. + * @return TypeDefGalleryResponse - List of different categories of type definitions. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ @@ -159,10 +179,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public ArrayList<TypeDef> findTypeDefsByCategory(String userId, - TypeDefCategory category) throws InvalidParameterException, - RepositoryErrorException, - UserNotAuthorizedException + public List<TypeDef> findTypeDefsByCategory(String userId, + TypeDefCategory category) throws InvalidParameterException, + RepositoryErrorException, + UserNotAuthorizedException { return null; } @@ -178,10 +198,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public ArrayList<AttributeTypeDef> findAttributeTypeDefsByCategory(String userId, - AttributeTypeDefCategory category) throws InvalidParameterException, - RepositoryErrorException, - UserNotAuthorizedException + public List<AttributeTypeDef> findAttributeTypeDefsByCategory(String userId, + AttributeTypeDefCategory category) throws InvalidParameterException, + RepositoryErrorException, + UserNotAuthorizedException { return null; } @@ -197,10 +217,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public ArrayList<TypeDef> findTypeDefsByProperty(String userId, - TypeDefProperties matchCriteria) throws InvalidParameterException, - RepositoryErrorException, - UserNotAuthorizedException + public List<TypeDef> findTypeDefsByProperty(String userId, + TypeDefProperties matchCriteria) throws InvalidParameterException, + RepositoryErrorException, + UserNotAuthorizedException { return null; } @@ -219,7 +239,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public TypeDefGallery findTypesByExternalID(String userId, + public List<TypeDef> findTypesByExternalID(String userId, String standard, String organization, String identifier) throws InvalidParameterException, @@ -241,10 +261,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public ArrayList<TypeDef> searchForTypeDefs(String userId, - String searchCriteria) throws InvalidParameterException, - RepositoryErrorException, - UserNotAuthorizedException + public List<TypeDef> searchForTypeDefs(String userId, + String searchCriteria) throws InvalidParameterException, + RepositoryErrorException, + UserNotAuthorizedException { return null; } @@ -342,7 +362,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * Create a collection of related types. * * @param userId - unique identifier for requesting user. - * @param newTypes - TypeDefGallery structure describing the new AttributeTypeDefs and TypeDefs. + * @param newTypes - TypeDefGalleryResponse structure describing the new AttributeTypeDefs and TypeDefs. * @throws InvalidParameterException - the new TypeDef is null. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. @@ -350,6 +370,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws TypeDefKnownException - the TypeDef is already stored in the repository. * @throws TypeDefConflictException - the new TypeDef conflicts with an existing TypeDef. * @throws InvalidTypeDefException - the new TypeDef has invalid contents. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public void addTypeDefGallery(String userId, @@ -359,6 +380,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefKnownException, TypeDefConflictException, InvalidTypeDefException, + FunctionNotSupportedException, UserNotAuthorizedException { @@ -379,6 +401,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws TypeDefKnownException - the TypeDef is already stored in the repository. * @throws TypeDefConflictException - the new TypeDef conflicts with an existing TypeDef. * @throws InvalidTypeDefException - the new TypeDef has invalid contents. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public void addTypeDef(String userId, @@ -388,6 +411,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefKnownException, TypeDefConflictException, InvalidTypeDefException, + FunctionNotSupportedException, UserNotAuthorizedException { @@ -406,6 +430,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws TypeDefKnownException - the TypeDef is already stored in the repository. * @throws TypeDefConflictException - the new TypeDef conflicts with an existing TypeDef. * @throws InvalidTypeDefException - the new TypeDef has invalid contents. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public void addAttributeTypeDef(String userId, @@ -415,6 +440,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefKnownException, TypeDefConflictException, InvalidTypeDefException, + FunctionNotSupportedException, UserNotAuthorizedException { @@ -486,6 +512,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws TypeDefNotKnownException - the requested TypeDef is not found in the metadata collection. * @throws PatchErrorException - the TypeDef can not be updated because the supplied patch is incompatible * with the stored TypeDef. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public TypeDef updateTypeDef(String userId, @@ -493,6 +520,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, TypeDefNotKnownException, PatchErrorException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -513,6 +541,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws TypeDefInUseException - the TypeDef can not be deleted because there are instances of this type in the * the metadata collection. These instances need to be purged before the * TypeDef can be deleted. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public void deleteTypeDef(String userId, @@ -521,6 +550,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, TypeDefNotKnownException, TypeDefInUseException, + FunctionNotSupportedException, UserNotAuthorizedException { } @@ -540,6 +570,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws TypeDefInUseException - the AttributeTypeDef can not be deleted because there are instances of this type in the * the metadata collection. These instances need to be purged before the * AttributeTypeDef can be deleted. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public void deleteAttributeTypeDef(String userId, @@ -548,6 +579,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, TypeDefNotKnownException, TypeDefInUseException, + FunctionNotSupportedException, UserNotAuthorizedException { } @@ -569,6 +601,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws TypeDefNotKnownException - the TypeDef identified by the original guid/name is not found * in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public TypeDef reIdentifyTypeDef(String userId, @@ -578,6 +611,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection String newTypeDefName) throws InvalidParameterException, RepositoryErrorException, TypeDefNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -600,6 +634,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws TypeDefNotKnownException - the AttributeTypeDef identified by the original guid/name is not * found in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support this call. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public AttributeTypeDef reIdentifyAttributeTypeDef(String userId, @@ -609,6 +644,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection String newAttributeTypeDefName) throws InvalidParameterException, RepositoryErrorException, TypeDefNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -672,12 +708,14 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws EntityNotKnownException - the requested entity instance is not known in the metadata collection. + * @throws EntityProxyOnlyException - the requested entity instance is only a proxy in the metadata collection. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail getEntityDetail(String userId, String guid) throws InvalidParameterException, RepositoryErrorException, EntityNotKnownException, + EntityProxyOnlyException, UserNotAuthorizedException { return null; @@ -691,12 +729,13 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @param guid - String unique identifier for the entity. * @param asOfTime - the time used to determine which versionName of the entity that is desired. * @return EntityDetail structure. - * @throws InvalidParameterException - the guid or date is null. + * @throws InvalidParameterException - the guid or date is null or date is for a future time. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws EntityNotKnownException - the requested entity instance is not known in the metadata collection * at the time requested. - * @throws PropertyErrorException - the asOfTime property is for a future time + * @throws EntityProxyOnlyException - the requested entity instance is only a proxy in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail getEntityDetail(String userId, @@ -704,7 +743,8 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection Date asOfTime) throws InvalidParameterException, RepositoryErrorException, EntityNotKnownException, - PropertyErrorException, + EntityProxyOnlyException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -712,32 +752,11 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection /** - * Return the header, classifications, properties and relationships for a specific entity. - * - * @param userId - unique identifier for requesting user. - * @param guid - String unique identifier for the entity. - * @return EntityUniverse structure. - * @throws InvalidParameterException - the guid is null. - * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where - * the metadata collection is stored. - * @throws EntityNotKnownException - the requested entity instance is not known in the metadata collection. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public EntityUniverse getEntityUniverse(String userId, - String guid) throws InvalidParameterException, - RepositoryErrorException, - EntityNotKnownException, - UserNotAuthorizedException - { - return null; - } - - - /** * Return the relationships for a specific entity. * * @param userId - unique identifier for requesting user. * @param entityGUID - String unique identifier for the entity. + * @param relationshipTypeGUID - String GUID of the the type of relationship required (null for all). * @param fromRelationshipElement - the starting element number of the relationships to return. * This is used when retrieving elements * beyond the first page of results. Zero means start from the first element. @@ -758,21 +777,24 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws EntityNotKnownException - the requested entity instance is not known in the metadata collection. * @throws PropertyErrorException - the sequencing property is not valid for the attached classifications. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public ArrayList<Relationship> getRelationshipsForEntity(String userId, - String entityGUID, - int fromRelationshipElement, - ArrayList<InstanceStatus> limitResultsByStatus, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - EntityNotKnownException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. + * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. + */ + public List<Relationship> getRelationshipsForEntity(String userId, + String entityGUID, + String relationshipTypeGUID, + int fromRelationshipElement, + List<InstanceStatus> limitResultsByStatus, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + EntityNotKnownException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -786,7 +808,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @param entityTypeGUID - String unique identifier for the entity type of interest (null means any entity type). * @param matchProperties - List of entity properties to match to (null means match on entityTypeGUID only). * @param matchCriteria - Enum defining how the properties should be matched to the entities in the repository. - * @param fromEntityDetailElement - the starting element number of the entities to return. + * @param fromEntityElement - the starting element number of the entities to return. * This is used when retrieving elements * beyond the first page of results. Zero means start from the first element. * @param limitResultsByStatus - By default, entities in all statuses are returned. However, it is possible @@ -810,24 +832,26 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws PropertyErrorException - the properties specified are not valid for any of the requested types of * entity. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public ArrayList<EntityDetail> findEntitiesByProperty(String userId, - String entityTypeGUID, - InstanceProperties matchProperties, - MatchCriteria matchCriteria, - int fromEntityDetailElement, - ArrayList<InstanceStatus> limitResultsByStatus, - ArrayList<String> limitResultsByClassification, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - TypeErrorException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. + * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. + */ + public List<EntityDetail> findEntitiesByProperty(String userId, + String entityTypeGUID, + InstanceProperties matchProperties, + MatchCriteria matchCriteria, + int fromEntityElement, + List<InstanceStatus> limitResultsByStatus, + List<String> limitResultsByClassification, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + TypeErrorException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -841,7 +865,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @param classificationName - name of the classification - a null is not valid. * @param matchClassificationProperties - list of classification properties used to narrow the search. * @param matchCriteria - Enum defining how the properties should be matched to the classifications in the repository. - * @param fromEntityDetailElement - the starting element number of the entities to return. + * @param fromEntityElement - the starting element number of the entities to return. * This is used when retrieving elements * beyond the first page of results. Zero means start from the first element. * @param limitResultsByStatus - By default, entities in all statuses are returned. However, it is possible @@ -864,25 +888,27 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws PropertyErrorException - the properties specified are not valid for the requested type of * classification. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public ArrayList<EntityDetail> findEntitiesByClassification(String userId, - String entityTypeGUID, - String classificationName, - InstanceProperties matchClassificationProperties, - MatchCriteria matchCriteria, - ArrayList<InstanceStatus> limitResultsByStatus, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int fromEntityDetailElement, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - TypeErrorException, - ClassificationErrorException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. + * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. + */ + public List<EntityDetail> findEntitiesByClassification(String userId, + String entityTypeGUID, + String classificationName, + InstanceProperties matchClassificationProperties, + MatchCriteria matchCriteria, + int fromEntityElement, + List<InstanceStatus> limitResultsByStatus, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + TypeErrorException, + ClassificationErrorException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -893,7 +919,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * * @param userId - unique identifier for requesting user. * @param searchCriteria - String expression of the characteristics of the required relationships. - * @param fromEntityDetailElement - the starting element number of the entities to return. + * @param fromEntityElement - the starting element number of the entities to return. * This is used when retrieving elements * beyond the first page of results. Zero means start from the first element. * @param limitResultsByStatus - By default, entities in all statuses are returned. However, it is possible @@ -914,21 +940,23 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws PropertyErrorException - the sequencing property specified is not valid for any of the requested types of * entity. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public ArrayList<EntityDetail> searchForEntities(String userId, - String searchCriteria, - int fromEntityDetailElement, - ArrayList<InstanceStatus> limitResultsByStatus, - ArrayList<String> limitResultsByClassification, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. + * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. + */ + public List<EntityDetail> searchForEntities(String userId, + String searchCriteria, + int fromEntityElement, + List<InstanceStatus> limitResultsByStatus, + List<String> limitResultsByClassification, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -978,18 +1006,18 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection /** - * Return a historical versionName of a relationship. + * Return a historical version of a relationship. * * @param userId - unique identifier for requesting user. * @param guid - String unique identifier for the relationship. * @param asOfTime - the time used to determine which versionName of the entity that is desired. - * @return EntityDetail structure. - * @throws InvalidParameterException - the guid or date is null. + * @return Relationship structure. + * @throws InvalidParameterException - the guid or date is null or the date is for a future time * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws RelationshipNotKnownException - the requested entity instance is not known in the metadata collection * at the time requested. - * @throws PropertyErrorException - the asOfTime property is for a future time + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public Relationship getRelationship(String userId, @@ -997,7 +1025,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection Date asOfTime) throws InvalidParameterException, RepositoryErrorException, RelationshipNotKnownException, - PropertyErrorException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1012,7 +1040,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @param relationshipTypeGUID - unique identifier (guid) for the new relationship's type. * @param matchProperties - list of properties used to narrow the search. * @param matchCriteria - Enum defining how the properties should be matched to the relationships in the repository. - * @param fromEntityDetailElement - the starting element number of the entities to return. + * @param fromRelationshipElement - the starting element number of the entities to return. * This is used when retrieving elements * beyond the first page of results. Zero means start from the first element. * @param limitResultsByStatus - By default, relationships in all statuses are returned. However, it is possible @@ -1034,23 +1062,25 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws PropertyErrorException - the properties specified are not valid for any of the requested types of * relationships. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public ArrayList<Relationship> findRelationshipsByProperty(String userId, - String relationshipTypeGUID, - InstanceProperties matchProperties, - MatchCriteria matchCriteria, - int fromEntityDetailElement, - ArrayList<InstanceStatus> limitResultsByStatus, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - TypeErrorException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + public List<Relationship> findRelationshipsByProperty(String userId, + String relationshipTypeGUID, + InstanceProperties matchProperties, + MatchCriteria matchCriteria, + int fromRelationshipElement, + List<InstanceStatus> limitResultsByStatus, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + TypeErrorException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -1080,20 +1110,22 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws PropertyErrorException - there is a problem with one of the other parameters. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public ArrayList<Relationship> searchForRelationships(String userId, - String searchCriteria, - int fromRelationshipElement, - ArrayList<InstanceStatus> limitResultsByStatus, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. + * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. + */ + public List<Relationship> searchForRelationships(String userId, + String searchCriteria, + int fromRelationshipElement, + List<InstanceStatus> limitResultsByStatus, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -1117,16 +1149,18 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws EntityNotKnownException - the entity identified by either the startEntityGUID or the endEntityGUID * is not found in the metadata collection. * @throws PropertyErrorException - there is a problem with one of the other parameters. + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public InstanceGraph getLinkingEntities(String userId, String startEntityGUID, String endEntityGUID, - ArrayList<InstanceStatus> limitResultsByStatus, + List<InstanceStatus> limitResultsByStatus, Date asOfTime) throws InvalidParameterException, RepositoryErrorException, EntityNotKnownException, PropertyErrorException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1159,21 +1193,23 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * metadata collection. * @throws EntityNotKnownException - the entity identified by the entityGUID is not found in the metadata collection. * @throws PropertyErrorException - there is a problem with one of the other parameters. + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public InstanceGraph getEntityNeighborhood(String userId, - String entityGUID, - ArrayList<String> entityTypeGUIDs, - ArrayList<String> relationshipTypeGUIDs, - ArrayList<InstanceStatus> limitResultsByStatus, - ArrayList<String> limitResultsByClassification, - Date asOfTime, - int level) throws InvalidParameterException, - RepositoryErrorException, - TypeErrorException, - EntityNotKnownException, - PropertyErrorException, - UserNotAuthorizedException + public InstanceGraph getEntityNeighborhood(String userId, + String entityGUID, + List<String> entityTypeGUIDs, + List<String> relationshipTypeGUIDs, + List<InstanceStatus> limitResultsByStatus, + List<String> limitResultsByClassification, + Date asOfTime, + int level) throws InvalidParameterException, + RepositoryErrorException, + TypeErrorException, + EntityNotKnownException, + PropertyErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -1185,7 +1221,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * * @param userId - unique identifier for requesting user. * @param startEntityGUID - unique identifier of the starting entity. - * @param instanceTypes - list of types to search for. Null means an type. + * @param instanceTypes - list of types to search for. Null means any type. * @param fromEntityElement - starting element for results list. Used in paging. Zero means first element. * @param limitResultsByStatus - By default, relationships in all statuses are returned. However, it is possible * to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all @@ -1209,24 +1245,26 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws PropertyErrorException - the sequencing property specified is not valid for any of the requested types of * entity. * @throws PagingErrorException - the paging/sequencing parameters are set up incorrectly. - * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. - */ - public ArrayList<EntityDetail> getRelatedEntities(String userId, - String startEntityGUID, - ArrayList<String> instanceTypes, - int fromEntityElement, - ArrayList<InstanceStatus> limitResultsByStatus, - ArrayList<String> limitResultsByClassification, - Date asOfTime, - String sequencingProperty, - SequencingOrder sequencingOrder, - int pageSize) throws InvalidParameterException, - RepositoryErrorException, - TypeErrorException, - EntityNotKnownException, - PropertyErrorException, - PagingErrorException, - UserNotAuthorizedException + * @throws FunctionNotSupportedException - the repository does not support the asOfTime parameter. + * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. + */ + public List<EntityDetail> getRelatedEntities(String userId, + String startEntityGUID, + List<String> instanceTypes, + int fromEntityElement, + List<InstanceStatus> limitResultsByStatus, + List<String> limitResultsByClassification, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + TypeErrorException, + EntityNotKnownException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { return null; } @@ -1262,7 +1300,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection public EntityDetail addEntity(String userId, String entityTypeGUID, InstanceProperties initialProperties, - ArrayList<Classification> initialClassifications, + List<Classification> initialClassifications, InstanceStatus initialStatus) throws InvalidParameterException, RepositoryErrorException, TypeErrorException, @@ -1292,6 +1330,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * not defined for this entity type. * @throws StatusNotSupportedException - the metadata repository hosting the metadata collection does not support * the requested status. + * @throws FunctionNotSupportedException - the repository does not support entity proxies as first class elements. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public void addEntityProxy(String userId, @@ -1301,6 +1340,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection PropertyErrorException, ClassificationErrorException, StatusNotSupportedException, + FunctionNotSupportedException, UserNotAuthorizedException { } @@ -1370,12 +1410,14 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws EntityNotKnownException - the entity identified by the guid is not found in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support undo. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail undoEntityUpdate(String userId, String entityGUID) throws InvalidParameterException, RepositoryErrorException, EntityNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1392,23 +1434,25 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @param typeDefGUID - unique identifier of the type of the entity to delete. * @param typeDefName - unique name of the type of the entity to delete. * @param obsoleteEntityGUID - String unique identifier (guid) for the entity. + * @return deleted entity * @throws InvalidParameterException - one of the parameters is invalid or null. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws EntityNotKnownException - the entity identified by the guid is not found in the metadata collection. - * @throws StatusNotSupportedException - the metadata repository hosting the metadata collection does not support + * @throws FunctionNotSupportedException - the metadata repository hosting the metadata collection does not support * soft-deletes - use purgeEntity() to remove the entity permanently. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public void deleteEntity(String userId, - String typeDefGUID, - String typeDefName, - String obsoleteEntityGUID) throws InvalidParameterException, - RepositoryErrorException, - EntityNotKnownException, - StatusNotSupportedException, - UserNotAuthorizedException + public EntityDetail deleteEntity(String userId, + String typeDefGUID, + String typeDefName, + String obsoleteEntityGUID) throws InvalidParameterException, + RepositoryErrorException, + EntityNotKnownException, + FunctionNotSupportedException, + UserNotAuthorizedException { + return null; } @@ -1449,6 +1493,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws EntityNotKnownException - the entity identified by the guid is not found in the metadata collection * @throws EntityNotDeletedException - the entity is currently not in DELETED status and so it can not be restored + * @throws FunctionNotSupportedException - the repository does not support soft-deletes. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail restoreEntity(String userId, @@ -1456,6 +1501,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, EntityNotKnownException, EntityNotDeletedException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1638,7 +1684,8 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection InstanceProperties properties) throws InvalidParameterException, RepositoryErrorException, RelationshipNotKnownException, - PropertyErrorException + PropertyErrorException, + UserNotAuthorizedException { return null; } @@ -1654,12 +1701,14 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws RelationshipNotKnownException - the requested relationship is not known in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support undo. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public Relationship undoRelationshipUpdate(String userId, String relationshipGUID) throws InvalidParameterException, RepositoryErrorException, RelationshipNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1675,23 +1724,25 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @param typeDefGUID - unique identifier of the type of the relationship to delete. * @param typeDefName - unique name of the type of the relationship to delete. * @param obsoleteRelationshipGUID - String unique identifier (guid) for the relationship. + * @return deleted relationship * @throws InvalidParameterException - one of the parameters is null. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws RelationshipNotKnownException - the requested relationship is not known in the metadata collection. - * @throws StatusNotSupportedException - the metadata repository hosting the metadata collection does not support + * @throws FunctionNotSupportedException - the metadata repository hosting the metadata collection does not support * soft-deletes. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public void deleteRelationship(String userId, - String typeDefGUID, - String typeDefName, - String obsoleteRelationshipGUID) throws InvalidParameterException, - RepositoryErrorException, - RelationshipNotKnownException, - StatusNotSupportedException, - UserNotAuthorizedException + public Relationship deleteRelationship(String userId, + String typeDefGUID, + String typeDefName, + String obsoleteRelationshipGUID) throws InvalidParameterException, + RepositoryErrorException, + RelationshipNotKnownException, + FunctionNotSupportedException, + UserNotAuthorizedException { + return null; } @@ -1733,6 +1784,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws RelationshipNotKnownException - the requested relationship is not known in the metadata collection. * @throws RelationshipNotDeletedException - the requested relationship is not in DELETED status. + * @throws FunctionNotSupportedException - the repository does not support soft-deletes. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public Relationship restoreRelationship(String userId, @@ -1740,6 +1792,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, RelationshipNotKnownException, RelationshipNotDeletedException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1766,6 +1819,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws EntityNotKnownException - the entity identified by the guid is not found in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support the re-identification of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail reIdentifyEntity(String userId, @@ -1775,6 +1829,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection String newEntityGUID) throws InvalidParameterException, RepositoryErrorException, EntityNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1796,7 +1851,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws TypeErrorException - the requested type is not known, or not supported in the metadata repository * hosting the metadata collection. + * @throws PropertyErrorException - The properties in the instance are incompatible with the requested type. + * @throws ClassificationErrorException - the entity's classifications are not valid for the new type. * @throws EntityNotKnownException - the entity identified by the guid is not found in the metadata collection. * + * @throws FunctionNotSupportedException - the repository does not support the re-typing of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail reTypeEntity(String userId, @@ -1805,7 +1863,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefSummary newTypeDefSummary) throws InvalidParameterException, RepositoryErrorException, TypeErrorException, + PropertyErrorException, + ClassificationErrorException, EntityNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1828,6 +1889,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where * the metadata collection is stored. * @throws EntityNotKnownException - the entity identified by the guid is not found in the metadata collection. + * @throws FunctionNotSupportedException - the repository does not support the re-homing of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public EntityDetail reHomeEntity(String userId, @@ -1838,6 +1900,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection String newHomeMetadataCollectionId) throws InvalidParameterException, RepositoryErrorException, EntityNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1860,6 +1923,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws RelationshipNotKnownException - the relationship identified by the guid is not found in the * metadata collection. + * @throws FunctionNotSupportedException - the repository does not support the re-identification of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public Relationship reIdentifyRelationship(String userId, @@ -1869,6 +1933,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection String newRelationshipGUID) throws InvalidParameterException, RepositoryErrorException, RelationshipNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1890,8 +1955,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws TypeErrorException - the requested type is not known, or not supported in the metadata repository * hosting the metadata collection. + * @throws PropertyErrorException - The properties in the instance are incompatible with the requested type. * @throws RelationshipNotKnownException - the relationship identified by the guid is not found in the * metadata collection. + * @throws FunctionNotSupportedException - the repository does not support the re-typing of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public Relationship reTypeRelationship(String userId, @@ -1900,7 +1967,9 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefSummary newTypeDefSummary) throws InvalidParameterException, RepositoryErrorException, TypeErrorException, + PropertyErrorException, RelationshipNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1924,6 +1993,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * the metadata collection is stored. * @throws RelationshipNotKnownException - the relationship identified by the guid is not found in the * metadata collection. + * @throws FunctionNotSupportedException - the repository does not support the re-homing of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ public Relationship reHomeRelationship(String userId, @@ -1934,6 +2004,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection String newHomeMetadataCollectionId) throws InvalidParameterException, RepositoryErrorException, RelationshipNotKnownException, + FunctionNotSupportedException, UserNotAuthorizedException { return null; @@ -1950,7 +2021,7 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * Save the entity as a reference copy. The id of the home metadata collection is already set up in the * entity. * - * @param userId - unique identifier for requesting user. + * @param serverName - unique identifier for requesting server. * @param entity - details of the entity to save. * @throws InvalidParameterException - the entity is null. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where @@ -1963,9 +2034,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * copy would be invalid. * @throws EntityConflictException - the new entity conflicts with an existing entity. * @throws InvalidEntityException - the new entity has invalid contents. + * @throws FunctionNotSupportedException - the repository does not support reference copies of instances. * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation. */ - public void saveEntityReferenceCopy(String userId, + public void saveEntityReferenceCopy(String serverName, EntityDetail entity) throws InvalidParameterException,
<TRUNCATED>