You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2018/05/25 20:08:02 UTC
[09/51] [partial] atlas git commit: ATLAS-2722: moved unused code
from branch-1.0
http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java b/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
deleted file mode 100644
index 5fe86a0..0000000
--- a/omrs/src/main/java/org/apache/atlas/omrs/localrepository/repositoryconnector/LocalOMRSMetadataCollection.java
+++ /dev/null
@@ -1,4678 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.atlas.omrs.localrepository.repositoryconnector;
-
-import org.apache.atlas.omrs.eventmanagement.OMRSRepositoryEventProcessor;
-import org.apache.atlas.omrs.ffdc.*;
-import org.apache.atlas.omrs.ffdc.exception.*;
-import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryHelper;
-import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryValidator;
-import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSTypeDefManager;
-import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
-import org.apache.atlas.omrs.metadatacollection.properties.MatchCriteria;
-import org.apache.atlas.omrs.metadatacollection.properties.SequencingOrder;
-import org.apache.atlas.omrs.metadatacollection.properties.instances.*;
-import org.apache.atlas.omrs.metadatacollection.properties.typedefs.*;
-
-import java.util.List;
-import java.util.Date;
-
-/**
- * LocalOMRSMetadataCollection provides a wrapper around the metadata collection for the real local repository.
- * Its role is to manage outbound repository events and audit logging/debug for the real local repository.
- */
-public class LocalOMRSMetadataCollection extends OMRSMetadataCollection
-{
- private OMRSMetadataCollection realMetadataCollection;
- private String localServerName;
- private String localServerType;
- private String localOrganizationName;
- private OMRSRepositoryEventProcessor outboundRepositoryEventProcessor;
- private OMRSTypeDefManager localTypeDefManager;
-
-
-
- /**
- * Constructor used by LocalOMRSRepositoryConnector
- *
- * @param parentConnector - connector that this metadata collection supports. The connector has the information
- * to call the metadata repository.
- * @param repositoryName - name of the repository - used for logging.
- * @param repositoryHelper - class used to build type definitions and instances.
- * @param repositoryValidator - class used to validate type definitions and instances.
- * @param metadataCollectionId - unique Identifier of the metadata collection Id.
- * @param localServerName - name of the local server.
- * @param localServerType - type of the local server.
- * @param localOrganizationName - name of the organization that owns the local server.
- * @param realMetadataCollection - metadata collection of the real local connector.
- * @param outboundRepositoryEventProcessor - outbound event processor
- * (may be null if a repository event mapper is deployed).
- * @param typeDefManager - manager of in-memory cache of type definitions (TypeDefs).
- */
- LocalOMRSMetadataCollection(LocalOMRSRepositoryConnector parentConnector,
- String repositoryName,
- OMRSRepositoryHelper repositoryHelper,
- OMRSRepositoryValidator repositoryValidator,
- String metadataCollectionId,
- String localServerName,
- String localServerType,
- String localOrganizationName,
- OMRSMetadataCollection realMetadataCollection,
- OMRSRepositoryEventProcessor outboundRepositoryEventProcessor,
- OMRSTypeDefManager typeDefManager)
- {
- /*
- * The super class manages the local metadata collection id. This is a locally managed value.
- */
- super(parentConnector, repositoryName, metadataCollectionId, repositoryHelper, repositoryValidator);
-
- /*
- * Save the metadata collection object for the real repository. This is the metadata collection that
- * does all of the work. LocalOMRSMetadataCollection is just a wrapper for managing repository events
- * and debug and audit logging.
- */
- if (realMetadataCollection == null)
- {
- final String actionDescription = "Local OMRS Metadata Collection Constructor";
-
- OMRSErrorCode errorCode = OMRSErrorCode.NULL_LOCAL_METADATA_COLLECTION;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage();
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- actionDescription,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- this.realMetadataCollection = realMetadataCollection;
-
- /*
- * Save the information needed to send repository events.
- */
- this.localServerName = localServerName;
- this.localServerType = localServerType;
- this.localOrganizationName = localOrganizationName;
- this.outboundRepositoryEventProcessor = outboundRepositoryEventProcessor;
- this.localTypeDefManager = typeDefManager;
- }
-
-
- /* ======================================================================
- * Group 1: Confirm the identity of the metadata repository being called.
- */
-
- /**
- * Returns the identifier of the metadata repository. This is the identifier used to register the
- * metadata repository with the metadata repository cohort. It is also the identifier used to
- * identify the home repository of a metadata instance.
- *
- * @return String - metadata collection id.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- */
- public String getMetadataCollectionId() throws RepositoryErrorException
- {
- final String methodName = "getMetadataCollectionId";
-
- /*
- * Validate parameters
- */
- this.validateRepositoryConnector(methodName);
- parentConnector.validateRepositoryIsActive(methodName);
-
- /*
- * Perform operation
- */
- return super.metadataCollectionId;
- }
-
-
- /* ==============================
- * Group 2: Working with typedefs
- */
-
-
- /**
- * Returns the list of different types of metadata organized into two groups. The first are the
- * attribute type definitions (AttributeTypeDefs). These provide types for properties in full
- * type definitions. Full type definitions (TypeDefs) describe types for entities, relationships
- * and classifications.
- *
- * @param userId - unique identifier for requesting user.
- * @return TypeDefs - Lists of different categories of TypeDefs.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public TypeDefGallery getAllTypes(String userId) throws RepositoryErrorException,
- UserNotAuthorizedException
- {
- final String methodName = "getAllTypes";
-
- /*
- * Validate parameters
- */
- this.validateRepositoryConnector(methodName);
- parentConnector.validateRepositoryIsActive(methodName);
-
- repositoryValidator.validateUserId(repositoryName, userId, methodName);
-
- /*
- * Perform operation
- */
- return realMetadataCollection.getAllTypes(userId);
- }
-
-
- /**
- * Returns a list of TypeDefs that have the specified name. TypeDef names should be unique. This
- * method allows wildcard character to be included in the name. These are * (asterisk) for an arbitrary string of
- * characters and ampersand for an arbitrary character.
- *
- * @param userId - unique identifier for requesting user.
- * @param name - name of the TypeDefs to return (including wildcard characters).
- * @return TypeDefs list.
- * @throws InvalidParameterException - the name of the TypeDef is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public TypeDefGallery findTypesByName(String userId,
- String name) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
- return realMetadataCollection.findTypesByName(userId, name);
- }
-
-
- /**
- * Returns all of the TypeDefs for a specific category.
- *
- * @param userId - unique identifier for requesting user.
- * @param category - enum value for the category of TypeDef to return.
- * @return TypeDefs list.
- * @throws InvalidParameterException - the TypeDefCategory is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public List<TypeDef> findTypeDefsByCategory(String userId,
- TypeDefCategory category) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.findTypeDefsByCategory(userId, category);
- }
-
-
- /**
- * Returns all of the AttributeTypeDefs for a specific category.
- *
- * @param userId - unique identifier for requesting user.
- * @param category - enum value for the category of an AttributeTypeDef to return.
- * @return TypeDefs list.
- * @throws InvalidParameterException - the TypeDefCategory is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public List<AttributeTypeDef> findAttributeTypeDefsByCategory(String userId,
- AttributeTypeDefCategory category) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
- return realMetadataCollection.findAttributeTypeDefsByCategory(userId, category);
- }
-
-
-
- /**
- * Return the TypeDefs that have the properties matching the supplied match criteria.
- *
- * @param userId - unique identifier for requesting user.
- * @param matchCriteria - TypeDefProperties - a list of property names and values.
- * @return TypeDefs list.
- * @throws InvalidParameterException - the matchCriteria is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public List<TypeDef> findTypeDefsByProperty(String userId,
- TypeDefProperties matchCriteria) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.findTypeDefsByProperty(userId, matchCriteria);
- }
-
-
- /**
- * Return the types that are linked to the elements from the specified standard.
- *
- * @param userId - unique identifier for requesting user.
- * @param standard - name of the standard - null means any.
- * @param organization - name of the organization - null means any.
- * @param identifier - identifier of the element in the standard - null means any.
- * @return TypeDefs list - each entry in the list contains a typedef. This is is a structure
- * describing the TypeDef's category and properties.
- * @throws InvalidParameterException - all attributes of the external id are null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public List<TypeDef> findTypesByExternalID(String userId,
- String standard,
- String organization,
- String identifier) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.findTypesByExternalID(userId, standard, organization, identifier);
- }
-
- /**
- * Return the TypeDefs that match the search criteria.
- *
- * @param userId - unique identifier for requesting user.
- * @param searchCriteria - String - search criteria.
- * @return TypeDefs list - each entry in the list contains a typedef. This is is a structure
- * describing the TypeDef's category and properties.
- * @throws InvalidParameterException - the searchCriteria is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public List<TypeDef> searchForTypeDefs(String userId,
- String searchCriteria) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.searchForTypeDefs(userId, searchCriteria);
- }
-
-
- /**
- * Return the TypeDef identified by the GUID.
- *
- * @param userId - unique identifier for requesting user.
- * @param guid - String unique id of the TypeDef
- * @return TypeDef structure describing its category and properties.
- * @throws InvalidParameterException - the guid is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotKnownException - The requested TypeDef is not known in the metadata collection.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public TypeDef getTypeDefByGUID(String userId,
- String guid) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- UserNotAuthorizedException
- {
- final String methodName = "getTypeDefByGUID";
- 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
- */
-
- return realMetadataCollection.getTypeDefByGUID(userId, guid);
- }
-
-
- /**
- * Return the AttributeTypeDef identified by the GUID.
- *
- * @param userId - unique identifier for requesting user.
- * @param guid - String unique id of the TypeDef
- * @return TypeDef structure describing its category and properties.
- * @throws InvalidParameterException - the guid is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotKnownException - The requested TypeDef is not known in the metadata collection.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public AttributeTypeDef getAttributeTypeDefByGUID(String userId,
- String guid) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- UserNotAuthorizedException
- {
- final String methodName = "getAttributeTypeDefByGUID";
- 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
- */
-
- return realMetadataCollection.getAttributeTypeDefByGUID(userId, guid);
- }
-
-
- /**
- * Return the TypeDef identified by the unique name.
- *
- * @param userId - unique identifier for requesting user.
- * @param name - String name of the TypeDef.
- * @return TypeDef structure describing its category and properties.
- * @throws InvalidParameterException - the name is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotKnownException - the requested TypeDef is not found in the metadata collection.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public TypeDef getTypeDefByName(String userId,
- String name) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.getTypeDefByName(userId, name);
- }
-
-
- /**
- * Return the AttributeTypeDef identified by the unique name.
- *
- * @param userId - unique identifier for requesting user.
- * @param name - String name of the TypeDef.
- * @return TypeDef structure describing its category and properties.
- * @throws InvalidParameterException - the name is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotKnownException - the requested TypeDef is not found in the metadata collection.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public AttributeTypeDef getAttributeTypeDefByName(String userId,
- String name) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.getAttributeTypeDefByName(userId, name);
- }
-
-
- /**
- * Create a collection of related types.
- *
- * @param userId - unique identifier for requesting user.
- * @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.
- * @throws TypeDefNotSupportedException - the repository is not able to support this TypeDef.
- * @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,
- TypeDefGallery newTypes) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotSupportedException,
- TypeDefKnownException,
- TypeDefConflictException,
- InvalidTypeDefException,
- 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 - the gallery is passed to the real repository connector one type at a time
- * to ensure the proper management and caching of types.
- */
- List<AttributeTypeDef> attributeTypeDefs = newTypes.getAttributeTypeDefs();
-
- if (attributeTypeDefs != null)
- {
- for (AttributeTypeDef attributeTypeDef : attributeTypeDefs)
- {
- this.addAttributeTypeDef(userId, attributeTypeDef);
- }
- }
-
- List<TypeDef> typeDefs = newTypes.getTypeDefs();
-
- if (typeDefs != null)
- {
- for (TypeDef typeDef : typeDefs)
- {
- this.addTypeDef(userId, typeDef);
- }
- }
- }
-
-
- /**
- * Create a definition of a new TypeDef.
- *
- * @param userId - unique identifier for requesting user.
- * @param newTypeDef - TypeDef structure describing the new TypeDef.
- * @throws InvalidParameterException - the new TypeDef is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotSupportedException - the repository is not able to support this TypeDef.
- * @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,
- TypeDef newTypeDef) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotSupportedException,
- TypeDefKnownException,
- TypeDefConflictException,
- InvalidTypeDefException,
- 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
- */
-
- realMetadataCollection.addTypeDef(userId, newTypeDef);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.addTypeDef(repositoryName, newTypeDef);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processNewTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- newTypeDef);
- }
- }
-
- /**
- * Create a definition of a new AttributeTypeDef.
- *
- * @param userId - unique identifier for requesting user.
- * @param newAttributeTypeDef - TypeDef structure describing the new TypeDef.
- * @throws InvalidParameterException - the new TypeDef is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotSupportedException - the repository is not able to support this TypeDef.
- * @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,
- AttributeTypeDef newAttributeTypeDef) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotSupportedException,
- TypeDefKnownException,
- TypeDefConflictException,
- InvalidTypeDefException,
- 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
- */
-
- realMetadataCollection.addAttributeTypeDef(userId, newAttributeTypeDef);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.addAttributeTypeDef(repositoryName, newAttributeTypeDef);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processNewAttributeTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- newAttributeTypeDef);
- }
- }
-
-
- /**
- * Verify that a definition of a TypeDef is either new - or matches the definition already stored.
- *
- * @param userId - unique identifier for requesting user.
- * @param typeDef - TypeDef structure describing the TypeDef to test.
- * @return boolean - true means the TypeDef matches the local definition - false means the TypeDef is not known.
- * @throws InvalidParameterException - the TypeDef is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotSupportedException - the repository is not able to support this TypeDef.
- * @throws TypeDefConflictException - the new TypeDef conflicts with an existing TypeDef.
- * @throws InvalidTypeDefException - the new TypeDef has invalid contents.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public boolean verifyTypeDef(String userId,
- TypeDef typeDef) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotSupportedException,
- TypeDefConflictException,
- InvalidTypeDefException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.verifyTypeDef(userId, typeDef);
- }
-
-
- /**
- * Verify that a definition of an AttributeTypeDef is either new - or matches the definition already stored.
- *
- * @param userId - unique identifier for requesting user.
- * @param attributeTypeDef - TypeDef structure describing the TypeDef to test.
- * @return boolean - true means the TypeDef matches the local definition - false means the TypeDef is not known.
- * @throws InvalidParameterException - the TypeDef is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotSupportedException - the repository is not able to support this TypeDef.
- * @throws TypeDefConflictException - the new TypeDef conflicts with an existing TypeDef.
- * @throws InvalidTypeDefException - the new TypeDef has invalid contents.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public boolean verifyAttributeTypeDef(String userId,
- AttributeTypeDef attributeTypeDef) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotSupportedException,
- TypeDefConflictException,
- InvalidTypeDefException,
- UserNotAuthorizedException
- {
- 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
- */
-
- return realMetadataCollection.verifyAttributeTypeDef(userId, attributeTypeDef);
- }
-
-
- /**
- * Update one or more properties of the TypeDef. The TypeDefPatch controls what types of updates
- * are safe to make to the TypeDef.
- *
- * @param userId - unique identifier for requesting user.
- * @param typeDefPatch - TypeDef patch describing change to TypeDef.
- * @return updated TypeDef
- * @throws InvalidParameterException - the TypeDefPatch is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @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,
- TypeDefPatch typeDefPatch) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- PatchErrorException,
- FunctionNotSupportedException,
- UserNotAuthorizedException
- {
- final String methodName = "updateTypeDef";
-
- /*
- * Validate parameters
- */
- this.validateRepositoryConnector(methodName);
- parentConnector.validateRepositoryIsActive(methodName);
-
- repositoryValidator.validateUserId(repositoryName, userId, methodName);
- repositoryValidator.validateTypeDefPatch(repositoryName, typeDefPatch, methodName);
-
- /*
- * Perform operation
- */
-
- TypeDef updatedTypeDef = realMetadataCollection.updateTypeDef(userId, typeDefPatch);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.updateTypeDef(repositoryName, updatedTypeDef);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processUpdatedTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- typeDefPatch);
- }
-
- return updatedTypeDef;
- }
-
-
- /**
- * Delete the TypeDef. This is only possible if the TypeDef has never been used to create instances or any
- * instances of this TypeDef have been purged from the metadata collection.
- *
- * @param userId - unique identifier for requesting user.
- * @param obsoleteTypeDefGUID - String unique identifier for the TypeDef.
- * @param obsoleteTypeDefName - String unique name for the TypeDef.
- * @throws InvalidParameterException - the one of TypeDef identifiers is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotKnownException - the requested TypeDef is not found in the metadata collection.
- * @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,
- String obsoleteTypeDefGUID,
- String obsoleteTypeDefName) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- TypeDefInUseException,
- 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
- */
-
- realMetadataCollection.deleteTypeDef(userId,
- obsoleteTypeDefGUID,
- obsoleteTypeDefName);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.deleteTypeDef(repositoryName,
- obsoleteTypeDefGUID,
- obsoleteTypeDefName);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processDeletedTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- obsoleteTypeDefGUID,
- obsoleteTypeDefName);
- }
- }
-
-
- /**
- * Delete an AttributeTypeDef. This is only possible if the AttributeTypeDef has never been used to create
- * instances or any instances of this AttributeTypeDef have been purged from the metadata collection.
- *
- * @param userId - unique identifier for requesting user.
- * @param obsoleteTypeDefGUID - String unique identifier for the AttributeTypeDef.
- * @param obsoleteTypeDefName - String unique name for the AttributeTypeDef.
- * @throws InvalidParameterException - the one of AttributeTypeDef identifiers is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws TypeDefNotKnownException - the requested AttributeTypeDef is not found in the metadata collection.
- * @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,
- String obsoleteTypeDefGUID,
- String obsoleteTypeDefName) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- TypeDefInUseException,
- 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
- */
-
- realMetadataCollection.deleteAttributeTypeDef(userId,
- obsoleteTypeDefGUID,
- obsoleteTypeDefName);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.deleteAttributeTypeDef(repositoryName,
- obsoleteTypeDefGUID,
- obsoleteTypeDefName);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processDeletedAttributeTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- obsoleteTypeDefGUID,
- obsoleteTypeDefName);
- }
- }
-
-
- /**
- * Change the guid or name of an existing TypeDef to a new value. This is used if two different
- * TypeDefs are discovered to have the same guid. This is extremely unlikely but not impossible so
- * the open metadata protocol has provision for this.
- *
- * @param userId - unique identifier for requesting user.
- * @param originalTypeDefGUID - the original guid of the TypeDef.
- * @param originalTypeDefName - the original name of the TypeDef.
- * @param newTypeDefGUID - the new identifier for the TypeDef.
- * @param newTypeDefName - new name for this TypeDef.
- * @return typeDef - new values for this TypeDef, including the new guid/name.
- * @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 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,
- String originalTypeDefGUID,
- String originalTypeDefName,
- String newTypeDefGUID,
- String newTypeDefName) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- FunctionNotSupportedException,
- UserNotAuthorizedException
- {
- 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
- */
-
- TypeDef originalTypeDef = realMetadataCollection.getTypeDefByGUID(userId, originalTypeDefGUID);
-
- TypeDef newTypeDef = realMetadataCollection.reIdentifyTypeDef(userId,
- originalTypeDefGUID,
- originalTypeDefName,
- newTypeDefGUID,
- newTypeDefName);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.reIdentifyTypeDef(repositoryName,
- originalTypeDefGUID,
- originalTypeDefName,
- newTypeDef);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processReIdentifiedTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- originalTypeDef,
- newTypeDef);
- }
-
- return newTypeDef;
- }
-
-
- /**
- * Change the guid or name of an existing TypeDef to a new value. This is used if two different
- * TypeDefs are discovered to have the same guid. This is extremely unlikely but not impossible so
- * the open metadata protocol has provision for this.
- *
- * @param userId - unique identifier for requesting user.
- * @param originalAttributeTypeDefGUID - the original guid of the AttributeTypeDef.
- * @param originalAttributeTypeDefName - the original name of the AttributeTypeDef.
- * @param newAttributeTypeDefGUID - the new identifier for the AttributeTypeDef.
- * @param newAttributeTypeDefName - new name for this AttributeTypeDef.
- * @return attributeTypeDef - new values for this AttributeTypeDef, including the new guid/name.
- * @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 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,
- String originalAttributeTypeDefGUID,
- String originalAttributeTypeDefName,
- String newAttributeTypeDefGUID,
- String newAttributeTypeDefName) throws InvalidParameterException,
- RepositoryErrorException,
- TypeDefNotKnownException,
- FunctionNotSupportedException,
- UserNotAuthorizedException
- {
- 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
- */
-
- AttributeTypeDef originalAttributeTypeDef = realMetadataCollection.getAttributeTypeDefByGUID(userId, originalAttributeTypeDefGUID);
-
- AttributeTypeDef newAttributeTypeDef = realMetadataCollection.reIdentifyAttributeTypeDef(userId,
- originalAttributeTypeDefGUID,
- originalAttributeTypeDefName,
- newAttributeTypeDefGUID,
- newAttributeTypeDefName);
-
- if (localTypeDefManager != null)
- {
- localTypeDefManager.reIdentifyAttributeTypeDef(repositoryName,
- originalAttributeTypeDefGUID,
- originalAttributeTypeDefName,
- newAttributeTypeDef);
- }
-
- if (outboundRepositoryEventProcessor != null)
- {
- outboundRepositoryEventProcessor.processReIdentifiedAttributeTypeDefEvent(repositoryName,
- metadataCollectionId,
- localServerName,
- localServerType,
- localOrganizationName,
- originalAttributeTypeDef,
- newAttributeTypeDef);
- }
-
- return newAttributeTypeDef;
- }
-
-
-
- /* ===================================================
- * Group 3: Locating entity and relationship instances
- */
-
-
- /**
- * Returns a boolean indicating if the entity is stored in the metadata collection. This entity may be a full
- * entity object, or an entity proxy.
- *
- * @param userId - unique identifier for requesting user.
- * @param guid - String unique identifier for the entity
- * @return the entity details if the entity is found in the metadata collection; otherwise return null
- * @throws InvalidParameterException - the guid is null.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public EntityDetail isEntityKnown(String userId,
- String guid) throws InvalidParameterException,
- RepositoryErrorException,
- UserNotAuthorizedException
- {
- 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
- */
-
- EntityDetail entity = realMetadataCollection.isEntityKnown(userId, guid);
-
- if (entity != null)
- {
- /*
- * Ensure the provenance of the entity is correctly set. A repository may not support the storing of
- * the metadata collection id in the repository (or uses null to mean "local"). When the entity
- * detail is sent out, it must have its home metadata collection id set up. So LocalOMRSMetadataCollection
- * fixes up the provenance.
- */
- if (entity.getMetadataCollectionId() == null)
- {
- entity.setMetadataCollectionId(metadataCollectionId);
- entity.setInstanceProvenanceType(InstanceProvenanceType.LOCAL_COHORT);
- }
- }
-
- return entity;
- }
-
-
- /**
- * Return the header and classifications for a specific entity. The returned entity summary may be from
- * a full entity object or an entity proxy.
- *
- * @param userId - unique identifier for requesting user.
- * @param guid - String unique identifier for the entity
- * @return EntitySummary 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 EntitySummary getEntitySummary(String userId,
- String guid) throws InvalidParameterException,
- RepositoryErrorException,
- EntityNotKnownException,
- UserNotAuthorizedException
- {
- 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
- */
-
- EntitySummary entity = realMetadataCollection.getEntitySummary(userId, guid);
-
- if (entity != null)
- {
- /*
- * Ensure the provenance of the entity is correctly set. A repository may not support the storing of
- * the metadata collection id in the repository (or uses null to mean "local"). When the entity
- * detail is sent out, it must have its home metadata collection id set up. So LocalOMRSMetadataCollection
- * fixes up the provenance.
- */
- if (entity.getMetadataCollectionId() == null)
- {
- entity.setMetadataCollectionId(metadataCollectionId);
- entity.setInstanceProvenanceType(InstanceProvenanceType.LOCAL_COHORT);
- }
- }
-
- return entity;
- }
-
-
- /**
- * Return the header, classifications and properties of a specific entity.
- *
- * @param userId - unique identifier for requesting user.
- * @param guid - String unique identifier for the entity.
- * @return EntityDetail 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 EntityProxyOnlyException - the requested entity instance is only a proxy in the metadata collection.
- * @throws UserNotAuthorizedException - the userId is not permitted to perform this operation.
- */
- public EntityDetail getEntityDetail(String userId,
- String guid) throws InvalidParameterException,
- RepositoryErrorException,
- EntityNotKnownException,
- EntityProxyOnlyException,
- UserNotAuthorizedException
- {
- final String methodName = "getEntityDetail";
- 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
- */
-
- EntityDetail entity = realMetadataCollection.getEntityDetail(userId, guid);
-
- if (entity != null)
- {
- /*
- * Ensure the provenance of the entity is correctly set. A repository may not support the storing of
- * the metadata collection id in the repository (or uses null to mean "local"). When the entity
- * detail is sent out, it must have its home metadata collection id set up. So LocalOMRSMetadataCollection
- * fixes up the provenance.
- */
- if (entity.getMetadataCollectionId() == null)
- {
- entity.setMetadataCollectionId(metadataCollectionId);
- entity.setInstanceProvenanceType(InstanceProvenanceType.LOCAL_COHORT);
- }
- }
-
- return entity;
- }
-
-
- /**
- * 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 version of the entity that is desired.
- * @return EntityDetail 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 EntityNotKnownException - the requested entity instance is not known in the metadata collection
- * at the time requested.
- * @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,
- String guid,
- Date asOfTime) throws InvalidParameterException,
- RepositoryErrorException,
- EntityNotKnownException,
- EntityProxyOnlyException,
- FunctionNotSupportedException,
- UserNotAuthorizedException
- {
- 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
- */
-
- EntityDetail entity = realMetadataCollection.getEntityDetail(userId, guid, asOfTime);
-
- if (entity != null)
- {
- /*
- * Ensure the provenance of the entity is correctly set. A repository may not support the storing of
- * the metadata collection id in the repository (or uses null to mean "local"). When the entity
- * detail is sent out, it must have its home metadata collection id set up. So LocalOMRSMetadataCollection
- * fixes up the provenance.
- */
- if (entity.getMetadataCollectionId() == null)
- {
- entity.setMetadataCollectionId(metadataCollectionId);
- entity.setInstanceProvenanceType(InstanceProvenanceType.LOCAL_COHORT);
- }
- }
-
- return entity;
- }
-
-
- /**
- * 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.
- * @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
- * status values.
- * @param asOfTime - Requests a historical query of the relationships for the entity. Null means return the
- * present values.
- * @param sequencingProperty - String name of the property that is to be used to sequence the results.
- * Null means do not sequence on a property name (see SequencingOrder).
- * @param sequencingOrder - Enum defining how the results should be ordered.
- * @param pageSize -- the maximum number of result classifications that can be returned on this request. Zero means
- * unrestricted return results size.
- * @return Relationships list. Null means no relationships associated with the entity.
- * @throws InvalidParameterException - a parameter is invalid or null.
- * @throws TypeErrorException - the type guid passed on the request is not known by the
- * metadata collection.
- * @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 PropertyErrorException - the sequencing property is not valid for the attached classifications.
- * @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 List<Relationship> getRelationshipsForEntity(String userId,
- String entityGUID,
- String relationshipTypeGUID,
- int fromRelationshipElement,
- List<InstanceStatus> limitResultsByStatus,
- Date asOfTime,
- String sequencingProperty,
- SequencingOrder sequencingOrder,
- int pageSize) throws InvalidParameterException,
- TypeErrorException,
- RepositoryErrorException,
- EntityNotKnownException,
- PropertyErrorException,
- PagingErrorException,
- FunctionNotSupportedException,
- UserNotAuthorizedException
- {
- final String methodName = "getRelationshipsForEntity";
- final String guidParameterName = "entityGUID";
- final String asOfTimeParameter = "asOfTime";
- final String typeGUIDParameter = "relationshipTypeGUID";
- final String pageSizeParameter = "pageSize";
-
- /*
- * Validate parameters
- */
- this.validateRepositoryConnector(methodName);
- parentConnector.validateRepositoryIsActive(methodName);
-
- repositoryValidator.validateUserId(repositoryName, userId, methodName);
- repositoryValidator.validateGUID(repositoryName, guidParameterName, entityGUID, methodName);
- repositoryValidator.validateOptionalTypeGUID(repositoryName, typeGUIDParameter, relationshipTypeGUID, methodName);
- repositoryValidator.validateAsOfTime(repositoryName, asOfTimeParameter, asOfTime, methodName);
- repositoryValidator.validatePageSize(repositoryName, pageSizeParameter, pageSize, methodName);
-
- /*
- * Perform operation
- */
-
- return realMetadataCollection.getRelationshipsForEntity(userId,
- entityGUID,
- relationshipTypeGUID,
- fromRelationshipElement,
- limitResultsByStatus,
- asOfTime,
- sequencingProperty,
- sequencingOrder,
- pageSize);
- }
-
-
- /**
- * Return a list of entities that match the supplied properties according to the match criteria. The results
- * can be returned over many pages.
- *
- * @param userId - unique identifier for requesting user.
- * @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 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
- * to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all
- * status values.
- * @param limitResultsByClassification - List of classifications that must be present on all returned entities.
- * @param asOfTime - Requests a historical query of the entity. Null means return the present values.
- * @param sequencingProperty - String name of the entity property that is to be used to sequence the results.
- * Null means do not sequence on a property name (see SequencingOrder).
- * @param sequencingOrder - Enum defining how the results should be ordered.
- * @param pageSize - the maximum number of result entities that can be returned on this request. Zero means
- * unrestricted return results size.
- * @return a list of entities matching the supplied criteria - null means no matching entities in the metadata
- * collection.
- * @throws InvalidParameterException - a parameter is invalid or null.
- * @throws TypeErrorException - the type guid passed on the request is not known by the
- * metadata collection.
- * @throws RepositoryErrorException - there is a problem communicating with the metadata repository where
- * the metadata collection is stored.
- * @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 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,
- TypeErrorException,
- RepositoryErrorException,
- PropertyErrorException,
- PagingErrorException,
- FunctionNotSupportedException,
- UserNotAuthorizedException
- {
- 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.validateOptionalTypeGUID(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
- */
-
- return realMetadataCollection.findEntitiesByProperty(userId,
- entityTypeGUID,
- matchProperties,
- matchCriteria,
- fromEntityElement,
- limitResultsByStatus,
- limitResultsByClassification,
- asOfTime,
-
<TRUNCATED>