You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by da...@apache.org on 2018/04/06 08:28:19 UTC
[15/31] atlas git commit: ATLAS-2122 OMAG Server Application and OMRS
APIs
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java b/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
index a46c28e..544085a 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
@@ -21,13 +21,15 @@ import org.apache.atlas.omrs.eventmanagement.OMRSRepositoryEventProcessor;
import org.apache.atlas.omrs.ffdc.*;
import org.apache.atlas.omrs.ffdc.exception.*;
import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryContentManager;
+import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryHelper;
+import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryValidator;
import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
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 java.util.ArrayList;
+import java.util.List;
import java.util.Date;
/**
@@ -36,14 +38,16 @@ import java.util.Date;
*/
public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
{
- private static final String sourceName = "Local Repository";
+ private static final String repositoryName = "Local Repository";
- private OMRSMetadataCollection realMetadataCollection = null;
- private String localServerName = null;
- private String localServerType = null;
- private String localOrganizationName = null;
- private OMRSRepositoryEventProcessor outboundRepositoryEventProcessor = null;
- private OMRSRepositoryContentManager localRepositoryContentManager = null;
+ private OMRSMetadataCollection realMetadataCollection;
+ private String localServerName;
+ private String localServerType;
+ private String localOrganizationName;
+ private OMRSRepositoryEventProcessor outboundRepositoryEventProcessor;
+ private OMRSRepositoryContentManager localRepositoryContentManager;
+ private OMRSRepositoryValidator repositoryValidator;
+ private OMRSRepositoryHelper repositoryHelper;
/**
@@ -53,7 +57,7 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
* @param localServerName - name of the local server.
* @param localServerType - type of the local server.
* @param localOrganizationName - name of the organization that owns the local server.
- * @param realMetadataCollection - metadata collection of the rela local connector.
+ * @param realMetadataCollection - metadata collection of the real local connector.
* @param outboundRepositoryEventProcessor - outbound event processor
* (may be null if a repository event mapper is deployed).
* @param repositoryContentManager - manager of in-memory cache of type definitions (TypeDefs).
@@ -72,13 +76,13 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
super(localMetadataConnectionId);
/*
- * Save the metadata collection object for the real repository. This is the metadata that does all of the
- * work. LocalOMRSMetadataCollection is just a wrapper for managing repository events and debug and
- * audit logging.
+ * Save the metadata collection object for the real repository. This is the metadata collection that
+ * does all of the work. LocalOMRSMetadataCollection is just a wrapper for managing repository events
+ * and debug and audit logging.
*/
if (realMetadataCollection == null)
{
- String actionDescription = "Local OMRS Metadata Collection Constructor";
+ final String actionDescription = "Local OMRS Metadata Collection Constructor";
OMRSErrorCode errorCode = OMRSErrorCode.NULL_LOCAL_METADATA_COLLECTION;
String errorMessage = errorCode.getErrorMessageId()
@@ -101,6 +105,8 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
this.localOrganizationName = localOrganizationName;
this.outboundRepositoryEventProcessor = outboundRepositoryEventProcessor;
this.localRepositoryContentManager = repositoryContentManager;
+ this.repositoryValidator = new OMRSRepositoryValidator(repositoryContentManager);
+ this.repositoryHelper = new OMRSRepositoryHelper(repositoryContentManager);
}
@@ -121,8 +127,13 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
* @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
*/
public TypeDefGallery getAllTypes(String userId) throws RepositoryErrorException,
- UserNotAuthorizedException
+ UserNotAuthorizedException
{
+ final String methodName = "getAllTypes";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getAllTypes(userId);
}
@@ -144,6 +155,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RepositoryErrorException,
UserNotAuthorizedException
{
+ final String methodName = "findTypesByName";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findTypesByName(userId, name);
}
@@ -158,11 +174,16 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "findTypeDefsByCategory";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findTypeDefsByCategory(userId, category);
}
@@ -177,11 +198,16 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "findAttributeTypeDefsByCategory";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findAttributeTypeDefsByCategory(userId, category);
}
@@ -197,11 +223,16 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "findTypeDefsByProperty";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findTypeDefsByProperty(userId, matchCriteria);
}
@@ -219,13 +250,18 @@ public class LocalOMRSMetadataCollection 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,
- String standard,
- String organization,
- String identifier) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
+ public List<TypeDef> findTypesByExternalID(String userId,
+ String standard,
+ String organization,
+ String identifier) throws InvalidParameterException,
+ RepositoryErrorException,
+ UserNotAuthorizedException
{
+ final String methodName = "findTypesByExternalID";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findTypesByExternalID(userId, standard, organization, identifier);
}
@@ -240,11 +276,16 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "searchForTypeDefs";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.searchForTypeDefs(userId, searchCriteria);
}
@@ -267,6 +308,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefNotKnownException,
UserNotAuthorizedException
{
+ final String methodName = "getTypeDefByGUID";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getTypeDefByGUID(userId, guid);
}
@@ -289,6 +335,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefNotKnownException,
UserNotAuthorizedException
{
+ final String methodName = "getAttributeTypeDefByGUID";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getAttributeTypeDefByGUID(userId, guid);
}
@@ -311,6 +362,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefNotKnownException,
UserNotAuthorizedException
{
+ final String methodName = "getTypeDefByName";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getTypeDefByName(userId, name);
}
@@ -333,6 +389,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefNotKnownException,
UserNotAuthorizedException
{
+ final String methodName = "getAttributeTypeDefByName";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getAttributeTypeDefByName(userId, name);
}
@@ -341,7 +402,7 @@ public class LocalOMRSMetadataCollection 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.
@@ -349,6 +410,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -358,9 +420,49 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefKnownException,
TypeDefConflictException,
InvalidTypeDefException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "addTypeDefGallery";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
+ if (newTypes != null)
+ {
+ List<AttributeTypeDef> attributeTypeDefs = newTypes.getAttributeTypeDefs();
+
+ if (attributeTypeDefs != null)
+ {
+ for (AttributeTypeDef attributeTypeDef : attributeTypeDefs)
+ {
+ this.addAttributeTypeDef(userId, attributeTypeDef);
+ }
+ }
+
+ List<TypeDef> typeDefs = newTypes.getTypeDefs();
+
+ if (typeDefs != null)
+ {
+ for (TypeDef typeDef : typeDefs)
+ {
+ this.addTypeDef(userId, typeDef);
+ }
+ }
+ }
+ else
+ {
+ OMRSErrorCode errorCode = OMRSErrorCode.NULL_TYPEDEF_GALLERY;
+ String errorMessage = errorCode.getErrorMessageId()
+ + errorCode.getFormattedErrorMessage();
+ throw new InvalidParameterException(errorCode.getHTTPErrorCode(),
+ this.getClass().getName(),
+ methodName,
+ errorMessage,
+ errorCode.getSystemAction(),
+ errorCode.getUserAction());
+ }
}
@@ -376,6 +478,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -385,18 +488,24 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefKnownException,
TypeDefConflictException,
InvalidTypeDefException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "addTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
realMetadataCollection.addTypeDef(userId, newTypeDef);
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.addTypeDef(sourceName, newTypeDef);
+ localRepositoryContentManager.addTypeDef(repositoryName, newTypeDef);
}
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processNewTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processNewTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -417,6 +526,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -426,18 +536,24 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
TypeDefKnownException,
TypeDefConflictException,
InvalidTypeDefException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "addAttributeTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
realMetadataCollection.addAttributeTypeDef(userId, newAttributeTypeDef);
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.addAttributeTypeDef(sourceName, newAttributeTypeDef);
+ localRepositoryContentManager.addAttributeTypeDef(repositoryName, newAttributeTypeDef);
}
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processNewAttributeTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processNewAttributeTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -469,6 +585,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
InvalidTypeDefException,
UserNotAuthorizedException
{
+ final String methodName = "verifyTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.verifyTypeDef(userId, typeDef);
}
@@ -495,6 +616,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
InvalidTypeDefException,
UserNotAuthorizedException
{
+ final String methodName = "verifyAttributeTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.verifyAttributeTypeDef(userId, attributeTypeDef);
}
@@ -512,6 +638,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -519,18 +646,24 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RepositoryErrorException,
TypeDefNotKnownException,
PatchErrorException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "updateTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
TypeDef updatedTypeDef = realMetadataCollection.updateTypeDef(userId, typeDefPatch);
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.updateTypeDef(sourceName, updatedTypeDef);
+ localRepositoryContentManager.updateTypeDef(repositoryName, updatedTypeDef);
}
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processUpdatedTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processUpdatedTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -556,6 +689,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -564,11 +698,26 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RepositoryErrorException,
TypeDefNotKnownException,
TypeDefInUseException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "deleteTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
if ((obsoleteTypeDefGUID == null) || (obsoleteTypeDefName == null))
{
- // TODO Throw InvalidParameterException
+ OMRSErrorCode errorCode = OMRSErrorCode.NULL_TYPEDEF_IDENTIFIER;
+ String errorMessage = errorCode.getErrorMessageId()
+ + errorCode.getFormattedErrorMessage();
+
+ throw new InvalidParameterException(errorCode.getHTTPErrorCode(),
+ this.getClass().getName(),
+ methodName,
+ errorMessage,
+ errorCode.getSystemAction(),
+ errorCode.getUserAction());
}
realMetadataCollection.deleteTypeDef(userId,
@@ -577,14 +726,14 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.deleteTypeDef(sourceName,
+ localRepositoryContentManager.deleteTypeDef(repositoryName,
obsoleteTypeDefGUID,
obsoleteTypeDefName);
}
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processDeletedTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processDeletedTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -609,6 +758,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -617,11 +767,27 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RepositoryErrorException,
TypeDefNotKnownException,
TypeDefInUseException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "deleteAttributeTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
if ((obsoleteTypeDefGUID == null) || (obsoleteTypeDefName == null))
{
- // TODO Throw InvalidParameterException
+ OMRSErrorCode errorCode = OMRSErrorCode.NULL_TYPEDEF_IDENTIFIER;
+ String errorMessage = errorCode.getErrorMessageId()
+ + errorCode.getFormattedErrorMessage();
+
+ throw new InvalidParameterException(errorCode.getHTTPErrorCode(),
+ this.getClass().getName(),
+ methodName,
+ errorMessage,
+ errorCode.getSystemAction(),
+ errorCode.getUserAction());
+
}
realMetadataCollection.deleteAttributeTypeDef(userId,
@@ -630,14 +796,14 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.deleteAttributeTypeDef(sourceName,
+ localRepositoryContentManager.deleteAttributeTypeDef(repositoryName,
obsoleteTypeDefGUID,
obsoleteTypeDefName);
}
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processDeletedAttributeTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processDeletedAttributeTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -664,6 +830,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -673,12 +840,27 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
String newTypeDefName) throws InvalidParameterException,
RepositoryErrorException,
TypeDefNotKnownException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "reIdentifyTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
if ((originalTypeDefGUID == null) || (originalTypeDefName == null) ||
(newTypeDefGUID == null) || (newTypeDefName == null))
{
- // TODO Throw InvalidParameterException
+ OMRSErrorCode errorCode = OMRSErrorCode.NULL_TYPEDEF_IDENTIFIER;
+ String errorMessage = errorCode.getErrorMessageId()
+ + errorCode.getFormattedErrorMessage();
+
+ throw new InvalidParameterException(errorCode.getHTTPErrorCode(),
+ this.getClass().getName(),
+ methodName,
+ errorMessage,
+ errorCode.getSystemAction(),
+ errorCode.getUserAction());
}
TypeDef originalTypeDef = realMetadataCollection.getTypeDefByGUID(userId, originalTypeDefGUID);
@@ -691,7 +873,7 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.reIdentifyTypeDef(sourceName,
+ localRepositoryContentManager.reIdentifyTypeDef(repositoryName,
originalTypeDefGUID,
originalTypeDefName,
newTypeDef);
@@ -699,7 +881,7 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processReIdentifiedTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processReIdentifiedTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -728,6 +910,7 @@ public class LocalOMRSMetadataCollection 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,
@@ -737,12 +920,27 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
String newAttributeTypeDefName) throws InvalidParameterException,
RepositoryErrorException,
TypeDefNotKnownException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "reIdentifyAttributeTypeDef";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
if ((originalAttributeTypeDefGUID == null) || (originalAttributeTypeDefName == null) ||
(newAttributeTypeDefGUID == null) || (newAttributeTypeDefName == null))
{
- // TODO Throw InvalidParameterException
+ OMRSErrorCode errorCode = OMRSErrorCode.NULL_TYPEDEF_IDENTIFIER;
+ String errorMessage = errorCode.getErrorMessageId()
+ + errorCode.getFormattedErrorMessage();
+
+ throw new InvalidParameterException(errorCode.getHTTPErrorCode(),
+ this.getClass().getName(),
+ methodName,
+ errorMessage,
+ errorCode.getSystemAction(),
+ errorCode.getUserAction());
}
AttributeTypeDef originalAttributeTypeDef = realMetadataCollection.getAttributeTypeDefByGUID(userId, originalAttributeTypeDefGUID);
@@ -755,7 +953,7 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
if (localRepositoryContentManager != null)
{
- localRepositoryContentManager.reIdentifyAttributeTypeDef(sourceName,
+ localRepositoryContentManager.reIdentifyAttributeTypeDef(repositoryName,
originalAttributeTypeDefGUID,
originalAttributeTypeDefName,
newAttributeTypeDef);
@@ -763,7 +961,7 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
if (outboundRepositoryEventProcessor != null)
{
- outboundRepositoryEventProcessor.processReIdentifiedAttributeTypeDefEvent(sourceName,
+ outboundRepositoryEventProcessor.processReIdentifiedAttributeTypeDefEvent(repositoryName,
metadataCollectionId,
localServerName,
localServerType,
@@ -798,6 +996,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RepositoryErrorException,
UserNotAuthorizedException
{
+ final String methodName = "isEntityKnown";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
EntityDetail entity = realMetadataCollection.isEntityKnown(userId, guid);
if (entity != null)
@@ -837,6 +1040,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
EntityNotKnownException,
UserNotAuthorizedException
{
+ final String methodName = "getEntitySummary";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
EntitySummary entity = realMetadataCollection.getEntitySummary(userId, guid);
if (entity != null)
@@ -868,14 +1076,21 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "getEntityDetail";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
EntityDetail entity = realMetadataCollection.getEntityDetail(userId, guid);
if (entity != null)
@@ -904,12 +1119,13 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
* @param guid - String unique identifier for the entity.
* @param asOfTime - the time used to determine which version 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 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 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,
@@ -917,49 +1133,16 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
Date asOfTime) throws InvalidParameterException,
RepositoryErrorException,
EntityNotKnownException,
- PropertyErrorException,
+ EntityProxyOnlyException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
- EntityDetail entity = realMetadataCollection.getEntityDetail(userId, guid, asOfTime);
-
- if (entity != null)
- {
- /*
- * Ensure the provenance of the entity is correctly set. A repository may not support the storing of
- * the metadata collection id in the repository (or uses null to mean "local"). When the entity
- * detail is sent out, it must have its home metadata collection id set up. So LocalOMRSMetadataCollection
- * fixes up the provenance.
- */
- if (entity.getMetadataCollectionId() == null)
- {
- entity.setMetadataCollectionId(metadataCollectionId);
- entity.setInstanceProvenanceType(InstanceProvenanceType.LOCAL_COHORT);
- }
- }
-
- return entity;
- }
+ final String methodName = "getEntityDetail";
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
- /**
- * 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
- {
- EntityUniverse entity = realMetadataCollection.getEntityUniverse(userId, guid);
+ EntityDetail entity = realMetadataCollection.getEntityDetail(userId, guid, asOfTime);
if (entity != null)
{
@@ -985,6 +1168,7 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
*
* @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.
@@ -1005,24 +1189,33 @@ public class LocalOMRSMetadataCollection 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
+ {
+ final String methodName = "getRelationshipsForEntity";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getRelationshipsForEntity(userId,
entityGUID,
+ relationshipTypeGUID,
fromRelationshipElement,
limitResultsByStatus,
asOfTime,
@@ -1040,7 +1233,7 @@ public class LocalOMRSMetadataCollection 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
@@ -1063,30 +1256,37 @@ public class LocalOMRSMetadataCollection 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
+ {
+ final String methodName = "findEntitiesByProperty";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findEntitiesByProperty(userId,
entityTypeGUID,
matchProperties,
matchCriteria,
- fromEntityDetailElement,
+ fromEntityElement,
limitResultsByStatus,
limitResultsByClassification,
asOfTime,
@@ -1104,7 +1304,7 @@ public class LocalOMRSMetadataCollection 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
@@ -1127,36 +1327,43 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "findEntitiesByClassification";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findEntitiesByClassification(userId,
entityTypeGUID,
classificationName,
matchClassificationProperties,
matchCriteria,
+ fromEntityElement,
limitResultsByStatus,
asOfTime,
sequencingProperty,
sequencingOrder,
- fromEntityDetailElement,
pageSize);
}
@@ -1166,7 +1373,7 @@ public class LocalOMRSMetadataCollection 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
@@ -1187,25 +1394,32 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "searchForEntities";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.searchForEntities(userId,
searchCriteria,
- fromEntityDetailElement,
+ fromEntityElement,
limitResultsByStatus,
limitResultsByClassification,
asOfTime,
@@ -1231,6 +1445,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RepositoryErrorException,
UserNotAuthorizedException
{
+ final String methodName = "isRelationshipKnown";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.isRelationshipKnown(userId, guid);
}
@@ -1254,6 +1473,11 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
RelationshipNotKnownException,
UserNotAuthorizedException
{
+ final String methodName = "getRelationship";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getRelationship(userId, guid);
}
@@ -1264,13 +1488,13 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
* @param userId - unique identifier for requesting user.
* @param guid - String unique identifier for the relationship.
* @param asOfTime - the time used to determine which version 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,
@@ -1278,9 +1502,14 @@ public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
Date asOfTime) throws InvalidParameterException,
RepositoryErrorException,
RelationshipNotKnownException,
- PropertyErrorException,
+ FunctionNotSupportedException,
UserNotAuthorizedException
{
+ final String methodName = "getRelationship";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getRelationship(userId, guid, asOfTime);
}
@@ -1293,7 +1522,7 @@ public class LocalOMRSMetadataCollection 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
@@ -1315,29 +1544,36 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "findRelationshipsByProperty";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.findRelationshipsByProperty(userId,
relationshipTypeGUID,
matchProperties,
matchCriteria,
- fromEntityDetailElement,
+ fromRelationshipElement,
limitResultsByStatus,
asOfTime,
sequencingProperty,
@@ -1370,21 +1606,28 @@ public class LocalOMRSMetadataCollection 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 FunctionNotSupportedException - the repository does not support the asOfTime parameter.
* @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
+ 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
{
+ final String methodName = "searchForRelationships";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.searchForRelationships(userId,
searchCriteria,
fromRelationshipElement,
@@ -1414,18 +1657,25 @@ public class LocalOMRSMetadataCollection 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
{
+ final String methodName = "getLinkingEntities";
+
+ validateRepository(methodName);
+ repositoryValidator.validateUserId(repositoryName, userId, methodName);
+
return realMetadataCollection.getLinkingEntities(userId,
startEntityGUID,
endEntityGUID,
@@ -1460,22 +1710,29 @@ public class LocalOMRSMetadataCollection 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,
- En
<TRUNCATED>