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:20 UTC
[27/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/admin/properties/OpenMetadataExchangeRule.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java
deleted file mode 100644
index c49e5fc..0000000
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java
+++ /dev/null
@@ -1,116 +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.admin.properties;
-
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonInclude;
-
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
-
-/**
- * OpenMetadataExchangeRule controls the sending/receiving of metadata instances on the metadata highway.
- * <ul>
- * <li>
- * REGISTRATION_ONLY means do not send/receive reference metadata - just perform the minimal registration
- * exchanges.
- * </li>
- * <li>
- * JUST_TYPEDEFS - means only send/receive/validate type definitions (TypeDefs).
- * </li>
- * <li>
- * SELECTED_TYPES means that in addition to TypeDefs events, only metadata instances of the types
- * supplied in the related list of TypeDefs (see typesToSend, typesToSave and typesToFederate) should be processed.
- * </li>
- * <li>
- * LEARNED_TYPES means that the local repository requests reference copies of metadata based on the requests of
- * the local user community.
- * </li>
- * <li>
- * ALL means send/receive all types of metadata that are supported by the local repository.
- * </li>
- * </ul>
- */
-@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonIgnoreProperties(ignoreUnknown=true)
-public enum OpenMetadataExchangeRule
-{
- REGISTRATION_ONLY (0, "Registration Only", "Only registration exchange; no TypeDefs or metadata instances."),
- JUST_TYPEDEFS (1, "Just TypeDefs", "Only registration and type definitions (TypeDefs) exchange."),
- SELECTED_TYPES (2, "Selected Types", "Registration plus all type definitions (TypeDefs) and metadata " +
- "instances (Entities and Relationships) of selected types."),
- LEARNED_TYPES (3, "Learned Types", "Registration plus all type definitions (TypeDefs) and metadata " +
- "instances (Entities and Relationships) of types " +
- "requested by local users to this server."),
- ALL (99, "All", "Registration plus all type definitions (TypeDefs) and metadata " +
- "instances (Entities and Relationships).");
-
- private int replicationRuleCode;
- private String replicationRuleName;
- private String replicationRuleDescription;
-
- /**
- * Constructor for the metadata instance replication rule.
- *
- * @param replicationRuleCode - the code number of this metadata instance replication rule.
- * @param replicationRuleName - the name of this metadata instance replication rule.
- * @param replicationRuleDescription - the description of this metadata instance replication rule.
- */
- OpenMetadataExchangeRule(int replicationRuleCode, String replicationRuleName, String replicationRuleDescription)
- {
- this.replicationRuleCode = replicationRuleCode;
- this.replicationRuleName = replicationRuleName;
- this.replicationRuleDescription = replicationRuleDescription;
- }
-
-
- /**
- * Return the code number of this metadata instance replication rule.
- *
- * @return int replication rule code number
- */
- public int getReplicationRuleCode()
- {
- return replicationRuleCode;
- }
-
-
- /**
- * Return the name of this metadata instance replication rule.
- *
- * @return String replication rule name
- */
- public String getReplicationRuleName()
- {
- return replicationRuleName;
- }
-
-
- /**
- * Return the description of this metadata instance replication rule.
- *
- * @return String replication rule description
- */
- public String getReplicationRuleDescription()
- {
- return replicationRuleDescription;
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
deleted file mode 100644
index 3b68afd..0000000
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
+++ /dev/null
@@ -1,261 +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.admin.properties;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonInclude;
-
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
-import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
-
-import org.apache.atlas.ocf.properties.beans.Connection;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * RepositoryServicesConfig provides the configuration properties that are needed by the OMRS components
- * to manage access to the metadata repositories that are members of the open metadata repository clusters that
- * this server connects to.
- * <ul>
- * <li>
- * auditLogConnection is a connection describing the connector to the AuditLog that the OMRS
- * component should use.
- * </li>
- * <li>
- * openMetadataArchiveConnections is a list of Open Metadata Archive Connections.
- * An open metadata archive connection provides properties needed to create a connector to manage
- * an open metadata archive. This contains pre-built TypeDefs and metadata instance.
- * The archives are managed by the OMRSArchiveManager.
- * </li>
- * <li>
- * localRepositoryConfig describes the properties used to manage the local metadata repository for this server.
- * </li>
- * <li>
- * enterpriseAccessConfig describes the properties that control the cluster federation services that the
- * OMRS provides to the Open Metadata AccessServices (OMASs).
- * </li>
- * <li>
- * cohortConfigList provides details of each open metadata repository cluster that the local server is
- * connected to.
- * </li>
- * </ul>
- */
-@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonIgnoreProperties(ignoreUnknown=true)
-public class RepositoryServicesConfig
-{
- private ArrayList<Connection> auditLogConnections = new ArrayList<>();
- private ArrayList<Connection> openMetadataArchiveConnections = new ArrayList<>();
- private LocalRepositoryConfig localRepositoryConfig = null;
- private EnterpriseAccessConfig enterpriseAccessConfig = null;
- private ArrayList<CohortConfig> cohortConfigList = new ArrayList<>();
-
-
- /**
- * Default constructor does nothing
- */
- public RepositoryServicesConfig()
- {
- }
-
-
- /**
- * Constructor to set all properties.
- *
- * @param auditLogConnections - connections to copies of the audit log.
- * @param openMetadataArchiveConnections - list of open metadata archive files to load.
- * @param localRepositoryConfig - properties to configure the behavior of the local repository.
- * @param enterpriseAccessConfig - properties to configure the behavior of the federation services provided
- * to the Open Metadata Access Services (OMASs).
- * @param cohortConfigList - properties about the open metadata repository clusters that this server connects to.
- */
- public RepositoryServicesConfig(List<Connection> auditLogConnections,
- List<Connection> openMetadataArchiveConnections,
- LocalRepositoryConfig localRepositoryConfig,
- EnterpriseAccessConfig enterpriseAccessConfig,
- List<CohortConfig> cohortConfigList)
- {
- this.setAuditLogConnections(auditLogConnections);
- this.setOpenMetadataArchiveConnections(openMetadataArchiveConnections);
- this.setLocalRepositoryConfig(localRepositoryConfig);
- this.setEnterpriseAccessConfig(enterpriseAccessConfig);
- this.setCohortConfigList(cohortConfigList);
- }
-
-
- /**
- * Return the Connection properties used to create an OCF Connector to the AuditLog.
- *
- * @return Connection object
- */
- public List<Connection> getAuditLogConnections()
- {
- if (auditLogConnections == null)
- {
- return null;
- }
- else
- {
- return auditLogConnections;
- }
- }
-
-
- /**
- * Set up the Connection properties used to create an OCF Connector to the AuditLog.
- *
- * @param auditLogConnections - list of Connection objects
- */
- public void setAuditLogConnections(List<Connection> auditLogConnections)
- {
- if (auditLogConnections == null)
- {
- this.auditLogConnections = null;
- }
- else
- {
- this.auditLogConnections = new ArrayList<>(auditLogConnections);
- }
- }
-
-
- /**
- * Return the list of Connection object, each of which is used to create the Connector to an Open Metadata
- * Archive. Open Metadata Archive contains pre-built metadata types and instances.
- *
- * @return list of Connection objects
- */
- public List<Connection> getOpenMetadataArchiveConnections()
- {
- if (openMetadataArchiveConnections == null)
- {
- return null;
- }
- else
- {
- return openMetadataArchiveConnections;
- }
- }
-
-
- /**
- * Set up the list of Connection object, each of which is used to create the Connector to an Open Metadata
- * Archive. Open Metadata Archive contains pre-built metadata types and instances.
- *
- * @param openMetadataArchiveConnections - list of Connection objects
- */
- public void setOpenMetadataArchiveConnections(List<Connection> openMetadataArchiveConnections)
- {
- if (openMetadataArchiveConnections == null)
- {
- this.openMetadataArchiveConnections = null;
- }
- else
- {
- this.openMetadataArchiveConnections = new ArrayList<>(openMetadataArchiveConnections);
- }
- }
-
-
- /**
- * Return the configuration properties for the local repository.
- *
- * @return configuration properties
- */
- public LocalRepositoryConfig getLocalRepositoryConfig()
- {
- return localRepositoryConfig;
- }
-
-
- /**
- * Set up the configuration properties for the local repository.
- *
- * @param localRepositoryConfig - configuration properties
- */
- public void setLocalRepositoryConfig(LocalRepositoryConfig localRepositoryConfig)
- {
- this.localRepositoryConfig = localRepositoryConfig;
- }
-
-
- /**
- * Return the configuration for the federation services provided by OMRS to the Open Metadata Access
- * Services (OMASs).
- *
- * @return configuration properties
- */
- public EnterpriseAccessConfig getEnterpriseAccessConfig()
- {
- return enterpriseAccessConfig;
- }
-
-
- /**
- * Set up the configuration for the federation services provided by OMRS to the Open Metadata Access
- * Services (OMASs).
- *
- * @param enterpriseAccessConfig configuration properties
- */
- public void setEnterpriseAccessConfig(EnterpriseAccessConfig enterpriseAccessConfig)
- {
- this.enterpriseAccessConfig = enterpriseAccessConfig;
- }
-
-
- /**
- * Return the configuration properties for each open metadata repository cluster that this local server
- * connects to.
- *
- * @return list of cluster configuration properties
- */
- public List<CohortConfig> getCohortConfigList()
- {
- if (cohortConfigList == null)
- {
- return null;
- }
- else
- {
- return cohortConfigList;
- }
- }
-
-
- /**
- * Set up the configuration properties for each open metadata repository cluster that this local server
- * connects to.
- *
- * @param cohortConfigList - list of cluster configuration properties
- */
- public void setCohortConfigList(List<CohortConfig> cohortConfigList)
- {
- if (cohortConfigList == null)
- {
- this.cohortConfigList = null;
- }
- else
- {
- this.cohortConfigList = new ArrayList<>(cohortConfigList);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveBuilder.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveBuilder.java b/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveBuilder.java
deleted file mode 100644
index e44fd1f..0000000
--- a/omrs/src/main/java/org/apache/atlas/omrs/archivemanager/OMRSArchiveBuilder.java
+++ /dev/null
@@ -1,1279 +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.archivemanager;
-
-import org.apache.atlas.omrs.archivemanager.properties.*;
-import org.apache.atlas.omrs.ffdc.OMRSErrorCode;
-import org.apache.atlas.omrs.ffdc.exception.OMRSLogicErrorException;
-import org.apache.atlas.omrs.metadatacollection.properties.instances.EntityDetail;
-import org.apache.atlas.omrs.metadatacollection.properties.instances.Relationship;
-import org.apache.atlas.omrs.metadatacollection.properties.typedefs.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.*;
-
-/**
- * OMRSArchiveBuilder creates an in-memory copy of an open metadata archive that can be saved to disk or processed
- * by a server.
- */
-public class OMRSArchiveBuilder
-{
- /*
- * Archive properties supplied on the constructor
- */
- private OpenMetadataArchiveProperties archiveProperties = null;
-
- /*
- * Hash maps for accumulating TypeDefs and instances as the content of the archive is built up.
- */
- private Map<String, PrimitiveDef> primitiveDefMap = new HashMap<>();
- private ArrayList<PrimitiveDef> primitiveDefList = new ArrayList<>();
- private Map<String, EnumDef> enumDefMap = new HashMap<>();
- private ArrayList<EnumDef> enumDefList = new ArrayList<>();
- private Map<String, CollectionDef> collectionDefMap = new HashMap<>();
- private ArrayList<CollectionDef> collectionDefList = new ArrayList<>();
- private Map<String, ClassificationDef> classificationDefMap = new HashMap<>();
- private ArrayList<ClassificationDef> classificationDefList = new ArrayList<>();
- private Map<String, EntityDef> entityDefMap = new HashMap<>();
- private ArrayList<EntityDef> entityDefList = new ArrayList<>();
- private Map<String, RelationshipDef> relationshipDefMap = new HashMap<>();
- private ArrayList<RelationshipDef> relationshipDefList = new ArrayList<>();
- private Map<String, TypeDefPatch> typeDefPatchMap = new HashMap<>();
- private ArrayList<TypeDefPatch> typeDefPatchList = new ArrayList<>();
- private Map<String, EntityDetail> entityDetailMap = new HashMap<>();
- private ArrayList<EntityDetail> entityDetailList = new ArrayList<>();
- private Map<String, Relationship> relationshipMap = new HashMap<>();
- private ArrayList<Relationship> relationshipList = new ArrayList<>();
- private Map<String, Object> guidMap = new HashMap<>();
- private Map<String, Object> nameMap = new HashMap<>();
- /*
- * map to keep track of all the AttributeDef names including relationship end names per EntityDef name.
- */
- private Map<String,Set<String>> entityAttributeMap = new HashMap();
-
-
- private static final Logger log = LoggerFactory.getLogger(OMRSArchiveBuilder.class);
-
-
- /**
- * Typical constructor passes parameters used to build the open metadata archive's property header.
- *
- * @param archiveGUID - unique identifier for this open metadata archive.
- * @param archiveName - name of the open metadata archive.
- * @param archiveDescription - description of the open metadata archive.
- * @param archiveType - enum describing the type of archive this is.
- * @param originatorName - name of the originator (person or organization) of the archive.
- * @param creationDate - data that this archive was created.
- * @param dependsOnArchives - list of GUIDs for archives that this archive depends on (null for no dependencies).
- */
- public OMRSArchiveBuilder(String archiveGUID,
- String archiveName,
- String archiveDescription,
- OpenMetadataArchiveType archiveType,
- String originatorName,
- Date creationDate,
- ArrayList<String> dependsOnArchives)
- {
- this.archiveProperties = new OpenMetadataArchiveProperties();
-
- this.archiveProperties.setArchiveGUID(archiveGUID);
- this.archiveProperties.setArchiveName(archiveName);
- this.archiveProperties.setArchiveDescription(archiveDescription);
- this.archiveProperties.setArchiveType(archiveType);
- this.archiveProperties.setOriginatorName(originatorName);
- this.archiveProperties.setCreationDate(creationDate);
- this.archiveProperties.setDependsOnArchives(dependsOnArchives);
- }
-
-
- /**
- * Add a new PrimitiveDef to the archive.
- *
- * @param primitiveDef - type to add - nulls are ignored
- */
- public void addPrimitiveDef(PrimitiveDef primitiveDef)
- {
- final String methodName = "addPrimitiveDef()";
-
- if (primitiveDef != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding PrimitiveDef: " + primitiveDef.toString());
- }
- this.checkForBlanksInTypeName(primitiveDef.getName());
-
- PrimitiveDef duplicateElement = primitiveDefMap.put(primitiveDef.getName(), primitiveDef);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(primitiveDef.getName(),
- AttributeTypeDefCategory.PRIMITIVE.getTypeName(),
- duplicateElement.toString(),
- primitiveDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(primitiveDef.getGUID(), primitiveDef);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(primitiveDef.getGUID(),
- duplicateGUID.toString(),
- primitiveDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateName = nameMap.put(primitiveDef.getName(), primitiveDef);
-
- if (duplicateName != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(primitiveDef.getGUID(),
- duplicateName.toString(),
- primitiveDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- primitiveDefList.add(primitiveDef);
- }
- }
-
-
- /**
- * Retrieve a PrimitiveDef from the archive.
- *
- * @param primitiveDefName - primitive to retrieve
- * @return PrimitiveDef type
- */
- public PrimitiveDef getPrimitiveDef(String primitiveDefName)
- {
- final String methodName = "getPrimitiveDef()";
-
- if (log.isDebugEnabled())
- {
- log.debug("Retrieving PrimitiveDef: " + primitiveDefName);
- }
-
- if (primitiveDefName != null)
- {
- PrimitiveDef primitiveDef = primitiveDefMap.get(primitiveDefName);
-
- if (primitiveDef == null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(primitiveDefName,
- AttributeTypeDefCategory.PRIMITIVE.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- return primitiveDef;
- }
- else
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_NAME_FOR_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(AttributeTypeDefCategory.PRIMITIVE.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- }
-
-
- /**
- * Add a new CollectionDef to the archive.
- *
- * @param collectionDef - type to add
- */
- public void addCollectionDef(CollectionDef collectionDef)
- {
- final String methodName = "addCollectionDef()";
-
- if (collectionDef != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding CollectionDef: " + collectionDef.toString());
- }
- this.checkForBlanksInTypeName(collectionDef.getName());
-
- CollectionDef duplicateElement = collectionDefMap.put(collectionDef.getName(), collectionDef);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(collectionDef.getName(),
- AttributeTypeDefCategory.COLLECTION.getTypeName(),
- duplicateElement.toString(),
- collectionDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(collectionDef.getGUID(), collectionDef);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(collectionDef.getGUID(),
- duplicateGUID.toString(),
- collectionDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateName = nameMap.put(collectionDef.getName(), collectionDef);
-
- if (duplicateName != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(collectionDef.getGUID(),
- duplicateName.toString(),
- collectionDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- collectionDefList.add(collectionDef);
- }
- }
-
-
- /**
- * Retrieve a CollectionDef from the archive.
- *
- * @param collectionDefName - type to retrieve
- * @return CollectionDef type
- */
- public CollectionDef getCollectionDef(String collectionDefName)
- {
- final String methodName = "getCollectionDef()";
-
- if (log.isDebugEnabled())
- {
- log.debug("Retrieving CollectionDef: " + collectionDefName);
- }
-
- if (collectionDefName != null)
- {
- CollectionDef collectionDef = collectionDefMap.get(collectionDefName);
-
- if (collectionDef == null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(collectionDefName,
- AttributeTypeDefCategory.COLLECTION.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- return collectionDef;
- }
- else
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_NAME_FOR_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(AttributeTypeDefCategory.COLLECTION.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- }
-
-
- /**
- * Add a new EnumDef to the archive.
- *
- * @param enumDef - type to add
- */
- public void addEnumDef(EnumDef enumDef)
- {
- final String methodName = "addEnumDef()";
-
- if (enumDef != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding EnumDef: " + enumDef.toString());
- }
- this.checkForBlanksInTypeName(enumDef.getName());
-
- EnumDef duplicateElement = enumDefMap.put(enumDef.getName(), enumDef);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(enumDef.getName(),
- AttributeTypeDefCategory.ENUM_DEF.getTypeName(),
- duplicateElement.toString(),
- enumDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(enumDef.getGUID(), enumDef);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(enumDef.getGUID(),
- duplicateGUID.toString(),
- enumDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateName = nameMap.put(enumDef.getName(), enumDef);
-
- if (duplicateName != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(enumDef.getGUID(),
- duplicateName.toString(),
- enumDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- enumDefList.add(enumDef);
- }
- }
-
-
- /**
- * Get an existing EnumDef from the archive.
- *
- * @param enumDefName - type to retrieve
- * @return EnumDef object
- */
- public EnumDef getEnumDef(String enumDefName)
- {
- final String methodName = "getEnumDef()";
-
- if (log.isDebugEnabled())
- {
- log.debug("Retrieving EnumDef: " + enumDefName);
- }
-
- if (enumDefName != null)
- {
- EnumDef enumDef = enumDefMap.get(enumDefName);
-
- if (enumDef == null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(enumDefName,
- AttributeTypeDefCategory.ENUM_DEF.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- return enumDef;
- }
- else
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_NAME_FOR_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(AttributeTypeDefCategory.ENUM_DEF.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- }
-
-
- /**
- * Add a new ClassificationDef to the archive.
- *
- * @param classificationDef - type to add
- */
- public void addClassificationDef(ClassificationDef classificationDef)
- {
- final String methodName = "addClassificationDef()";
-
- if (classificationDef != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding ClassificationDef: " + classificationDef.toString());
- }
- this.checkForBlanksInTypeName(classificationDef.getName());
-
- ClassificationDef duplicateElement = classificationDefMap.put(classificationDef.getName(), classificationDef);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(classificationDef.getName(),
- TypeDefCategory.CLASSIFICATION_DEF.getTypeName(),
- duplicateElement.toString(),
- classificationDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(classificationDef.getGUID(), classificationDef);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(classificationDef.getGUID(),
- duplicateGUID.toString(),
- classificationDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateName = nameMap.put(classificationDef.getName(), classificationDef);
-
- if (duplicateName != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(classificationDef.getName(),
- duplicateName.toString(),
- classificationDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- if (classificationDef.getPropertiesDefinition()!=null)
- {
- Set<String> attrSet = new HashSet();
-
- for (TypeDefAttribute typeDefAttr :classificationDef.getPropertiesDefinition())
- {
- String duplicateAttributeName = typeDefAttr.getAttributeName();
- if (attrSet.contains(duplicateAttributeName))
- {
- // relationship duplicate attribute name
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_CLASSIFICATION_ATTR_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- duplicateAttributeName,
- classificationDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrSet.add(duplicateAttributeName);
- }
- }
-
- classificationDefList.add(classificationDef);
- }
- }
-
-
- /**
- * Add a new EntityDef to the archive.
- *
- * @param entityDef - type to add
- */
- public void addEntityDef(EntityDef entityDef)
- {
- final String methodName = "addEntityDef()";
-
- if (entityDef != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding EntityDef: " + entityDef.toString());
- }
- this.checkForBlanksInTypeName(entityDef.getName());
-
- EntityDef duplicateElement = entityDefMap.put(entityDef.getName(), entityDef);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(entityDef.getName(),
- TypeDefCategory.ENTITY_DEF.getTypeName(),
- duplicateElement.toString(),
- entityDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(entityDef.getGUID(), entityDef);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(entityDef.getGUID(),
- duplicateGUID.toString(),
- entityDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateName = nameMap.put(entityDef.getName(), entityDef);
-
- if (duplicateName != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(entityDef.getName(),
- duplicateName.toString(),
- entityDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- if (entityDef.getPropertiesDefinition()!=null)
- {
- Set<String> attrSet = new HashSet();
-
- for (TypeDefAttribute typeDefAttr :entityDef.getPropertiesDefinition())
- {
- String duplicateAttributeName = typeDefAttr.getAttributeName();
- if (attrSet.contains(duplicateAttributeName))
- {
- // relationship duplicate attribute name
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_ENTITY_ATTR_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- duplicateAttributeName,
- entityDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrSet.add(duplicateAttributeName);
- }
- }
- entityDefList.add(entityDef);
- }
- }
-
-
- /**
- * Retrieve the entityDef - or null if it is not defined.
- *
- * @param entityDefName - name of the entity
- * @return the retrieved Entity def
- */
- public EntityDef getEntityDef(String entityDefName)
- {
- final String methodName = "getEntityDef()";
-
- if (log.isDebugEnabled())
- {
- log.debug("Retrieving EntityDef: " + entityDefName);
- }
-
- if (entityDefName != null)
- {
- EntityDef retrievedEntityDef = entityDefMap.get(entityDefName);
-
- if (retrievedEntityDef == null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(entityDefName,
- TypeDefCategory.ENTITY_DEF.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- return retrievedEntityDef;
- }
- else
- {
- OMRSErrorCode errorCode = OMRSErrorCode.MISSING_NAME_FOR_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(TypeDefCategory.ENTITY_DEF.getTypeName());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- }
-
-
- /**
- * Add a new RelationshipDef to the archive.
- *
- * @param relationshipDef - type to add
- */
- public void addRelationshipDef(RelationshipDef relationshipDef)
- {
- final String methodName = "addRelationshipDef()";
-
- if (relationshipDef != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding RelationshipDef: " + relationshipDef.toString());
- }
- this.checkForBlanksInTypeName(relationshipDef.getName());
- RelationshipDef duplicateElement = relationshipDefMap.put(relationshipDef.getName(), relationshipDef);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(relationshipDef.getName(),
- TypeDefCategory.RELATIONSHIP_DEF.getTypeName(),
- duplicateElement.toString(),
- relationshipDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(relationshipDef.getGUID(), relationshipDef);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(relationshipDef.getGUID(),
- duplicateGUID.toString(),
- relationshipDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateName = nameMap.put(relationshipDef.getName(), relationshipDef);
-
- if (duplicateName != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(relationshipDef.getName(),
- duplicateName.toString(),
- relationshipDef.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- this.checkRelationshipDefDuplicateAttributes(relationshipDef);
-
- if (relationshipDef.getPropertiesDefinition()!=null)
- {
- Set<String> attrSet = new HashSet();
- for (TypeDefAttribute typeDefAttr :relationshipDef.getPropertiesDefinition())
- {
- String duplicateAttributeName = typeDefAttr.getAttributeName();
- if (attrSet.contains(duplicateAttributeName))
- {
- // relationship duplicate attribute name
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_RELATIONSHIP_ATTR_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- duplicateAttributeName,
- relationshipDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrSet.add(duplicateAttributeName);
- }
- }
- relationshipDefList.add(relationshipDef);
- }
- }
-
- /**
- * Check whether the relationshipDef supplies any attributes that already exist.
- * @param relationshipDef
- * @throws OMRSLogicErrorException
- */
- protected void checkRelationshipDefDuplicateAttributes(RelationshipDef relationshipDef) throws OMRSLogicErrorException
- {
- final String methodName = "checkRelationshipDefDuplicateAttributes()";
- // check whether the end2 type already has an attribute called end1name already exists locally or in any of its relationships
- String relationshipName = relationshipDef.getName();
-
- RelationshipEndDef end1 = relationshipDef.getEndDef1();
- RelationshipEndDef end2 = relationshipDef.getEndDef2();
-
- String end1Name = end1.getAttributeName();
- String end1Type = end1.getEntityType().getName();
-
- String end2Name = end2.getAttributeName();
- String end2Type = end2.getEntityType().getName();
-
- if (end1Name.equals(end2Name) && end1Type.equals(end2Type))
- {
-
- if (entityAttributeMap.get(end1Type) == null)
- {
- // we have not seen this entity before
- Set<String> attrSet = new HashSet();
- attrSet.add(end1Name);
- entityAttributeMap.put(end1Type, attrSet);
- } else {
- Set<String> attrset = entityAttributeMap.get(end1Type);
- // this attribute name should not already be defined for this entity
-
- if (attrset.contains(end2Name))
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_ENDDEF2_NAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- end1Type,
- end2Name,
- relationshipDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrset.add(end1Name);
- }
- } else
- {
- if (entityAttributeMap.get(end1Type) == null)
- {
- // we have not seen this entity before
- Set<String> attrSet = new HashSet();
- attrSet.add(end2Name);
- entityAttributeMap.put(end1Type, attrSet);
- } else
- {
- Set<String> attrset = entityAttributeMap.get(end1Type);
- // this attribute name should not already be defined for this entity
- if (attrset.contains(end2Name)){
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_ENDDEF2_NAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- end1Type,
- end2Name,
- relationshipDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrset.add(end2Name);
- }
-
- if (entityAttributeMap.get(end2Type) == null)
- {
- // we have not seen this entity before
- Set<String> attrSet = new HashSet();
- attrSet.add(end1Name);
- entityAttributeMap.put(end2Type, attrSet);
- } else
- {
- Set<String> attrset = entityAttributeMap.get(end2Type);
- // this attribute name should not already be defined for this entity
- if (attrset.contains(end1Name))
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_ENDDEF1_NAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- end2Type,
- end1Name,
- relationshipDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrset.add(end1Name);
- }
- }
- // check whether end1 has a local attribute name that clashes with a relationship end
- EntityDef entityDef1 = entityDefMap.get(end1Type);
-
- if (entityDef1.getPropertiesDefinition()!=null)
- {
- Set<String> attrset = entityAttributeMap.get(end1Type);
- for (TypeDefAttribute typeDefAttr : entityDef1.getPropertiesDefinition())
- {
- String localAttributeName = typeDefAttr.getAttributeName();
- // this attribute name should not already be defined for this entity
-
- if (localAttributeName.equals(end2Name))
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_ENDDEF2_NAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- end1Type,
- end2Name,
- relationshipDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrset.add(end2Name);
- }
- }
- EntityDef entityDef2 = entityDefMap.get(end2Type);
- if (entityDef2.getPropertiesDefinition()!=null)
- {
- Set<String> attrset = entityAttributeMap.get(end2Type);
- for (TypeDefAttribute typeDefAttr : entityDef2.getPropertiesDefinition())
- {
- String localAttributeName = typeDefAttr.getAttributeName();
- // this attribute name should not already be defined for this entity
-
- if (localAttributeName.equals(end1Name))
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_ENDDEF1_NAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(
- end2Type,
- end1Name,
- relationshipDef.getName()
- );
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- attrset.add(end1Name);
- }
- }
- }
-
-
- /**
- * Add a new entity to the archive.
- *
- * @param entity - instance to add
- */
- public void addEntity(EntityDetail entity)
- {
- final String methodName = "addEntity()";
-
- if (entity != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding Entity: " + entity.toString());
- }
-
- EntityDetail duplicateElement = entityDetailMap.put(entity.getGUID(), entity);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_INSTANCE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(TypeDefCategory.ENTITY_DEF.getTypeName(),
- entity.getGUID(),
- duplicateElement.toString(),
- entity.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(entity.getGUID(), entity);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(entity.getGUID(),
- duplicateGUID.toString(),
- entity.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- entityDetailList.add(entity);
- }
- }
-
-
- /**
- * Add a new relationship to the archive.
- *
- * @param relationship - instance to add
- */
- public void addRelationship(Relationship relationship)
- {
- final String methodName = "addRelationship()";
-
- if (relationship != null)
- {
- if (log.isDebugEnabled())
- {
- log.debug("Adding Relationship: " + relationship.toString());
- }
-
- Relationship duplicateElement = relationshipMap.put(relationship.getGUID(), relationship);
-
- if (duplicateElement != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_INSTANCE_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(TypeDefCategory.ENTITY_DEF.getTypeName(),
- relationship.getGUID(),
- duplicateElement.toString(),
- relationship.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- Object duplicateGUID = guidMap.put(relationship.getGUID(), relationship);
-
- if (duplicateGUID != null)
- {
- OMRSErrorCode errorCode = OMRSErrorCode.DUPLICATE_GUID_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(relationship.getGUID(),
- duplicateGUID.toString(),
- relationship.toString());
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- relationshipList.add(relationship);
- }
- }
-
-
- /**
- * Once the content of the archive has been added to the archive builder, an archive object can be retrieved.
- *
- * @return open metadata archive object with all of the supplied content in it.
- */
- public OpenMetadataArchive getOpenMetadataArchive()
- {
- final String methodName = "getOpenMetadataArchive()";
-
- if (log.isDebugEnabled())
- {
- log.debug("Retrieving Open Metadata Archive: " + archiveProperties.getArchiveName());
- }
-
- OpenMetadataArchive archive = new OpenMetadataArchive();
-
- /*
- * Set up the archive properties
- */
- archive.setArchiveProperties(this.archiveProperties);
-
- /*
- * Set up the TypeStore. The types are added in a strict order to ensure that the dependencies are resolved.
- */
- ArrayList<AttributeTypeDef> attributeTypeDefs = new ArrayList<>();
- ArrayList<TypeDef> typeDefs = new ArrayList<>();
- ArrayList<TypeDefPatch> typeDefPatches = new ArrayList<>();
-
- if (! primitiveDefList.isEmpty())
- {
- attributeTypeDefs.addAll(primitiveDefList);
- }
- if (! collectionDefList.isEmpty())
- {
- attributeTypeDefs.addAll(collectionDefList);
- }
- if (! enumDefList.isEmpty())
- {
- attributeTypeDefs.addAll(enumDefList);
- }
- if (! entityDefList.isEmpty())
- {
- typeDefs.addAll(entityDefList);
- }
- if (! classificationDefList.isEmpty())
- {
- typeDefs.addAll(classificationDefList);
- }
- if (! relationshipDefList.isEmpty())
- {
- typeDefs.addAll(relationshipDefList);
- }
-
- if (! typeDefPatchList.isEmpty())
- {
- typeDefPatches.addAll(typeDefPatchList);
- }
-
- if ((! typeDefs.isEmpty()) || (! typeDefPatches.isEmpty()) || (! attributeTypeDefs.isEmpty()))
- {
- OpenMetadataArchiveTypeStore typeStore = new OpenMetadataArchiveTypeStore();
-
- if (! attributeTypeDefs.isEmpty())
- {
- typeStore.setAttributeTypeDefs(attributeTypeDefs);
- }
-
- if (! typeDefs.isEmpty())
- {
- typeStore.setNewTypeDefs(typeDefs);
- }
-
- if (! typeDefPatches.isEmpty())
- {
- typeStore.setTypeDefPatches(typeDefPatches);
- }
-
- archive.setArchiveTypeStore(typeStore);
- }
-
-
- /*
- * Finally set up the instance store
- */
- ArrayList<EntityDetail> entities = new ArrayList<>();
- ArrayList<Relationship> relationships = new ArrayList<>();
-
- if (! entityDetailList.isEmpty())
- {
- entities.addAll(entityDetailList);
- }
- if (! relationshipList.isEmpty())
- {
- relationships.addAll(relationshipList);
- }
-
- if ((! entities.isEmpty()) || (! relationships.isEmpty()))
- {
- OpenMetadataArchiveInstanceStore instanceStore = new OpenMetadataArchiveInstanceStore();
-
- if (! entities.isEmpty())
- {
- instanceStore.setEntities(entities);
- }
-
- if (! relationships.isEmpty())
- {
- instanceStore.setRelationships(relationships);
- }
-
- archive.setArchiveInstanceStore(instanceStore);
- }
-
- return archive;
- }
- private void checkForBlanksInTypeName(String typeName)
- {
- final String methodName = "checkForBlanksInTypeName()";
- if (typeName.contains(" "))
- {
- OMRSErrorCode errorCode = OMRSErrorCode.BLANK_TYPENAME_IN_ARCHIVE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(typeName);
-
- throw new OMRSLogicErrorException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- }
-}