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

<TRUNCATED>

Reply via email to