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>

Reply via email to