http://git-wip-us.apache.org/repos/asf/atlas/blob/f57fd7f0/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 70c9070..7831823 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 @@ -17,6 +17,7 @@ */ package org.apache.atlas.omrs.metadatacollection; +import org.apache.atlas.omrs.ffdc.OMRSErrorCode; import org.apache.atlas.omrs.ffdc.exception.*; import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryHelper; import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryValidator; @@ -95,7 +96,10 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * * @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. + * @param repositoryName - name of this repository. + * @param repositoryHelper - helper class for building types and instances + * @param repositoryValidator - validator class for checking open metadata repository objects and parameters. + * @param metadataCollectionId - unique identifier of the metadata collection Id. */ public OMRSMetadataCollectionBase(OMRSRepositoryConnector parentConnector, String repositoryName, @@ -121,6 +125,17 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection */ public String getMetadataCollectionId() throws RepositoryErrorException { + final String methodName = "getMetadataCollectionId"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + /* + * Perform operation + */ return super.metadataCollectionId; } @@ -144,7 +159,31 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection public TypeDefGallery getAllTypes(String userId) throws RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "getAllTypes"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -165,7 +204,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "findTypesByName"; + final String nameParameterName = "name"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeName(repositoryName, nameParameterName, name, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -184,7 +249,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "findTypeDefsByCategory"; + final String categoryParameterName = "category"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDefCategory(repositoryName, categoryParameterName, category, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -203,7 +294,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "findAttributeTypeDefsByCategory"; + final String categoryParameterName = "category"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateAttributeTypeDefCategory(repositoryName, categoryParameterName, category, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -222,7 +339,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "findTypeDefsByProperty"; + final String matchCriteriaParameterName = "matchCriteria"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateMatchCriteria(repositoryName, matchCriteriaParameterName, matchCriteria, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -246,7 +389,32 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "findTypesByExternalID"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateExternalId(repositoryName, standard, organization, identifier, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -266,7 +434,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "searchForTypeDefs"; + final String searchCriteriaParameterName = "searchCriteria"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateSearchCriteria(repositoryName, searchCriteriaParameterName, searchCriteria, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -288,7 +482,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefNotKnownException, UserNotAuthorizedException { - return null; + final String methodName = "getTypeDefByGUID"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -310,7 +530,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefNotKnownException, UserNotAuthorizedException { - return null; + final String methodName = "getAttributeTypeDefByGUID"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -332,7 +578,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefNotKnownException, UserNotAuthorizedException { - return null; + final String methodName = "getTypeDefByName"; + final String nameParameterName = "name"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeName(repositoryName, nameParameterName, name, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -354,7 +626,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection TypeDefNotKnownException, UserNotAuthorizedException { - return null; + final String methodName = "getAttributeTypeDefByName"; + final String nameParameterName = "name"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeName(repositoryName, nameParameterName, name, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -383,7 +681,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - + final String methodName = "addTypeDefGallery"; + final String galleryParameterName = "newTypes"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDefGallery(repositoryName, galleryParameterName, newTypes, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -414,7 +738,34 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - + final String methodName = "addTypeDef"; + final String typeDefParameterName = "newTypeDef"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDef(repositoryName, typeDefParameterName, newTypeDef, methodName); + repositoryValidator.validateUnknownTypeDef(repositoryName, typeDefParameterName, newTypeDef, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -443,7 +794,34 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - + final String methodName = "addAttributeTypeDef"; + final String typeDefParameterName = "newAttributeTypeDef"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateAttributeTypeDef(repositoryName, typeDefParameterName, newAttributeTypeDef, methodName); + repositoryValidator.validateUnknownAttributeTypeDef(repositoryName, typeDefParameterName, newAttributeTypeDef, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -469,7 +847,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection InvalidTypeDefException, UserNotAuthorizedException { - return true; + final String methodName = "verifyTypeDef"; + final String typeDefParameterName = "typeDef"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDef(repositoryName, typeDefParameterName, typeDef, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -495,7 +899,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection InvalidTypeDefException, UserNotAuthorizedException { - return true; + final String methodName = "verifyAttributeTypeDef"; + final String typeDefParameterName = "attributeTypeDef"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateAttributeTypeDef(repositoryName, typeDefParameterName, attributeTypeDef, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -523,7 +953,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "updateTypeDef"; + final String typeDefParameterName = "typeDefPatch"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDefPatch(repositoryName, typeDefPatch, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -553,6 +1009,39 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { + final String methodName = "deleteTypeDef"; + final String guidParameterName = "obsoleteTypeDefGUID"; + final String nameParameterName = "obsoleteTypeDefName"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDefIds(repositoryName, + guidParameterName, + nameParameterName, + obsoleteTypeDefGUID, + obsoleteTypeDefName, + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -582,6 +1071,39 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { + final String methodName = "deleteAttributeTypeDef"; + final String guidParameterName = "obsoleteTypeDefGUID"; + final String nameParameterName = "obsoleteTypeDefName"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateAttributeTypeDefIds(repositoryName, + guidParameterName, + nameParameterName, + obsoleteTypeDefGUID, + obsoleteTypeDefName, + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -614,7 +1136,47 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "reIdentifyTypeDef"; + final String originalGUIDParameterName = "originalTypeDefGUID"; + final String originalNameParameterName = "originalTypeDefName"; + final String newGUIDParameterName = "newTypeDefGUID"; + final String newNameParameterName = "newTypeDefName"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDefIds(repositoryName, + originalGUIDParameterName, + originalNameParameterName, + originalTypeDefGUID, + originalTypeDefName, + methodName); + repositoryValidator.validateTypeDefIds(repositoryName, + newGUIDParameterName, + newNameParameterName, + newTypeDefGUID, + newTypeDefName, + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -647,7 +1209,47 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "reIdentifyAttributeTypeDef"; + final String originalGUIDParameterName = "originalAttributeTypeDefGUID"; + final String originalNameParameterName = "originalAttributeTypeDefName"; + final String newGUIDParameterName = "newAttributeTypeDefGUID"; + final String newNameParameterName = "newAttributeTypeDefName"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeDefIds(repositoryName, + originalGUIDParameterName, + originalNameParameterName, + originalAttributeTypeDefGUID, + originalAttributeTypeDefName, + methodName); + repositoryValidator.validateTypeDefIds(repositoryName, + newGUIDParameterName, + newNameParameterName, + newAttributeTypeDefGUID, + newAttributeTypeDefName, + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -672,7 +1274,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "isEntityKnown"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -694,7 +1322,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection EntityNotKnownException, UserNotAuthorizedException { - return null; + final String methodName = "getEntitySummary"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -718,16 +1372,42 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection EntityProxyOnlyException, UserNotAuthorizedException { - return null; + final String methodName = "getEntityDetail"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } /** - * Return a historical versionName of an entity - includes the header, classifications and properties of the entity. + * Return a historical version of an entity - includes the header, classifications and properties of the entity. * * @param userId - unique identifier for requesting user. * @param guid - String unique identifier for the entity. - * @param asOfTime - the time used to determine which versionName of the entity that is desired. + * @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 or date is for a future time. * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where @@ -747,7 +1427,35 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "getEntityDetail"; + final String guidParameterName = "guid"; + final String asOfTimeParameter = "asOfTime"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -796,7 +1504,37 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "getRelationshipsForEntity"; + final String guidParameterName = "entityGUID"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, entityGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -853,7 +1591,45 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "findEntitiesByProperty"; + final String matchCriteriaParameterName = "matchCriteria"; + final String matchPropertiesParameterName = "matchProperties"; + final String guidParameterName = "entityTypeGUID"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeGUID(repositoryName, guidParameterName, entityTypeGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + repositoryValidator.validateMatchCriteria(repositoryName, + matchCriteriaParameterName, + matchPropertiesParameterName, + matchCriteria, + matchProperties, + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -910,15 +1686,72 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "findEntitiesByClassification"; + final String classificationParameterName = "classificationName"; + final String entityTypeGUIDParameterName = "entityTypeGUID"; + + final String matchCriteriaParameterName = "matchCriteria"; + final String matchPropertiesParameterName = "matchClassificationProperties"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, entityTypeGUIDParameterName, entityTypeGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + + /* + * Validate TypeDef + */ + TypeDef entityTypeDef = repositoryHelper.getTypeDef(repositoryName, entityTypeGUID); + + repositoryValidator.validateTypeDefForInstance(repositoryName, entityTypeGUIDParameterName, entityTypeDef, methodName); + + repositoryValidator.validateMatchCriteria(repositoryName, + matchCriteriaParameterName, + matchPropertiesParameterName, + matchCriteria, + matchClassificationProperties, + methodName); + repositoryValidator.validateClassification(repositoryName, + classificationParameterName, + classificationName, + entityTypeDef.getName(), + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } /** - * Return a list of entities matching the search criteria. + * Return a list of entities whose string based property values match the search criteria. The + * search criteria may include regex style wild cards. * * @param userId - unique identifier for requesting user. - * @param searchCriteria - String expression of the characteristics of the required relationships. + * @param entityTypeGUID - GUID of the type of entity to search for. Null means all types will + * be searched (could be slow so not recommended). + * @param searchCriteria - String expression contained in any of the property values within the entities + * of the supplied type. * @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. @@ -943,22 +1776,53 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @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 + public List<EntityDetail> findEntitiesByPropertyValue(String userId, + String entityTypeGUID, + 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; + final String methodName = "findEntitiesByPropertyValue"; + final String searchCriteriaParameterName = "searchCriteria"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateSearchCriteria(repositoryName, searchCriteriaParameterName, searchCriteria, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + + /* + * Process operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -978,7 +1842,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RepositoryErrorException, UserNotAuthorizedException { - return null; + final String methodName = "isRelationshipKnown"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Process operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1001,7 +1891,33 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection RelationshipNotKnownException, UserNotAuthorizedException { - return null; + final String methodName = "getRelationship"; + final String guidParameterName = "guid"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + + /* + * Process operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1010,7 +1926,7 @@ public abstract class OMRSMetadataCollectionBase 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 versionName of the entity that is desired. + * @param asOfTime - the time used to determine which version of the entity that is desired. * @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 @@ -1028,7 +1944,35 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "getRelationship"; + final String guidParameterName = "guid"; + final String asOfTimeParameter = "asOfTime"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, guidParameterName, guid, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1082,15 +2026,57 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "findRelationshipsByProperty"; + final String matchCriteriaParameterName = "matchCriteria"; + final String matchPropertiesParameterName = "matchProperties"; + final String guidParameterName = "relationshipTypeGUID"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeGUID(repositoryName, guidParameterName, relationshipTypeGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + repositoryValidator.validateMatchCriteria(repositoryName, + matchCriteriaParameterName, + matchPropertiesParameterName, + matchCriteria, + matchProperties, + methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } /** - * Return a list of relationships that match the search criteria. The results can be paged. + * Return a list of relationships whose string based property values match the search criteria. The + * search criteria may include regex style wild cards. * * @param userId - unique identifier for requesting user. - * @param searchCriteria - String expression of the characteristics of the required relationships. + * @param relationshipTypeGUID - GUID of the type of entity to search for. Null means all types will + * be searched (could be slow so not recommended). + * @param searchCriteria - String expression contained in any of the property values within the entities + * of the supplied type. * @param fromRelationshipElement - Element number of the results to skip to when building the results list * to return. Zero means begin at the start of the results. This is used * to retrieve the results over a number of pages. @@ -1113,21 +2099,50 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection * @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 + public List<Relationship> findRelationshipsByPropertyValue(String userId, + String relationshipTypeGUID, + String searchCriteria, + int fromRelationshipElement, + List<InstanceStatus> limitResultsByStatus, + Date asOfTime, + String sequencingProperty, + SequencingOrder sequencingOrder, + int pageSize) throws InvalidParameterException, + RepositoryErrorException, + PropertyErrorException, + PagingErrorException, + FunctionNotSupportedException, + UserNotAuthorizedException { - return null; + final String methodName = "findRelationshipsByPropertyName"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1163,7 +2178,37 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "getLinkingEntities"; + final String startEntityGUIDParameterName = "startEntityGUID"; + final String endEntityGUIDParameterName = "entityGUID"; + final String asOfTimeParameter = "asOfTime"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, startEntityGUIDParameterName, startEntityGUID, methodName); + repositoryValidator.validateGUID(repositoryName, endEntityGUIDParameterName, endEntityGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1205,13 +2250,71 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection Date asOfTime, int level) throws InvalidParameterException, RepositoryErrorException, - TypeErrorException, EntityNotKnownException, + TypeErrorException, PropertyErrorException, FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "getEntityNeighborhood"; + final String entityGUIDParameterName = "entityGUID"; + final String entityTypeGUIDParameterName = "entityTypeGUIDs"; + final String relationshipTypeGUIDParameterName = "relationshipTypeGUIDs"; + final String limitedResultsByClassificationParameterName = "limitResultsByClassification"; + final String asOfTimeParameter = "asOfTime"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, entityGUIDParameterName, entityGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + + if (entityTypeGUIDs != null) + { + for (String guid : entityTypeGUIDs) + { + repositoryValidator.validateGUID(repositoryName, entityTypeGUIDParameterName, guid, methodName); + } + } + + if (relationshipTypeGUIDs != null) + { + for (String guid : relationshipTypeGUIDs) + { + repositoryValidator.validateGUID(repositoryName, relationshipTypeGUIDParameterName, guid, methodName); + } + } + + if (relationshipTypeGUIDs != null) + { + for (String classificationName : limitResultsByClassification) + { + repositoryValidator.validateClassificationName(repositoryName, + limitedResultsByClassificationParameterName, + classificationName, + methodName); + } + } + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1266,7 +2369,37 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection FunctionNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "getRelatedEntities"; + final String entityGUIDParameterName = "startEntityGUID"; + final String asOfTimeParameter = "asOfTime"; + final String pageSizeParameter = "pageSize"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateGUID(repositoryName, entityGUIDParameterName, startEntityGUID, methodName); + repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName); + repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName); + + /* + * Perform operation + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, + this.getClass().getName(), + repositoryName); + + throw new RepositoryErrorException(errorCode.getHTTPErrorCode(), + this.getClass().getName(), + methodName, + errorMessage, + errorCode.getSystemAction(), + errorCode.getUserAction()); } @@ -1309,7 +2442,57 @@ public abstract class OMRSMetadataCollectionBase extends OMRSMetadataCollection StatusNotSupportedException, UserNotAuthorizedException { - return null; + final String methodName = "addEntity"; + final String entityGUIDParameterName = "entityTypeGUID"; + final String propertiesParameterName = "initialProperties"; + final String classificationsParameterName = "initialClassifications"; + final String initialStatusParameterName = "initialStatus"; + + /* + * Validate parameters + */ + this.validateRepositoryConnector(methodName); + parentConnector.validateRepositoryIsActive(methodName); + + repositoryValidator.validateUserId(repositoryName, userId, methodName); + repositoryValidator.validateTypeGUID(repositoryName, entityGUIDParameterName, entityTypeGUID, methodName); + + TypeDef typeDef = repositoryHelper.getTypeDef(repositoryName, entityTypeGUID); + + repositoryValidator.validateTypeDefForInstance(repositoryName, entityGUIDParameterName, typeDef, methodName); + repositoryValidator.validateClassificationList(repositoryName, + classificationsParameterName, + initialClassifications, + typeDef.getName(), + methodName); + + repositoryValidator.validatePropertiesForType(repositoryName, + propertiesParameterName, + typeDef, + initialProperties, + methodName); + + repositoryValidator.validateInstanceStatus(repositoryName, + initialStatusParameterName, + initialStatus, + typeDef, + methodName); + + /* + * Validation complete - ok to create new instance + */ + OMRSErrorCode errorCode = OMRSErrorCode.METHOD_NOT_IMPLEMENTED; + + String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName, +
<TRUNCATED>
