diff --git a/open-metadata-distribution/README.md b/open-metadata-distribution/README.md index df70a723bf9..e09841c6cba 100644 --- a/open-metadata-distribution/README.md +++ b/open-metadata-distribution/README.md @@ -6,6 +6,7 @@ This module collects together the Egeria artifacts for different scenarios. This includes: * The **[OMAG Server Platform Assembly](omag-server-platform)** assembles the libraries and files for the OMAG Server Platform plus optional resources for use with the platform. +* The **[Egeria UI Application](egeria-ui-application)** contains the runtime for the Egeria's General User UI backend services. * The **[Open Metadata Assembly](open-metadata-assemblies)** provides a combination of the OMAG Server Platform and the Egeria UI Application. This is a legacy and is being replaced with the more specialized assemblies described above. diff --git a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionFolderProperties.java b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionFolderProperties.java index 615506cbde8..f6f6d949bc9 100644 --- a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionFolderProperties.java +++ b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionFolderProperties.java @@ -101,15 +101,16 @@ public void setCollectionOrderingProperty(String collectionOrderingProperty) public String toString() { return "CollectionFolderProperties{" + - "collectionOrderingProperty='" + collectionOrderingProperty + '\'' + - ", collectionOrdering=" + collectionOrdering + - ", name='" + getName() + '\'' + - ", description='" + getDescription() + '\'' + - ", qualifiedName='" + getQualifiedName() + '\'' + - ", additionalProperties=" + getAdditionalProperties() + - ", typeName='" + getTypeName() + '\'' + - ", extendedProperties=" + getExtendedProperties() + - '}'; + "collectionOrderingProperty='" + collectionOrderingProperty + '\'' + + ", collectionOrdering=" + collectionOrdering + + ", name='" + getName() + '\'' + + ", description='" + getDescription() + '\'' + + ", collectionType='" + getCollectionType() + '\'' + + ", qualifiedName='" + getQualifiedName() + '\'' + + ", additionalProperties=" + getAdditionalProperties() + + ", typeName='" + getTypeName() + '\'' + + ", extendedProperties=" + getExtendedProperties() + + '}'; } /** diff --git a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionMemberStatus.java b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionMemberStatus.java new file mode 100644 index 00000000000..1d9d88236a2 --- /dev/null +++ b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionMemberStatus.java @@ -0,0 +1,155 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.assetowner.properties; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.io.Serializable; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * CollectionMemberStatus specifies the the status of the member in a collection. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public enum CollectionMemberStatus implements Serializable +{ + /** + * The status of the member is not known or not specified. This is the default value. + */ + UNKNOWN (0, 0, "Unknown", "The status of the member is not known or not specified. This is the default value."), + + /** + * The member was added by a discovery process. + */ + DISCOVERED (1, 1, "Discovered", "The member was added by a discovery process."), + + /** + * The member was proposed by a consumer. + */ + PROPOSED (2, 2, "Proposed", "The member was proposed by a consumer."), + + /** + * The member was imported from another system. + */ + IMPORTED (3, 3, "Imported", "The member was imported from another system."), + + /** + * The member has been validated by a custodian/steward/approver and can be trusted. + */ + VALIDATED (4, 4, "Validated", "The member has been validated by a custodian/steward/approver and can be trusted."), + + /** + * The membership has been deprecated. Consider stopping using it. + */ + DEPRECATED (5, 5, "Deprecated", "The membership has been deprecated. Consider stopping using it."), + + /** + * The membership is obsolete and should not be used. + */ + OBSOLETE (6, 6, "Obsolete", "The membership is obsolete and should not be used."), + + /** + * The membership has a different status not covered by the open metadata types. + */ + OTHER (99, 99, "Other", "The membership has a different status not covered by the open metadata types."); + + private static final long serialVersionUID = 1L; + + private static final String ENUM_TYPE_GUID = "a3bdb2ac-c28e-4e5a-8ab7-76aa01038832"; + private static final String ENUM_TYPE_NAME = "MembershipStatus"; + + private final int openTypeOrdinal; + + private final int ordinal; + private final String name; + private final String description; + + + /** + * Default constructor for the enumeration. + * + * @param ordinal numerical representation of the enumeration + * @param openTypeOrdinal code number from the equivalent Enum Type + * @param name default string name of the enumeration + * @param description default string description of the enumeration + */ + CollectionMemberStatus(int ordinal, + int openTypeOrdinal, + String name, + String description) + { + this.ordinal = ordinal; + this.openTypeOrdinal = openTypeOrdinal; + this.name = name; + this.description = description; + } + + + /** + * Return the numeric representation of the enumeration. + * + * @return int ordinal + */ + public int getOrdinal() { return ordinal; } + + + /** + * Return the default name of the enumeration. + * + * @return String name + */ + public String getName() { return name; } + + + /** + * Return the default description of the enumeration. + * + * @return String description + */ + public String getDescription() { return description; } + + + /** + * Return the code for this enum that comes from the Open Metadata Type that this enum represents. + * + * @return int code number + */ + public int getOpenTypeOrdinal() + { + return openTypeOrdinal; + } + + + /** + * Return the unique identifier for the open metadata enum type that this enum class represents. + * + * @return string guid + */ + public String getOpenTypeGUID() { return ENUM_TYPE_GUID; } + + + /** + * Return the unique name for the open metadata enum type that this enum class represents. + * + * @return string name + */ + public String getOpenTypeName() { return ENUM_TYPE_NAME; } + + + /** + * toString() JSON-style + * + * @return string description + */ + @Override + public String toString() + { + return "CollectionMemberStatus : " + name; + } +} diff --git a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionOrder.java b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionOrder.java index e549be1bdaf..5b8bfba35ea 100644 --- a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionOrder.java +++ b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionOrder.java @@ -28,11 +28,34 @@ @JsonIgnoreProperties(ignoreUnknown=true) public enum CollectionOrder implements Serializable { + /** + * Order the collection by the names of the members in the collection. + */ NAME (0, 0, "Name", "Order the collection by the names of the members in the collection."), - OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection (assets only)."), + + /** + * Order the collection by the owners of the members in the collection. + */ + OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection."), + + /** + * Order the collection by the date that the members were added to the collection. + */ DATE_ADDED (2, 2, "Date Added", "Order the collection by the date that the members were added to the collection."), + + /** + * Order the collection by the date that the members were updated in the collection. + */ DATE_UPDATED (3, 3, "Date Updated", "Order the collection by the date that the members were updated in the collection."), + + /** + * Order the collection by the date that the members were created in the collection. + */ DATE_CREATED (4, 4, "Date Created", "Order the collection by the date that the members were created in the collection."), + + /** + * Order the collection by another value. + */ OTHER (99, 99, "Other", "Order the collection by another value."); private static final long serialVersionUID = 1L; diff --git a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionProperties.java b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionProperties.java index 02614d13401..949288b1cd4 100644 --- a/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionProperties.java +++ b/open-metadata-implementation/access-services/asset-owner/asset-owner-api/src/main/java/org/odpi/openmetadata/accessservices/assetowner/properties/CollectionProperties.java @@ -10,7 +10,7 @@ import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; /** - * CollectionProperties describes the core properties of a collection. + * CollectionProperties describes the core properties of a collection. The collection is a managed list of elements. */ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @@ -24,8 +24,9 @@ }) public class CollectionProperties extends ReferenceableProperties { - private String name = null; - private String description = null; + private String name = null; + private String description = null; + private String collectionType = null; /** @@ -50,6 +51,7 @@ public CollectionProperties(CollectionProperties template) { this.name = template.getName(); this.description = template.getDescription(); + this.collectionType = template.getCollectionType(); } } @@ -98,6 +100,28 @@ public void setDescription(String description) } + /** + * Return a descriptive name for the collection's type. + * + * @return string name + */ + public String getCollectionType() + { + return collectionType; + } + + + /** + * Set up a descriptive name for the collection's type. + * + * @param collectionType string name + */ + public void setCollectionType(String collectionType) + { + this.collectionType = collectionType; + } + + /** * JSON-style toString * @@ -109,6 +133,7 @@ public String toString() return "CollectionProperties{" + "name='" + name + '\'' + ", description='" + description + '\'' + + ", collectionType='" + collectionType + '\'' + ", qualifiedName='" + getQualifiedName() + '\'' + ", additionalProperties=" + getAdditionalProperties() + ", typeName='" + getTypeName() + '\'' + @@ -139,7 +164,7 @@ public boolean equals(Object objectToCompare) return false; } CollectionProperties that = (CollectionProperties) objectToCompare; - return Objects.equals(getName(), that.getName()) && + return Objects.equals(getName(), that.getName()) && Objects.equals(getCollectionType(), that.getCollectionType()) && Objects.equals(getDescription(), that.getDescription()); } @@ -152,6 +177,6 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - return Objects.hash(super.hashCode(), getName(), getDescription()); + return Objects.hash(super.hashCode(), getName(), getDescription(), getCollectionType()); } } diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionFolderProperties.java b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionFolderProperties.java index 38ad0abcfae..2d756d336c5 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionFolderProperties.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionFolderProperties.java @@ -101,18 +101,19 @@ public void setCollectionOrderingProperty(String collectionOrderingProperty) public String toString() { return "CollectionFolderProperties{" + - "collectionOrderingProperty='" + collectionOrderingProperty + '\'' + - ", collectionOrdering=" + collectionOrdering + - ", name='" + getName() + '\'' + - ", description='" + getDescription() + '\'' + - ", qualifiedName='" + getQualifiedName() + '\'' + - ", additionalProperties=" + getAdditionalProperties() + - ", effectiveFrom=" + getEffectiveFrom() + - ", effectiveTo=" + getEffectiveTo() + - ", vendorProperties=" + getVendorProperties() + - ", typeName='" + getTypeName() + '\'' + - ", extendedProperties=" + getExtendedProperties() + - '}'; + "collectionOrderingProperty='" + collectionOrderingProperty + '\'' + + ", collectionOrdering=" + collectionOrdering + + ", name='" + getName() + '\'' + + ", description='" + getDescription() + '\'' + + ", collectionType='" + getCollectionType() + '\'' + + ", qualifiedName='" + getQualifiedName() + '\'' + + ", additionalProperties=" + getAdditionalProperties() + + ", effectiveFrom=" + getEffectiveFrom() + + ", effectiveTo=" + getEffectiveTo() + + ", vendorProperties=" + getVendorProperties() + + ", typeName='" + getTypeName() + '\'' + + ", extendedProperties=" + getExtendedProperties() + + '}'; } /** diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMemberStatus.java b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMemberStatus.java new file mode 100644 index 00000000000..b5f98d083e8 --- /dev/null +++ b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMemberStatus.java @@ -0,0 +1,155 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.communityprofile.properties; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.io.Serializable; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * CollectionMemberStatus specifies the the status of the member in a collection. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public enum CollectionMemberStatus implements Serializable +{ + /** + * The status of the member is not known or not specified. This is the default value. + */ + UNKNOWN (0, 0, "Unknown", "The status of the member is not known or not specified. This is the default value."), + + /** + * The member was added by a discovery process. + */ + DISCOVERED (1, 1, "Discovered", "The member was added by a discovery process."), + + /** + * The member was proposed by a consumer. + */ + PROPOSED (2, 2, "Proposed", "The member was proposed by a consumer."), + + /** + * The member was imported from another system. + */ + IMPORTED (3, 3, "Imported", "The member was imported from another system."), + + /** + * The member has been validated by a custodian/steward/approver and can be trusted. + */ + VALIDATED (4, 4, "Validated", "The member has been validated by a custodian/steward/approver and can be trusted."), + + /** + * The membership has been deprecated. Consider stopping using it. + */ + DEPRECATED (5, 5, "Deprecated", "The membership has been deprecated. Consider stopping using it."), + + /** + * The membership is obsolete and should not be used. + */ + OBSOLETE (6, 6, "Obsolete", "The membership is obsolete and should not be used."), + + /** + * The membership has a different status not covered by the open metadata types. + */ + OTHER (99, 99, "Other", "The membership has a different status not covered by the open metadata types."); + + private static final long serialVersionUID = 1L; + + private static final String ENUM_TYPE_GUID = "a3bdb2ac-c28e-4e5a-8ab7-76aa01038832"; + private static final String ENUM_TYPE_NAME = "MembershipStatus"; + + private final int openTypeOrdinal; + + private final int ordinal; + private final String name; + private final String description; + + + /** + * Default constructor for the enumeration. + * + * @param ordinal numerical representation of the enumeration + * @param openTypeOrdinal code number from the equivalent Enum Type + * @param name default string name of the enumeration + * @param description default string description of the enumeration + */ + CollectionMemberStatus(int ordinal, + int openTypeOrdinal, + String name, + String description) + { + this.ordinal = ordinal; + this.openTypeOrdinal = openTypeOrdinal; + this.name = name; + this.description = description; + } + + + /** + * Return the numeric representation of the enumeration. + * + * @return int ordinal + */ + public int getOrdinal() { return ordinal; } + + + /** + * Return the default name of the enumeration. + * + * @return String name + */ + public String getName() { return name; } + + + /** + * Return the default description of the enumeration. + * + * @return String description + */ + public String getDescription() { return description; } + + + /** + * Return the code for this enum that comes from the Open Metadata Type that this enum represents. + * + * @return int code number + */ + public int getOpenTypeOrdinal() + { + return openTypeOrdinal; + } + + + /** + * Return the unique identifier for the open metadata enum type that this enum class represents. + * + * @return string guid + */ + public String getOpenTypeGUID() { return ENUM_TYPE_GUID; } + + + /** + * Return the unique name for the open metadata enum type that this enum class represents. + * + * @return string name + */ + public String getOpenTypeName() { return ENUM_TYPE_NAME; } + + + /** + * toString() JSON-style + * + * @return string description + */ + @Override + public String toString() + { + return "CollectionMemberStatus : " + name; + } +} diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMembershipProperties.java b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMembershipProperties.java index 9a5e45b2664..687540a7121 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMembershipProperties.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionMembershipProperties.java @@ -22,9 +22,9 @@ public class CollectionMembershipProperties extends RelationshipProperties private String membershipRationale = null; private String createdBy = null; private String expression = null; - private int confidence = 0; - private CollectionMembershipStatus status = null; - private String userDefinedStatus = null; + private int confidence = 0; + private CollectionMembershipStatus status = null; + private String userDefinedStatus = null; private String steward = null; private String stewardTypeName = null; private String stewardPropertyName = null; diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionOrder.java b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionOrder.java index 2f77e333552..e1a2ed52320 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionOrder.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionOrder.java @@ -28,11 +28,34 @@ @JsonIgnoreProperties(ignoreUnknown=true) public enum CollectionOrder implements Serializable { + /** + * Order the collection by the names of the members in the collection. + */ NAME (0, 0, "Name", "Order the collection by the names of the members in the collection."), - OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection (assets only)."), + + /** + * Order the collection by the owners of the members in the collection. + */ + OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection."), + + /** + * Order the collection by the date that the members were added to the collection. + */ DATE_ADDED (2, 2, "Date Added", "Order the collection by the date that the members were added to the collection."), + + /** + * Order the collection by the date that the members were updated in the collection. + */ DATE_UPDATED (3, 3, "Date Updated", "Order the collection by the date that the members were updated in the collection."), + + /** + * Order the collection by the date that the members were created in the collection. + */ DATE_CREATED (4, 4, "Date Created", "Order the collection by the date that the members were created in the collection."), + + /** + * Order the collection by another value. + */ OTHER (99, 99, "Other", "Order the collection by another value."); private static final long serialVersionUID = 1L; diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionProperties.java b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionProperties.java index 24fb66e56a5..a56807f203f 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionProperties.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/CollectionProperties.java @@ -2,7 +2,11 @@ /* Copyright Contributors to the ODPi Egeria project. */ package org.odpi.openmetadata.accessservices.communityprofile.properties; -import com.fasterxml.jackson.annotation.*; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; import java.util.Objects; @@ -10,7 +14,7 @@ import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; /** - * CollectionProperties describes the core properties of a collection. + * CollectionProperties describes the core properties of a collection. The collection is a managed list of elements. */ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @@ -20,12 +24,13 @@ property = "class") @JsonSubTypes( { - @JsonSubTypes.Type(value = CollectionFolderProperties.class, name = "CollectionFolderProperties"), + @JsonSubTypes.Type(value = CollectionFolderProperties.class, name = "FolderProperties"), }) public class CollectionProperties extends ReferenceableProperties { - private String name = null; - private String description = null; + private String name = null; + private String description = null; + private String collectionType = null; /** @@ -50,6 +55,7 @@ public CollectionProperties(CollectionProperties template) { this.name = template.getName(); this.description = template.getDescription(); + this.collectionType = template.getCollectionType(); } } @@ -98,6 +104,28 @@ public void setDescription(String description) } + /** + * Return a descriptive name for the collection's type. + * + * @return string name + */ + public String getCollectionType() + { + return collectionType; + } + + + /** + * Set up a descriptive name for the collection's type. + * + * @param collectionType string name + */ + public void setCollectionType(String collectionType) + { + this.collectionType = collectionType; + } + + /** * JSON-style toString * @@ -109,11 +137,9 @@ public String toString() return "CollectionProperties{" + "name='" + name + '\'' + ", description='" + description + '\'' + + ", collectionType='" + collectionType + '\'' + ", qualifiedName='" + getQualifiedName() + '\'' + ", additionalProperties=" + getAdditionalProperties() + - ", effectiveFrom=" + getEffectiveFrom() + - ", effectiveTo=" + getEffectiveTo() + - ", vendorProperties=" + getVendorProperties() + ", typeName='" + getTypeName() + '\'' + ", extendedProperties=" + getExtendedProperties() + '}'; @@ -142,7 +168,7 @@ public boolean equals(Object objectToCompare) return false; } CollectionProperties that = (CollectionProperties) objectToCompare; - return Objects.equals(getName(), that.getName()) && + return Objects.equals(getName(), that.getName()) && Objects.equals(getCollectionType(), that.getCollectionType()) && Objects.equals(getDescription(), that.getDescription()); } @@ -155,6 +181,6 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - return Objects.hash(super.hashCode(), getName(), getDescription()); + return Objects.hash(super.hashCode(), getName(), getDescription(), getCollectionType()); } } diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/ContactMethodType.java b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/ContactMethodType.java index 2e6046cced4..27fb462a870 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-api/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,16 +23,38 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionConverter.java b/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionConverter.java index 25667eadc09..8dba924658c 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionConverter.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionConverter.java @@ -76,6 +76,7 @@ public B getNewBean(Class beanClass, collectionProperties.setAdditionalProperties(this.removeAdditionalProperties(instanceProperties)); collectionProperties.setName(this.removeName(instanceProperties)); collectionProperties.setDescription(this.removeDescription(instanceProperties)); + collectionProperties.setCollectionType(this.removeCollectionType(instanceProperties)); collectionProperties.setEffectiveFrom(instanceProperties.getEffectiveFromTime()); collectionProperties.setEffectiveTo(instanceProperties.getEffectiveToTime()); diff --git a/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionMembershipConverter.java b/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionMembershipConverter.java index efe90130e68..26214aa42e0 100644 --- a/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionMembershipConverter.java +++ b/open-metadata-implementation/access-services/community-profile/community-profile-server/src/main/java/org/odpi/openmetadata/accessservices/communityprofile/converters/CollectionMembershipConverter.java @@ -77,6 +77,7 @@ public B getNewBean(Class beanClass, collectionProperties.setAdditionalProperties(this.removeAdditionalProperties(instanceProperties)); collectionProperties.setName(this.removeName(instanceProperties)); collectionProperties.setDescription(this.removeDescription(instanceProperties)); + collectionProperties.setCollectionType(this.removeCollectionType(instanceProperties)); collectionProperties.setEffectiveFrom(instanceProperties.getEffectiveFromTime()); collectionProperties.setEffectiveTo(instanceProperties.getEffectiveToTime()); diff --git a/open-metadata-implementation/access-services/dev-ops/dev-ops-api/src/main/java/org/odpi/openmetadata/accessservices/devops/properties/ContactMethodType.java b/open-metadata-implementation/access-services/dev-ops/dev-ops-api/src/main/java/org/odpi/openmetadata/accessservices/devops/properties/ContactMethodType.java index 2193e9a02a5..d605ab47ae6 100644 --- a/open-metadata-implementation/access-services/dev-ops/dev-ops-api/src/main/java/org/odpi/openmetadata/accessservices/devops/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/dev-ops/dev-ops-api/src/main/java/org/odpi/openmetadata/accessservices/devops/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,21 +23,43 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; - private int openTypeOrdinal; + private final int openTypeOrdinal; private final int ordinal; private final String name; diff --git a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionMemberStatus.java b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionMemberStatus.java new file mode 100644 index 00000000000..00ae5d86682 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionMemberStatus.java @@ -0,0 +1,155 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalarchitecture.properties; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.io.Serializable; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * CollectionMemberStatus specifies the the status of the member in a collection. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public enum CollectionMemberStatus implements Serializable +{ + /** + * The status of the member is not known or not specified. This is the default value. + */ + UNKNOWN (0, 0, "Unknown", "The status of the member is not known or not specified. This is the default value."), + + /** + * The member was added by a discovery process. + */ + DISCOVERED (1, 1, "Discovered", "The member was added by a discovery process."), + + /** + * The member was proposed by a consumer. + */ + PROPOSED (2, 2, "Proposed", "The member was proposed by a consumer."), + + /** + * The member was imported from another system. + */ + IMPORTED (3, 3, "Imported", "The member was imported from another system."), + + /** + * The member has been validated by a custodian/steward/approver and can be trusted. + */ + VALIDATED (4, 4, "Validated", "The member has been validated by a custodian/steward/approver and can be trusted."), + + /** + * The membership has been deprecated. Consider stopping using it. + */ + DEPRECATED (5, 5, "Deprecated", "The membership has been deprecated. Consider stopping using it."), + + /** + * The membership is obsolete and should not be used. + */ + OBSOLETE (6, 6, "Obsolete", "The membership is obsolete and should not be used."), + + /** + * The membership has a different status not covered by the open metadata types. + */ + OTHER (99, 99, "Other", "The membership has a different status not covered by the open metadata types."); + + private static final long serialVersionUID = 1L; + + private static final String ENUM_TYPE_GUID = "a3bdb2ac-c28e-4e5a-8ab7-76aa01038832"; + private static final String ENUM_TYPE_NAME = "MembershipStatus"; + + private final int openTypeOrdinal; + + private final int ordinal; + private final String name; + private final String description; + + + /** + * Default constructor for the enumeration. + * + * @param ordinal numerical representation of the enumeration + * @param openTypeOrdinal code number from the equivalent Enum Type + * @param name default string name of the enumeration + * @param description default string description of the enumeration + */ + CollectionMemberStatus(int ordinal, + int openTypeOrdinal, + String name, + String description) + { + this.ordinal = ordinal; + this.openTypeOrdinal = openTypeOrdinal; + this.name = name; + this.description = description; + } + + + /** + * Return the numeric representation of the enumeration. + * + * @return int ordinal + */ + public int getOrdinal() { return ordinal; } + + + /** + * Return the default name of the enumeration. + * + * @return String name + */ + public String getName() { return name; } + + + /** + * Return the default description of the enumeration. + * + * @return String description + */ + public String getDescription() { return description; } + + + /** + * Return the code for this enum that comes from the Open Metadata Type that this enum represents. + * + * @return int code number + */ + public int getOpenTypeOrdinal() + { + return openTypeOrdinal; + } + + + /** + * Return the unique identifier for the open metadata enum type that this enum class represents. + * + * @return string guid + */ + public String getOpenTypeGUID() { return ENUM_TYPE_GUID; } + + + /** + * Return the unique name for the open metadata enum type that this enum class represents. + * + * @return string name + */ + public String getOpenTypeName() { return ENUM_TYPE_NAME; } + + + /** + * toString() JSON-style + * + * @return string description + */ + @Override + public String toString() + { + return "CollectionMemberStatus : " + name; + } +} diff --git a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionMembershipProperties.java b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionMembershipProperties.java new file mode 100644 index 00000000000..83bd2b66ed0 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionMembershipProperties.java @@ -0,0 +1,392 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalarchitecture.properties; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.util.Objects; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * CollectionMember describes a member of a collection. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class CollectionMembershipProperties extends RelationshipProperties +{ + private String membershipRationale = null; + private String createdBy = null; + private String expression = null; + private int confidence = 0; + private CollectionMemberStatus status = null; + private String userDefinedStatus = null; + private String steward = null; + private String stewardTypeName = null; + private String stewardPropertyName = null; + private String source = null; + private String notes = null; + + + + /** + * Default constructor + */ + public CollectionMembershipProperties() + { + super(); + } + + + /** + * Copy/clone constructor + * + * @param template object to copy + */ + public CollectionMembershipProperties(CollectionMembershipProperties template) + { + super(template); + + if (template != null) + { + membershipRationale = template.getMembershipRationale(); + createdBy = template.getCreatedBy(); + confidence = template.getConfidence(); + expression = template.getExpression(); + status = template.getStatus(); + userDefinedStatus = template.getUserDefinedStatus(); + source = template.getSource(); + steward = template.getSteward(); + stewardTypeName = template.getStewardTypeName(); + stewardPropertyName = template.getStewardPropertyName(); + notes = template.getNotes(); + } + } + + + /** + * Return the rationale or role of the asset in this collection. + * + * @return text + */ + public String getMembershipRationale() + { + return membershipRationale; + } + + + /** + * Set up the rationale or role of the asset in this collection. + * + * @param membershipRationale text + */ + public void setMembershipRationale(String membershipRationale) + { + this.membershipRationale = membershipRationale; + } + + + /** + * Return the identifier of the person/process that created this membership. The userId of the creator + * is automatically captured. This field can be used to add additional information about the creator. + * For example, this could be the identifier of a process instance that created the membership relationship. + * + * @return string + */ + public String getCreatedBy() + { + return createdBy; + } + + + /** + * Set up the identifier of the person/process that created this membership. The userId of the creator + * is automatically captured. This field can be used to add additional information about the creator. + * For example, this could be the identifier of a process instance that created the membership relationship. + * + * @param createdBy string + */ + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + + /** + * Return the expression used to determine the membership. This is used by automated processes that are determining + * membership through one or more matching algorithms. This string helps the steward understand the type of match made. + * + * @return string + */ + public String getExpression() + { + return expression; + } + + /** + * Set up the expression used to determine the membership. This is used by automated processes that are determining + * membership through one or more matching algorithms. This string helps the steward understand the type of match made. + * + * @param expression string + */ + public void setExpression(String expression) + { + this.expression = expression; + } + + + /** + * Return the confidence level (0-100) that the matching is correct. + * + * @return int + */ + public int getConfidence() + { + return confidence; + } + + + /** + * Set up the confidence level (0-100) that the matching is correct. + * + * @param confidence int + */ + public void setConfidence(int confidence) + { + this.confidence = confidence; + } + + + /** + * Return the status of the membership in the collection. + * + * @return enum + */ + public CollectionMemberStatus getStatus() + { + return status; + } + + + /** + * Set up the status of the membership in the collection. + * + * @param status enum + */ + public void setStatus(CollectionMemberStatus status) + { + this.status = status; + } + + + /** + * Return the status of the membership in the collection. This status is controlled by the local deployment. + * + * @return string + */ + public String getUserDefinedStatus() + { + return userDefinedStatus; + } + + + /** + * Set up the status of the membership in the collection. This status is controlled by the local deployment. + * + * @param userDefinedStatus string + */ + public void setUserDefinedStatus(String userDefinedStatus) + { + this.userDefinedStatus = userDefinedStatus; + } + + + /** + * Return the source of information that determined the membership. + * + * @return string + */ + public String getSource() + { + return source; + } + + + /** + * Set up the source of information that determined the membership. + * + * @param source string + */ + public void setSource(String source) + { + this.source = source; + } + + + /** + * Returns the id of the steward responsible for the mapping. + * + * @return String id + */ + public String getSteward() + { + return steward; + } + + + /** + * Set up the id of the steward responsible for the mapping. + * + * @param steward String id + */ + public void setSteward(String steward) + { + this.steward = steward; + } + + + /** + * Return the type of element that describes the steward. + * + * @return type name + */ + public String getStewardTypeName() + { + return stewardTypeName; + } + + + /** + * Set up the type of element that describes the steward. + * + * @param stewardTypeName type name + */ + public void setStewardTypeName(String stewardTypeName) + { + this.stewardTypeName = stewardTypeName; + } + + + /** + * Return the name of the property that holds the steward's identifier. + * + * @return property name + */ + public String getStewardPropertyName() + { + return stewardPropertyName; + } + + + /** + * Set up the name of the property that holds the steward's identifier. + * + * @param stewardPropertyName property name + */ + public void setStewardPropertyName(String stewardPropertyName) + { + this.stewardPropertyName = stewardPropertyName; + } + + + /** + * Return the additional values associated with the symbolic name. + * + * @return string text + */ + public String getNotes() + { + return notes; + } + + + /** + * Set up the additional values associated with the symbolic name. + * + * @param notes string text + */ + public void setNotes(String notes) + { + this.notes = notes; + } + + + /** + * JSON-style toString + * + * @return return string containing the property names and values + */ + @Override + public String toString() + { + return "CollectionMembershipProperties{" + + "membershipRationale='" + membershipRationale + '\'' + + ", createdBy='" + createdBy + '\'' + + ", expression='" + expression + '\'' + + ", confidence=" + confidence + + ", status=" + status + + ", userDefinedStatus='" + userDefinedStatus + '\'' + + ", steward='" + steward + '\'' + + ", stewardTypeName='" + stewardTypeName + '\'' + + ", stewardPropertyName='" + stewardPropertyName + '\'' + + ", source='" + source + '\'' + + ", notes='" + notes + '\'' + + ", effectiveFrom=" + getEffectiveFrom() + + ", effectiveTo=" + getEffectiveTo() + + ", extendedProperties=" + getExtendedProperties() + + '}'; + } + + + /** + * Return comparison result based on the content of the properties. + * + * @param objectToCompare test object + * @return result of comparison + */ + @Override + public boolean equals(Object objectToCompare) + { + if (this == objectToCompare) + { + return true; + } + if (objectToCompare == null || getClass() != objectToCompare.getClass()) + { + return false; + } + if (!super.equals(objectToCompare)) + { + return false; + } + CollectionMembershipProperties that = (CollectionMembershipProperties) objectToCompare; + return confidence == that.confidence && + Objects.equals(membershipRationale, that.membershipRationale) + && Objects.equals(createdBy, that.createdBy) && + Objects.equals(expression, that.expression) && + status == that.status && + Objects.equals(userDefinedStatus, that.userDefinedStatus) + && Objects.equals(steward, that.steward) && + Objects.equals(stewardTypeName, that.stewardTypeName) && + Objects.equals(stewardPropertyName, that.stewardPropertyName) && + Objects.equals(source, that.source) && + Objects.equals(notes, that.notes); + } + + + /** + * Return hash code for this object + * + * @return int hash code + */ + @Override + public int hashCode() + { + return Objects.hash(super.hashCode(), membershipRationale, createdBy, expression, confidence, status, userDefinedStatus, steward, + stewardTypeName, stewardPropertyName, source, notes); + } +} diff --git a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionOrder.java b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionOrder.java index 78a2e6bdffb..13fafc930c9 100644 --- a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionOrder.java +++ b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionOrder.java @@ -28,11 +28,34 @@ @JsonIgnoreProperties(ignoreUnknown=true) public enum CollectionOrder implements Serializable { + /** + * Order the collection by the names of the members in the collection. + */ NAME (0, 0, "Name", "Order the collection by the names of the members in the collection."), - OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection (assets only)."), + + /** + * Order the collection by the owners of the members in the collection. + */ + OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection."), + + /** + * Order the collection by the date that the members were added to the collection. + */ DATE_ADDED (2, 2, "Date Added", "Order the collection by the date that the members were added to the collection."), + + /** + * Order the collection by the date that the members were updated in the collection. + */ DATE_UPDATED (3, 3, "Date Updated", "Order the collection by the date that the members were updated in the collection."), + + /** + * Order the collection by the date that the members were created in the collection. + */ DATE_CREATED (4, 4, "Date Created", "Order the collection by the date that the members were created in the collection."), + + /** + * Order the collection by another value. + */ OTHER (99, 99, "Other", "Order the collection by another value."); private static final long serialVersionUID = 1L; diff --git a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionProperties.java b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionProperties.java index ae0e7fc891b..4ca706bd6c6 100644 --- a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionProperties.java +++ b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionProperties.java @@ -19,10 +19,9 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class CollectionProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String name = null; private String description = null; + private String collectionType = null; private CollectionOrder collectionOrdering = null; private String orderPropertyName = null; @@ -49,6 +48,7 @@ public CollectionProperties(CollectionProperties template) { this.name = template.getName(); this.description = template.getDescription(); + this.collectionType = template.getCollectionType(); this.collectionOrdering = template.getCollectionOrdering(); this.orderPropertyName = template.getOrderPropertyName(); } @@ -99,6 +99,28 @@ public void setDescription(String description) } + /** + * Return a descriptive name for the collection's type. + * + * @return string name + */ + public String getCollectionType() + { + return collectionType; + } + + + /** + * Set up a descriptive name for the collection's type. + * + * @param collectionType string name + */ + public void setCollectionType(String collectionType) + { + this.collectionType = collectionType; + } + + /** * Return the property to use to determine the order that assets are returned. * @@ -154,6 +176,7 @@ public String toString() return "CollectionProperties{" + "name='" + name + '\'' + ", description='" + description + '\'' + + ", collectionType='" + collectionType + '\'' + ", collectionOrdering=" + collectionOrdering + ", orderPropertyName='" + orderPropertyName + '\'' + ", qualifiedName='" + getQualifiedName() + '\'' + @@ -191,6 +214,7 @@ public boolean equals(Object objectToCompare) return getCollectionOrdering() == that.getCollectionOrdering() && Objects.equals(getName(), that.getName()) && Objects.equals(getDescription(), that.getDescription()) && + Objects.equals(getCollectionType(), that.getCollectionType()) && Objects.equals(getOrderPropertyName(), that.getOrderPropertyName()); } @@ -203,6 +227,6 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - return Objects.hash(super.hashCode(), getName(), getDescription(), getCollectionOrdering(), getOrderPropertyName()); + return Objects.hash(super.hashCode(), getName(), getDescription(), getCollectionType(), getCollectionOrdering(), getOrderPropertyName()); } } diff --git a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionStatus.java b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionStatus.java index 04aa39e9396..1b190bfd4b9 100644 --- a/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionStatus.java +++ b/open-metadata-implementation/access-services/digital-architecture/digital-architecture-api/src/main/java/org/odpi/openmetadata/accessservices/digitalarchitecture/properties/CollectionStatus.java @@ -27,10 +27,25 @@ @JsonIgnoreProperties(ignoreUnknown=true) public enum CollectionStatus implements Serializable { - ACTIVE (0, "Active", "all the collection members with a current effective dates (default)."), - PAST (1, "Past", "all the collection members that have effective dates in the past."), - FUTURE (2, "Future", "all the collection members that become effective in the future."), - ALL (99, "All", "all the collection members linked to the collection irrespective of their effective dates."); + /** + * All the collection members with a current effective dates (default). + */ + ACTIVE (0, "Active", "All the collection members with a current effective dates (default)."), + + /** + * All the collection members that have effective dates in the past. + */ + PAST (1, "Past", "All the collection members that have effective dates in the past."), + + /** + * All the collection members that become effective in the future. + */ + FUTURE (2, "Future", "All the collection members that become effective in the future."), + + /** + * All the collection members linked to the collection irrespective of their effective dates. + */ + ALL (99, "All", "All the collection members linked to the collection irrespective of their effective dates."); private static final long serialVersionUID = 1L; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/api/CollectionsInterface.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/api/CollectionsInterface.java index 17bf351803a..035ba7fb271 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/api/CollectionsInterface.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/api/CollectionsInterface.java @@ -5,16 +5,19 @@ import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.CollectionElement; import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.CollectionMember; -import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionOrder; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionMembershipProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.DigitalProductProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.TemplateProperties; import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException; import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; import org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException; import java.util.List; -import java.util.Map; /** - * The CollectionsInterface adds methods for managing collections. + * The CollectionsInterface adds methods for managing collections. Collections are managed lists of elements. They can be used to create a folder + * type hierarchy for, say, assets and digital products. They are used to represent digital products and lists of favourites. */ public interface CollectionsInterface { @@ -23,7 +26,8 @@ public interface CollectionsInterface * * @param userId userId of user making request * @param parentGUID unique identifier of referenceable object (typically a personal profile, project or - * community) that the collections hang off of. + * community) that the collections hang off of + * @param collectionType filter response by collection type - if null, any value will do * @param startFrom index of the list to start from (0 for start) * @param pageSize maximum number of elements to return * @@ -33,19 +37,107 @@ public interface CollectionsInterface * @throws PropertyServerException there is a problem retrieving information from the property server(s). * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. */ - List getCollections(String userId, - String parentGUID, - int startFrom, - int pageSize) throws InvalidParameterException, - PropertyServerException, - UserNotAuthorizedException; + List getLinkedCollections(String userId, + String parentGUID, + String collectionType, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + + + /** + * Returns the list of collections with a particular classification. + * + * @param userId userId of user making request + * @param classificationName name of the classification - if null, all collections are returned + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + List getClassifiedCollections(String userId, + String classificationName, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + + + /** + * Returns the list of collections matching the search string - this is coded as a regular expression. + * + * @param userId userId of user making request + * @param searchString string to search for + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + List findCollections(String userId, + String searchString, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + + + /** + * Returns the list of collections with a particular name. + * + * @param userId userId of user making request + * @param name name of the collections to return - match is full text match in qualifiedName or name + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + List getCollectionsByName(String userId, + String name, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + + /** + * Returns the list of collections with a particular collectionType. This is an optional text field in the collection element. + * + * @param userId userId of user making request + * @param collectionType the collection type value to match on. If it is null, all collections with a null collectionType are returned + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + List getCollectionsByType(String userId, + String collectionType, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; /** * Return the properties of a specific collection. * - * @param userId userId of user making request. - * @param collectionGUID unique identifier of the required connection. + * @param userId userId of user making request + * @param collectionGUID unique identifier of the required collection * * @return collection properties * @@ -63,11 +155,8 @@ CollectionElement getCollection(String userId, * Create a new generic collection. * * @param userId userId of user making request. - * @param qualifiedName unique name of the collection. - * @param displayName short displayable name for the collection. - * @param description description of the collection. - * @param collectionUse description of how the collection is to be used. - * @param additionalProperties additional arbitrary properties. + * @param optionalClassification classification of the collections - typically RootCollection, Set or Folder + * @param properties properties for the collection. * * @return unique identifier of the newly created Collection * @@ -75,26 +164,43 @@ CollectionElement getCollection(String userId, * @throws PropertyServerException there is a problem retrieving information from the property server(s). * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. */ - String createCollection(String userId, - String qualifiedName, - String displayName, - String description, - String collectionUse, - Map additionalProperties) throws InvalidParameterException, - PropertyServerException, - UserNotAuthorizedException; + String createCollection(String userId, + String optionalClassification, + CollectionProperties properties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + /** - * Create a collection that acts like a folder with an order. + * Create a new metadata element to represent a collection using an existing metadata element as a template. + * The template defines additional classifications and relationships that should be added to the new collection. + * + * @param userId calling user + * @param templateGUID unique identifier of the metadata element to copy + * @param templateProperties properties that override the template + * + * @return unique identifier of the new metadata element + * + * @throws InvalidParameterException one of the parameters is invalid + * @throws UserNotAuthorizedException the user is not authorized to issue this request + * @throws PropertyServerException there is a problem reported in the open metadata server(s) + */ + String createCollectionFromTemplate(String userId, + String templateGUID, + TemplateProperties templateProperties) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException; + + + + /** + * Create a new collection that represents a digital product. * * @param userId userId of user making request. - * @param qualifiedName unique name of the collection. - * @param displayName short displayable name for the collection. - * @param description description of the collection. - * @param collectionUse description of how the collection will be used. - * @param collectionOrder description of how the members in the collection should be organized. - * @param additionalProperties additional arbitrary properties. + * @param digitalServiceGUID unique identifier of owning digital service (optional) + * @param collectionProperties properties for the collection. + * @param digitalProductProperties properties for the attached DigitalProduct classification * * @return unique identifier of the newly created Collection * @@ -102,48 +208,63 @@ String createCollection(String userId, * @throws PropertyServerException there is a problem retrieving information from the property server(s). * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. */ - String createFolder(String userId, - String qualifiedName, - String displayName, - String description, - String collectionUse, - CollectionOrder collectionOrder, - Map additionalProperties) throws InvalidParameterException, - PropertyServerException, - UserNotAuthorizedException; + String createDigitalProduct(String userId, + String digitalServiceGUID, + CollectionProperties collectionProperties, + DigitalProductProperties digitalProductProperties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + /** - * Create a collection that acts like a set (this does not allow duplicate entries). + * Update the properties of a collection. * * @param userId userId of user making request. - * @param qualifiedName unique name of the collection. - * @param displayName short displayable name for the collection. - * @param description description of the collection. - * @param collectionUse description of how the collection will be used. - * @param additionalProperties additional arbitrary properties. + * @param collectionGUID unique identifier of the collection (returned from create) + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param properties properties for the collection. * - * @return unique identifier of the newly created Collection + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + void updateCollection(String userId, + String collectionGUID, + boolean replaceAllProperties, + CollectionProperties properties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + + + /** + * Update the properties of the DigitalProduct classification attached to a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection (returned from create) + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param properties properties for the DigitalProduct classification. * * @throws InvalidParameterException one of the parameters is invalid. * @throws PropertyServerException there is a problem retrieving information from the property server(s). * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. */ - String createSet(String userId, - String qualifiedName, - String displayName, - String description, - String collectionUse, - Map additionalProperties) throws InvalidParameterException, - PropertyServerException, - UserNotAuthorizedException; + void updateDigitalProduct(String userId, + String collectionGUID, + boolean replaceAllProperties, + DigitalProductProperties properties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; /** - * Connect an existing collection to an anchor point. + * Connect an existing collection to an element using the ResourceList relationship (0019). * * @param userId userId of user making request * @param collectionGUID unique identifier of the collection * @param parentGUID unique identifier of referenceable object that the collection should be attached to + * @param collectionUse description of how the collection will be used. * @param makeAnchor like the lifecycle of the collection to that of the parent so that if the parent is deleted, so is the collection * * @throws InvalidParameterException one of the parameters is null or invalid. @@ -153,6 +274,7 @@ String createSet(String userId, void attachCollection(String userId, String collectionGUID, String parentGUID, + String collectionUse, boolean makeAnchor) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException; @@ -219,17 +341,42 @@ List getCollectionMembers(String userId, * * @param userId userId of user making request. * @param collectionGUID unique identifier of the collection. + * @param membershipProperties properties describing the membership characteristics. * @param elementGUID unique identifier of the element. * * @throws InvalidParameterException one of the parameters is invalid. * @throws PropertyServerException there is a problem updating information in the property server(s). * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. */ - void addToCollection(String userId, - String collectionGUID, - String elementGUID) throws InvalidParameterException, - PropertyServerException, - UserNotAuthorizedException; + void addToCollection(String userId, + String collectionGUID, + CollectionMembershipProperties membershipProperties, + String elementGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; + + + /** + * Update an element's membership to a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param membershipProperties properties describing the membership characteristics. + * @param elementGUID unique identifier of the element. + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem updating information in the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + void updateCollectionMembership(String userId, + String collectionGUID, + boolean replaceAllProperties, + CollectionMembershipProperties membershipProperties, + String elementGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException; /** diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceEventHeader.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceEventHeader.java index cab0f761425..f5c4f3fb044 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceEventHeader.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceEventHeader.java @@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -20,11 +19,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public abstract class DigitalServiceEventHeader implements Serializable +public abstract class DigitalServiceEventHeader { - private static final long serialVersionUID = 1L; - - private long eventVersionId = 1L; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEvent.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEvent.java index 75f68748d54..2e42cb23855 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEvent.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEvent.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class DigitalServiceOutboundEvent extends DigitalServiceEventHeader { - private static final long serialVersionUID = 1L; - /* * Always set up */ diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEventType.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEventType.java index 5b95170c34b..1befbe1755d 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEventType.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/events/DigitalServiceOutboundEventType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -17,24 +15,69 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum DigitalServiceOutboundEventType implements Serializable +public enum DigitalServiceOutboundEventType { + /** + * An event that is not recognized by the local server. + */ UNKNOWN_EVENT (0, "Unknown Event", "An event that is not recognized by the local server."), + + /** + * An element has been distributed around the cohort - could be for the first time. + */ REFRESH_ELEMENT_EVENT (1, "Refresh Element", "An element has been distributed around the cohort - could be for the first time."), + + /** + * A new element has been created. + */ NEW_ELEMENT_CREATED (2, "New Element", "A new element has been created."), + + /** + * An element's properties has been updated. + */ ELEMENT_UPDATED (3, "Element Updated", "An element's properties has been updated."), + + /** + * An element and all its anchored elements have been deleted. + */ ELEMENT_DELETED (4, "Element Deleted", "An element and all its anchored elements have been deleted."), + + /** + * A classification has been added to an element. + */ ELEMENT_CLASSIFIED (5, "Element Classified", "A classification has been added to an element."), + + /** + * The properties for a classification attached to an element have been updated. + */ ELEMENT_RECLASSIFIED (6, "Element Reclassified", "The properties for a classification attached to an element have been updated."), + + /** + * A classification has been removed from an element. + */ ELEMENT_DECLASSIFIED (7, "Element Declassified", "A classification has been removed from an element."), + + /** + * An element that was once deleted has been restored. + */ ELEMENT_RESTORED (8, "Element Restored", "An element that was once deleted has been restored."), + + /** + * An element's GUID has changed. + */ ELEMENT_GUID_CHANGED (9, "Element GUID Changed", "An element's GUID has changed."), + + /** + * An element's type has changed. + */ ELEMENT_TYPE_CHANGED (10, "Element Type Changed", "An element's type has changed."), + + /** + * An element's home has changed. + */ ELEMENT_HOME_CHANGED (11, "Element Home Changed", "An element's home has changed."), ; - private static final long serialVersionUID = 1L; - private final int eventTypeCode; private final String eventTypeName; private final String eventTypeDescription; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/AgreementRoleAppointee.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/AgreementRoleAppointee.java index a2b8aa51214..1b45de2214f 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/AgreementRoleAppointee.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/AgreementRoleAppointee.java @@ -22,8 +22,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class AgreementRoleAppointee extends PersonRoleAppointee { - private static final long serialVersionUID = 1L; - private AgreementRoleProperties agreementRoleProperties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/Appointee.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/Appointee.java index 4a074501703..425c0e58843 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/Appointee.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/Appointee.java @@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Date; import java.util.Objects; @@ -23,10 +22,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class Appointee implements Serializable, MetadataElement +public class Appointee implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private ProfileElement profile = null; private Date startDate = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/BusinessCapabilityElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/BusinessCapabilityElement.java index f18259de4c3..4beaaded989 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/BusinessCapabilityElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/BusinessCapabilityElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.BusinessCapabilityProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class BusinessCapabilityElement implements MetadataElement, Serializable +public class BusinessCapabilityElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private BusinessCapabilityProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionElement.java index 517f5cf2c98..144fec90aa7 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class CollectionElement implements MetadataElement, Serializable +public class CollectionElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private CollectionProperties properties = null; private RelatedElement relatedElement = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionMember.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionMember.java index 761841756a8..1da34ebf4d7 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionMember.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/CollectionMember.java @@ -5,11 +5,11 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import org.odpi.openmetadata.accessservices.digitalservice.properties.ReferenceableProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionMembershipProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; -import java.io.Serializable; -import java.util.Date; +import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -20,14 +20,11 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class CollectionMember implements MetadataElement, Serializable +public class CollectionMember implements MetadataElement { - private static final long serialVersionUID = 1L; - - private ElementHeader elementHeader = null; - private Date dateAddedToCollection = null; - private String membershipRationale = null; - private ReferenceableProperties properties = null; + private ElementHeader elementHeader = null; + private CollectionMembershipProperties membershipProperties = null; + private ElementStub member = null; /** @@ -49,15 +46,14 @@ public CollectionMember(CollectionMember template) if (template != null) { this.elementHeader = template.getElementHeader(); - this.dateAddedToCollection = template.getDateAddedToCollection(); - this.membershipRationale = template.getMembershipRationale(); - this.properties = template.getProperties(); + this.membershipProperties = template.getMembershipProperties(); + this.member = template.getMember(); } } /** - * Return the element header associated with the properties. + * Return the element header associated with the relationship. * * @return element header object */ @@ -69,7 +65,7 @@ public ElementHeader getElementHeader() /** - * Set up the element header associated with the properties. + * Set up the element header associated with the relationship. * * @param elementHeader element header object */ @@ -81,75 +77,46 @@ public void setElementHeader(ElementHeader elementHeader) /** - * Return the date that the asset was added to this collection. - * - * @return date - */ - public Date getDateAddedToCollection() - { - if (dateAddedToCollection == null) - { - return null; - } - else - { - return new Date(dateAddedToCollection.getTime()); - } - } - - - /** - * Set up the date that the asset was added to this collection. - * - * @param dateAddedToCollection date - */ - public void setDateAddedToCollection(Date dateAddedToCollection) - { - this.dateAddedToCollection = dateAddedToCollection; - } - - - /** - * Return the rationale or role of the asset in this collection. + * Return the properties from the membership relationship. * - * @return text + * @return membership properties */ - public String getMembershipRationale() + public CollectionMembershipProperties getMembershipProperties() { - return membershipRationale; + return membershipProperties; } /** - * Set up the rationale or role of the asset in this collection. + * Set up the properties from the membership relationship. * - * @param membershipRationale text + * @param membershipProperties membership properties */ - public void setMembershipRationale(String membershipRationale) + public void setMembershipProperties(CollectionMembershipProperties membershipProperties) { - this.membershipRationale = membershipRationale; + this.membershipProperties = membershipProperties; } /** - * Return the properties of the element. + * Return the properties of the member. * - * @return properties + * @return member properties */ - public ReferenceableProperties getProperties() + public ElementStub getMember() { - return properties; + return member; } /** - * Set up the properties of the element. + * Set up the properties of the member. * - * @param properties properties + * @param member properties */ - public void setProperties(ReferenceableProperties properties) + public void setMember(ElementStub member) { - this.properties = properties; + this.member = member; } @@ -164,9 +131,8 @@ public String toString() { return "CollectionMember{" + "elementHeader=" + elementHeader + - ", dateAddedToCollection=" + dateAddedToCollection + - ", membershipRationale='" + membershipRationale + '\'' + - ", properties=" + properties + + ", membershipProperties=" + membershipProperties + + ", member=" + member + '}'; } @@ -184,26 +150,13 @@ public boolean equals(Object objectToCompare) { return true; } - if (! (objectToCompare instanceof CollectionMember)) - { - return false; - } - - CollectionMember that = (CollectionMember) objectToCompare; - - if (elementHeader != null ? ! elementHeader.equals(that.elementHeader) : that.elementHeader != null) - { - return false; - } - if (dateAddedToCollection != null ? ! dateAddedToCollection.equals(that.dateAddedToCollection) : that.dateAddedToCollection != null) - { - return false; - } - if (membershipRationale != null ? ! membershipRationale.equals(that.membershipRationale) : that.membershipRationale != null) + if (! (objectToCompare instanceof CollectionMember that)) { return false; } - return properties != null ? properties.equals(that.properties) : that.properties == null; + return Objects.equals(elementHeader, that.elementHeader) && + Objects.equals(membershipProperties, that.membershipProperties) && + Objects.equals(member, that.member); } @@ -215,10 +168,6 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - int result = elementHeader != null ? elementHeader.hashCode() : 0; - result = 31 * result + (dateAddedToCollection != null ? dateAddedToCollection.hashCode() : 0); - result = 31 * result + (membershipRationale != null ? membershipRationale.hashCode() : 0); - result = 31 * result + (properties != null ? properties.hashCode() : 0); - return result; + return Objects.hash(elementHeader, membershipProperties, member); } } diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ContactMethodElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ContactMethodElement.java index 2dc0b211583..4e0ebf7822c 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ContactMethodElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ContactMethodElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.ContactMethodProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class ContactMethodElement implements MetadataElement, Serializable +public class ContactMethodElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private ContactMethodProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/DigitalServiceElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/DigitalServiceElement.java index 0cb6c8b68c5..297f7f00c4b 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/DigitalServiceElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/DigitalServiceElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.DigitalServiceProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class DigitalServiceElement implements MetadataElement, Serializable +public class DigitalServiceElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private DigitalServiceProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleAppointee.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleAppointee.java index 1608b663c4d..cd8ba226716 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleAppointee.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleAppointee.java @@ -31,8 +31,6 @@ }) public class PersonRoleAppointee extends PersonRoleElement { - private static final long serialVersionUID = 1L; - private List currentAppointees = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleElement.java index f88f43ae4e5..efb8336865c 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.PersonRoleProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class PersonRoleElement implements MetadataElement, Serializable +public class PersonRoleElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private PersonRoleProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleHistory.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleHistory.java index f5fd089343f..c334b821375 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleHistory.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/PersonRoleHistory.java @@ -21,8 +21,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class PersonRoleHistory extends PersonRoleAppointee { - private static final long serialVersionUID = 1L; - private List predecessors = null; private List successors = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ProfileElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ProfileElement.java index 6708d8c26c2..62793b1bf3e 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ProfileElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/ProfileElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.ActorProfileProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.List; import java.util.Objects; @@ -23,10 +22,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class ProfileElement implements MetadataElement, Serializable +public class ProfileElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private ActorProfileProperties profileProperties = null; private List userIdentities = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/RelatedElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/RelatedElement.java index deabba3435e..e4a54c32f5f 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/RelatedElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/RelatedElement.java @@ -10,7 +10,6 @@ import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -23,10 +22,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class RelatedElement implements Serializable +public class RelatedElement { - private static final long serialVersionUID = 1L; - private ElementHeader relationshipHeader = null; private RelationshipProperties relationshipProperties = null; private ElementStub relatedElement = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/TeamProfileElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/TeamProfileElement.java index 02a9c040f0a..203aac0503b 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/TeamProfileElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/TeamProfileElement.java @@ -10,7 +10,6 @@ import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; -import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -24,10 +23,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class TeamProfileElement implements MetadataElement, Serializable +public class TeamProfileElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private TeamProfileProperties properties = null; private ElementStub superTeam = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/UserIdentityElement.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/UserIdentityElement.java index 5d3b281bfcc..48823f37899 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/UserIdentityElement.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/metadataelements/UserIdentityElement.java @@ -9,7 +9,6 @@ import org.odpi.openmetadata.accessservices.digitalservice.properties.UserIdentityProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class UserIdentityElement implements MetadataElement, Serializable +public class UserIdentityElement implements MetadataElement { - private static final long serialVersionUID = 1L; - private ElementHeader elementHeader = null; private UserIdentityProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ActorProfileProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ActorProfileProperties.java index 88d024b41ed..40d733c043c 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ActorProfileProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ActorProfileProperties.java @@ -30,8 +30,6 @@ public class ActorProfileProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String knownName = null; private String description = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementProperties.java index ea55af820b6..d4619058c33 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementProperties.java @@ -28,8 +28,6 @@ }) public class AgreementProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String displayName = null; private String description = null; private String agreementType = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementRoleProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementRoleProperties.java index 194a96c0b89..0ff1d67ea58 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementRoleProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/AgreementRoleProperties.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class AgreementRoleProperties extends RelationshipProperties { - private static final long serialVersionUID = 1L; - private String roleName = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/BusinessCapabilityProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/BusinessCapabilityProperties.java index 314eb6afb46..1b818eb90b6 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/BusinessCapabilityProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/BusinessCapabilityProperties.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class BusinessCapabilityProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String displayName = null; private String description = null; private String identifier = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CertificationTypeProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CertificationTypeProperties.java index 54c37fcb011..5cd43ab8926 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CertificationTypeProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CertificationTypeProperties.java @@ -22,8 +22,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class CertificationTypeProperties extends GovernanceDefinitionProperties { - private static final long serialVersionUID = 1L; - private String details = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ClassificationProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ClassificationProperties.java index e21cd35f1db..585590c18ef 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ClassificationProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ClassificationProperties.java @@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -31,10 +30,8 @@ { @JsonSubTypes.Type(value = DigitalProductProperties.class, name = "DigitalProductProperties"), }) -public class ClassificationProperties implements Serializable +public class ClassificationProperties { - private static final long serialVersionUID = 1L; - private Date effectiveFrom = null; private Date effectiveTo = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionMemberStatus.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionMemberStatus.java new file mode 100644 index 00000000000..b776a979182 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionMemberStatus.java @@ -0,0 +1,152 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalservice.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; + +/** + * CollectionMemberStatus specifies the status of the member in a collection. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public enum CollectionMemberStatus +{ + /** + * The status of the member is not known or not specified. This is the default value. + */ + UNKNOWN (0, 0, "Unknown", "The status of the member is not known or not specified. This is the default value."), + + /** + * The member was added by a discovery process. + */ + DISCOVERED (1, 1, "Discovered", "The member was added by a discovery process."), + + /** + * The member was proposed by a consumer. + */ + PROPOSED (2, 2, "Proposed", "The member was proposed by a consumer."), + + /** + * The member was imported from another system. + */ + IMPORTED (3, 3, "Imported", "The member was imported from another system."), + + /** + * The member has been validated by a custodian/steward/approver and can be trusted. + */ + VALIDATED (4, 4, "Validated", "The member has been validated by a custodian/steward/approver and can be trusted."), + + /** + * The membership has been deprecated. Consider stopping using it. + */ + DEPRECATED (5, 5, "Deprecated", "The membership has been deprecated. Consider stopping using it."), + + /** + * The membership is obsolete and should not be used. + */ + OBSOLETE (6, 6, "Obsolete", "The membership is obsolete and should not be used."), + + /** + * The membership has a different status not covered by the open metadata types. + */ + OTHER (99, 99, "Other", "The membership has a different status not covered by the open metadata types."); + + + private static final String ENUM_TYPE_GUID = "a3bdb2ac-c28e-4e5a-8ab7-76aa01038832"; + private static final String ENUM_TYPE_NAME = "MembershipStatus"; + + private final int openTypeOrdinal; + + private final int ordinal; + private final String name; + private final String description; + + + /** + * Default constructor for the enumeration. + * + * @param ordinal numerical representation of the enumeration + * @param openTypeOrdinal code number from the equivalent Enum Type + * @param name default string name of the enumeration + * @param description default string description of the enumeration + */ + CollectionMemberStatus(int ordinal, + int openTypeOrdinal, + String name, + String description) + { + this.ordinal = ordinal; + this.openTypeOrdinal = openTypeOrdinal; + this.name = name; + this.description = description; + } + + + /** + * Return the numeric representation of the enumeration. + * + * @return int ordinal + */ + public int getOrdinal() { return ordinal; } + + + /** + * Return the default name of the enumeration. + * + * @return String name + */ + public String getName() { return name; } + + + /** + * Return the default description of the enumeration. + * + * @return String description + */ + public String getDescription() { return description; } + + + /** + * Return the code for this enum that comes from the Open Metadata Type that this enum represents. + * + * @return int code number + */ + public int getOpenTypeOrdinal() + { + return openTypeOrdinal; + } + + + /** + * Return the unique identifier for the open metadata enum type that this enum class represents. + * + * @return string guid + */ + public String getOpenTypeGUID() { return ENUM_TYPE_GUID; } + + + /** + * Return the unique name for the open metadata enum type that this enum class represents. + * + * @return string name + */ + public String getOpenTypeName() { return ENUM_TYPE_NAME; } + + + /** + * toString() JSON-style + * + * @return string description + */ + @Override + public String toString() + { + return "CollectionMemberStatus : " + name; + } +} diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionMembershipProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionMembershipProperties.java new file mode 100644 index 00000000000..ef0fcf844f1 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionMembershipProperties.java @@ -0,0 +1,392 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalservice.properties; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import java.util.Objects; + +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; +import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; + +/** + * CollectionMember describes a member of a collection. + */ +@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown=true) +public class CollectionMembershipProperties extends RelationshipProperties +{ + private String membershipRationale = null; + private String createdBy = null; + private String expression = null; + private int confidence = 0; + private CollectionMemberStatus status = null; + private String userDefinedStatus = null; + private String steward = null; + private String stewardTypeName = null; + private String stewardPropertyName = null; + private String source = null; + private String notes = null; + + + + /** + * Default constructor + */ + public CollectionMembershipProperties() + { + super(); + } + + + /** + * Copy/clone constructor + * + * @param template object to copy + */ + public CollectionMembershipProperties(CollectionMembershipProperties template) + { + super(template); + + if (template != null) + { + membershipRationale = template.getMembershipRationale(); + createdBy = template.getCreatedBy(); + confidence = template.getConfidence(); + expression = template.getExpression(); + status = template.getStatus(); + userDefinedStatus = template.getUserDefinedStatus(); + source = template.getSource(); + steward = template.getSteward(); + stewardTypeName = template.getStewardTypeName(); + stewardPropertyName = template.getStewardPropertyName(); + notes = template.getNotes(); + } + } + + + /** + * Return the rationale or role of the asset in this collection. + * + * @return text + */ + public String getMembershipRationale() + { + return membershipRationale; + } + + + /** + * Set up the rationale or role of the asset in this collection. + * + * @param membershipRationale text + */ + public void setMembershipRationale(String membershipRationale) + { + this.membershipRationale = membershipRationale; + } + + + /** + * Return the identifier of the person/process that created this membership. The userId of the creator + * is automatically captured. This field can be used to add additional information about the creator. + * For example, this could be the identifier of a process instance that created the membership relationship. + * + * @return string + */ + public String getCreatedBy() + { + return createdBy; + } + + + /** + * Set up the identifier of the person/process that created this membership. The userId of the creator + * is automatically captured. This field can be used to add additional information about the creator. + * For example, this could be the identifier of a process instance that created the membership relationship. + * + * @param createdBy string + */ + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + + /** + * Return the expression used to determine the membership. This is used by automated processes that are determining + * membership through one or more matching algorithms. This string helps the steward understand the type of match made. + * + * @return string + */ + public String getExpression() + { + return expression; + } + + /** + * Set up the expression used to determine the membership. This is used by automated processes that are determining + * membership through one or more matching algorithms. This string helps the steward understand the type of match made. + * + * @param expression string + */ + public void setExpression(String expression) + { + this.expression = expression; + } + + + /** + * Return the confidence level (0-100) that the matching is correct. + * + * @return int + */ + public int getConfidence() + { + return confidence; + } + + + /** + * Set up the confidence level (0-100) that the matching is correct. + * + * @param confidence int + */ + public void setConfidence(int confidence) + { + this.confidence = confidence; + } + + + /** + * Return the status of the membership in the collection. + * + * @return enum + */ + public CollectionMemberStatus getStatus() + { + return status; + } + + + /** + * Set up the status of the membership in the collection. + * + * @param status enum + */ + public void setStatus(CollectionMemberStatus status) + { + this.status = status; + } + + + /** + * Return the status of the membership in the collection. This status is controlled by the local deployment. + * + * @return string + */ + public String getUserDefinedStatus() + { + return userDefinedStatus; + } + + + /** + * Set up the status of the membership in the collection. This status is controlled by the local deployment. + * + * @param userDefinedStatus string + */ + public void setUserDefinedStatus(String userDefinedStatus) + { + this.userDefinedStatus = userDefinedStatus; + } + + + /** + * Return the source of information that determined the membership. + * + * @return string + */ + public String getSource() + { + return source; + } + + + /** + * Set up the source of information that determined the membership. + * + * @param source string + */ + public void setSource(String source) + { + this.source = source; + } + + + /** + * Returns the id of the steward responsible for the mapping. + * + * @return String id + */ + public String getSteward() + { + return steward; + } + + + /** + * Set up the id of the steward responsible for the mapping. + * + * @param steward String id + */ + public void setSteward(String steward) + { + this.steward = steward; + } + + + /** + * Return the type of element that describes the steward. + * + * @return type name + */ + public String getStewardTypeName() + { + return stewardTypeName; + } + + + /** + * Set up the type of element that describes the steward. + * + * @param stewardTypeName type name + */ + public void setStewardTypeName(String stewardTypeName) + { + this.stewardTypeName = stewardTypeName; + } + + + /** + * Return the name of the property that holds the steward's identifier. + * + * @return property name + */ + public String getStewardPropertyName() + { + return stewardPropertyName; + } + + + /** + * Set up the name of the property that holds the steward's identifier. + * + * @param stewardPropertyName property name + */ + public void setStewardPropertyName(String stewardPropertyName) + { + this.stewardPropertyName = stewardPropertyName; + } + + + /** + * Return the additional values associated with the symbolic name. + * + * @return string text + */ + public String getNotes() + { + return notes; + } + + + /** + * Set up the additional values associated with the symbolic name. + * + * @param notes string text + */ + public void setNotes(String notes) + { + this.notes = notes; + } + + + /** + * JSON-style toString + * + * @return return string containing the property names and values + */ + @Override + public String toString() + { + return "CollectionMembershipProperties{" + + "membershipRationale='" + membershipRationale + '\'' + + ", createdBy='" + createdBy + '\'' + + ", expression='" + expression + '\'' + + ", confidence=" + confidence + + ", status=" + status + + ", userDefinedStatus='" + userDefinedStatus + '\'' + + ", steward='" + steward + '\'' + + ", stewardTypeName='" + stewardTypeName + '\'' + + ", stewardPropertyName='" + stewardPropertyName + '\'' + + ", source='" + source + '\'' + + ", notes='" + notes + '\'' + + ", effectiveFrom=" + getEffectiveFrom() + + ", effectiveTo=" + getEffectiveTo() + + ", extendedProperties=" + getExtendedProperties() + + '}'; + } + + + /** + * Return comparison result based on the content of the properties. + * + * @param objectToCompare test object + * @return result of comparison + */ + @Override + public boolean equals(Object objectToCompare) + { + if (this == objectToCompare) + { + return true; + } + if (objectToCompare == null || getClass() != objectToCompare.getClass()) + { + return false; + } + if (!super.equals(objectToCompare)) + { + return false; + } + CollectionMembershipProperties that = (CollectionMembershipProperties) objectToCompare; + return confidence == that.confidence && + Objects.equals(membershipRationale, that.membershipRationale) + && Objects.equals(createdBy, that.createdBy) && + Objects.equals(expression, that.expression) && + status == that.status && + Objects.equals(userDefinedStatus, that.userDefinedStatus) + && Objects.equals(steward, that.steward) && + Objects.equals(stewardTypeName, that.stewardTypeName) && + Objects.equals(stewardPropertyName, that.stewardPropertyName) && + Objects.equals(source, that.source) && + Objects.equals(notes, that.notes); + } + + + /** + * Return hash code for this object + * + * @return int hash code + */ + @Override + public int hashCode() + { + return Objects.hash(super.hashCode(), membershipRationale, createdBy, expression, confidence, status, userDefinedStatus, steward, + stewardTypeName, stewardPropertyName, source, notes); + } +} diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionOrder.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionOrder.java index a250642358f..4c4766d8656 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionOrder.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionOrder.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -26,16 +24,38 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum CollectionOrder implements Serializable +public enum CollectionOrder { + /** + * Order the collection by the names of the members in the collection. + */ NAME (0, 0, "Name", "Order the collection by the names of the members in the collection."), - OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection (assets only)."), - DATE_ADDED (2, 2, "Date Added", "Order the collection by the date that the members were added to the collection."), - DATE_UPDATED (3, 3, "Date Updated", "Order the collection by the date that the members were updated in the collection."), - DATE_CREATED (4, 4, "Date Created", "Order the collection by the date that the members were created in the collection."), + + /** + * Order the collection by the owners of the members in the collection. + */ + OWNER (1, 1, "Owner", "Order the collection by the owners of the members in the collection."), + + /** + * Order the collection by the date that the members were added to the collection. + */ + DATE_ADDED (2, 2, "DateAdded", "Order the collection by the date that the members were added to the collection."), + + /** + * Order the collection by the date that the members were updated in the collection. + */ + DATE_UPDATED (3, 3, "DateUpdated", "Order the collection by the date that the members were updated in the collection."), + + /** + * Order the collection by the date that the members were created in the collection. + */ + DATE_CREATED (4, 4, "DateCreated", "Order the collection by the date that the members were created in the collection."), + + /** + * Order the collection by another value. + */ OTHER (99, 99, "Other", "Order the collection by another value."); - private static final long serialVersionUID = 1L; private static final String ENUM_TYPE_GUID = "1d412439-4272-4a7e-a940-1065f889fc56"; private static final String ENUM_TYPE_NAME = "OrderBy"; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionProperties.java index d15d5f85e30..5f5e498ba0a 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionProperties.java @@ -19,10 +19,9 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class CollectionProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String name = null; private String description = null; + private String collectionType = null; private CollectionOrder collectionOrdering = null; private String orderPropertyName = null; @@ -49,6 +48,7 @@ public CollectionProperties(CollectionProperties template) { this.name = template.getName(); this.description = template.getDescription(); + this.collectionType = template.getCollectionType(); this.collectionOrdering = template.getCollectionOrdering(); this.orderPropertyName = template.getOrderPropertyName(); } @@ -99,6 +99,28 @@ public void setDescription(String description) } + /** + * Return a descriptive name for the collection's type. + * + * @return string name + */ + public String getCollectionType() + { + return collectionType; + } + + + /** + * Set up a descriptive name for the collection's type. + * + * @param collectionType string name + */ + public void setCollectionType(String collectionType) + { + this.collectionType = collectionType; + } + + /** * Return the property to use to determine the order that assets are returned. * @@ -154,6 +176,7 @@ public String toString() return "CollectionProperties{" + "name='" + name + '\'' + ", description='" + description + '\'' + + ", collectionType='" + collectionType + '\'' + ", collectionOrdering=" + collectionOrdering + ", orderPropertyName='" + orderPropertyName + '\'' + ", qualifiedName='" + getQualifiedName() + '\'' + @@ -191,6 +214,7 @@ public boolean equals(Object objectToCompare) return getCollectionOrdering() == that.getCollectionOrdering() && Objects.equals(getName(), that.getName()) && Objects.equals(getDescription(), that.getDescription()) && + Objects.equals(getCollectionType(), that.getCollectionType()) && Objects.equals(getOrderPropertyName(), that.getOrderPropertyName()); } @@ -203,6 +227,6 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - return Objects.hash(super.hashCode(), getName(), getDescription(), getCollectionOrdering(), getOrderPropertyName()); + return Objects.hash(super.hashCode(), getName(), getDescription(), getCollectionType(), getCollectionOrdering(), getOrderPropertyName()); } } diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionStatus.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionStatus.java index b05e5fd0bcb..04443185cdf 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionStatus.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/CollectionStatus.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,14 +23,28 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum CollectionStatus implements Serializable +public enum CollectionStatus { - ACTIVE (0, "Active", "all the collection members with a current effective dates (default)."), - PAST (1, "Past", "all the collection members that have effective dates in the past."), - FUTURE (2, "Future", "all the collection members that become effective in the future."), - ALL (99, "All", "all the collection members linked to the collection irrespective of their effective dates."); + /** + * All the collection members with a current effective dates (default). + */ + ACTIVE (0, "Active", "All the collection members with a current effective dates (default)."), + + /** + * All the collection members that have effective dates in the past. + */ + PAST (1, "Past", "All the collection members that have effective dates in the past."), + + /** + * All the collection members that become effective in the future. + */ + FUTURE (2, "Future", "All the collection members that become effective in the future."), + + /** + * All the collection members linked to the collection irrespective of their effective dates. + */ + ALL (99, "All", "All the collection members linked to the collection irrespective of their effective dates."); - private static final long serialVersionUID = 1L; private final int ordinal; private final String name; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodProperties.java index 99ffb3dbf63..7135e7962bf 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodProperties.java @@ -6,7 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -21,10 +20,8 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public class ContactMethodProperties implements Serializable +public class ContactMethodProperties { - private static final long serialVersionUID = 1L; - private String name = null; private String contactType = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodType.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodType.java index c112f80ea15..2519003a0d8 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,16 +23,38 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalProductProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalProductProperties.java index 3417a6e5925..da66c1fce0c 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalProductProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalProductProperties.java @@ -23,8 +23,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class DigitalProductProperties extends ClassificationProperties { - private static final long serialVersionUID = 1L; - private String productName = null; private String productType = null; private String description = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceDependencyProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceDependencyProperties.java index 5609f5c1cdc..e86659c7138 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceDependencyProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceDependencyProperties.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class DigitalServiceDependencyProperties extends RelationshipProperties { - private static final long serialVersionUID = 1L; - private String description = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceOperatorProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceOperatorProperties.java index fd660f9f148..c964d491d57 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceOperatorProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceOperatorProperties.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class DigitalServiceOperatorProperties extends RelationshipProperties { - private static final long serialVersionUID = 1L; - private String scope = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceProperties.java index 1515aee8c7c..4217b30fcd0 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceProperties.java @@ -24,8 +24,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class DigitalServiceProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String displayName = null; private String description = null; private String version = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceResponsibility.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceResponsibility.java index c72923470c7..29edd5b520a 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceResponsibility.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceResponsibility.java @@ -7,8 +7,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -33,14 +31,13 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum DigitalServiceResponsibility implements Serializable +public enum DigitalServiceResponsibility { UNCLASSIFIED_RESPONSIBILITY (0, "Unclassified", "The digital service has no assigned responsibility."), DATA_CONTROLLER (1, "Data Controller", "The digital service is a data controller."), DATA_PROCESSOR (2, "Data Processor", "The digital service is a data processor."), OTHER (99, "Other", "The digital service has a locally defined responsibility."); - private static final long serialVersionUID = 1L; private final int ordinal; private final String name; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceStatus.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceStatus.java index 1725611f4bd..96dae9eddad 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceStatus.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceStatus.java @@ -7,8 +7,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -51,7 +49,7 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum DigitalServiceStatus implements Serializable +public enum DigitalServiceStatus { DRAFT (0, "Draft", "The digital service definition is a draft."), PROPOSED (1, "Proposed", "The digital service definition is in planning, feasibility study and business review."), @@ -62,7 +60,6 @@ public enum DigitalServiceStatus implements Serializable DEPRECATED (6, "Deprecated", "The digital service definition is no longer active."), OTHER (99, "Other", "The digital service definition in a locally defined state."); - private static final long serialVersionUID = 1L; private final int ordinal; private final String name; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceVisibility.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceVisibility.java index 89639c7e62a..db0afb2e6bc 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceVisibility.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalServiceVisibility.java @@ -7,8 +7,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -37,7 +35,7 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum DigitalServiceVisibility implements Serializable +public enum DigitalServiceVisibility { UNCLASSIFIED_VISIBILITY (0, "Unclassified", "The digital service has no assigned visibility."), EXTERNAL_SERVICE (1, "External Service", "The digital service is available to consumers outside of the organization."), @@ -45,7 +43,6 @@ public enum DigitalServiceVisibility implements Serializable INTERNAL_SERVICE (3, "Internal Service", "The digital service is for internal use only."), OTHER (99, "Other", "The digital service has a locally defined visibility."); - private static final long serialVersionUID = 1L; private final int ordinal; private final String name; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSubscriptionProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSubscriptionProperties.java index c579a1b16a7..10ea5dd1560 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSubscriptionProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSubscriptionProperties.java @@ -21,8 +21,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class DigitalSubscriptionProperties extends AgreementProperties { - private static final long serialVersionUID = 1L; - private String supportLevel = null; private Map serviceLevels = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSupportProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSupportProperties.java index f298be9d73c..54cc2e20111 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSupportProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/DigitalSupportProperties.java @@ -20,9 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class DigitalSupportProperties extends RelationshipProperties { - private static final long serialVersionUID = 1L; - - /** * Default constructor */ diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/GovernanceDefinitionProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/GovernanceDefinitionProperties.java index c05c89a96d2..7d375433466 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/GovernanceDefinitionProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/GovernanceDefinitionProperties.java @@ -48,8 +48,6 @@ }) public class GovernanceDefinitionProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String title = null; private String summary = null; private String description = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseProperties.java index 929838fb424..e6b3687c730 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseProperties.java @@ -21,8 +21,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class LicenseProperties extends RelationshipProperties { - private static final long serialVersionUID = 1L; - private String licenseId = null; private Date startDate = null; private Date endDate = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseTypeProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseTypeProperties.java index 26e7037cda6..907d0b52af8 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseTypeProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/LicenseTypeProperties.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class LicenseTypeProperties extends GovernanceDefinitionProperties { - private static final long serialVersionUID = 1L; - private String details = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/OrganizationalCapabilityProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/OrganizationalCapabilityProperties.java index 7cbf044bab4..3aeb419f7f6 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/OrganizationalCapabilityProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/OrganizationalCapabilityProperties.java @@ -20,8 +20,6 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class OrganizationalCapabilityProperties extends RelationshipProperties { - private static final long serialVersionUID = 1L; - private String scope = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonRoleProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonRoleProperties.java index 542aeb90463..c9ede88e5bf 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonRoleProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonRoleProperties.java @@ -23,8 +23,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class PersonRoleProperties extends PersonalRoleProperties { - private static final long serialVersionUID = 1L; - private boolean headCountLimitSet = false; private int headCount = 0; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonalRoleProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonalRoleProperties.java index e357814e982..6fc9f382ba5 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonalRoleProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/PersonalRoleProperties.java @@ -29,8 +29,6 @@ }) public class PersonalRoleProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String roleId = null; /* identifier */ private String scope = null; /* scope */ private String title = null; /* name */ diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ReferenceableProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ReferenceableProperties.java index 105cb9a4d71..14db7142d02 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ReferenceableProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/ReferenceableProperties.java @@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -37,10 +36,8 @@ @JsonSubTypes.Type(value = GovernanceDefinitionProperties.class, name = "GovernanceDefinitionProperties"), @JsonSubTypes.Type(value = SolutionComponentProperties.class, name = "SolutionComponentProperties"), }) -public class ReferenceableProperties implements Serializable +public class ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String qualifiedName = null; private Map additionalProperties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/RelationshipProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/RelationshipProperties.java index abf87a071aa..37487fd89cd 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/RelationshipProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/RelationshipProperties.java @@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -34,10 +33,8 @@ @JsonSubTypes.Type(value = DigitalServiceDependencyProperties.class, name = "DigitalServiceDependencyProperties"), @JsonSubTypes.Type(value = OrganizationalCapabilityProperties.class, name = "OrganizationalCapabilityProperties"), }) -public class RelationshipProperties implements Serializable +public class RelationshipProperties { - private static final long serialVersionUID = 1L; - private Date effectiveFrom = null; private Date effectiveTo = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/SolutionComponentProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/SolutionComponentProperties.java index 93792816f55..cb79d2c74a2 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/SolutionComponentProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/SolutionComponentProperties.java @@ -19,8 +19,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class SolutionComponentProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String displayName = null; private String description = null; private String version = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TeamProfileProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TeamProfileProperties.java index 3af7c65e578..bd7b3c3b9ee 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TeamProfileProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TeamProfileProperties.java @@ -21,8 +21,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class TeamProfileProperties extends ActorProfileProperties { - private static final long serialVersionUID = 1L; - private String teamType = null; private String identifier = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TemplateProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TemplateProperties.java index 87aff099f87..18ee004b8e7 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TemplateProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/TemplateProperties.java @@ -7,7 +7,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -20,10 +19,8 @@ @JsonAutoDetect(getterVisibility = PUBLIC_ONLY, setterVisibility = PUBLIC_ONLY, fieldVisibility = NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) -public class TemplateProperties implements Serializable +public class TemplateProperties { - private static final long serialVersionUID = 1L; - private String qualifiedName = null; private String displayName = null; private String description = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/UserIdentityProperties.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/UserIdentityProperties.java index bcd87b2a760..1bf17188569 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/UserIdentityProperties.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/properties/UserIdentityProperties.java @@ -19,8 +19,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class UserIdentityProperties extends ReferenceableProperties { - private static final long serialVersionUID = 1L; - private String userId = null; private String distinguishedName = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ClassificationRequestBody.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ClassificationRequestBody.java index 5dd67a41a04..f66e4707d3b 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ClassificationRequestBody.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ClassificationRequestBody.java @@ -22,8 +22,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class ClassificationRequestBody extends ExternalSourceRequestBody { - private static final long serialVersionUID = 1L; - private ClassificationProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceListResponse.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceListResponse.java index c04d22f5a40..8f787c9df12 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceListResponse.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceListResponse.java @@ -23,8 +23,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class DigitalServiceListResponse extends DigitalServiceOMASAPIResponse { - private static final long serialVersionUID = 1L; - private List elementList = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIRequestBody.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIRequestBody.java index 83e89b87e2f..854011d0b54 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIRequestBody.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIRequestBody.java @@ -20,11 +20,8 @@ { @JsonSubTypes.Type(value = DigitalServiceProperties.class, name = "DigitalServiceProperties") }) -public abstract class DigitalServiceOMASAPIRequestBody implements java.io.Serializable +public abstract class DigitalServiceOMASAPIRequestBody { - private static final long serialVersionUID = 1L; - - /** * Default constructor */ diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIResponse.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIResponse.java index 82332a522b9..41b98b7967a 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIResponse.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceOMASAPIResponse.java @@ -24,8 +24,6 @@ }) public abstract class DigitalServiceOMASAPIResponse extends FFDCResponseBase { - private static final long serialVersionUID = 1L; - /** * Default constructor */ diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceResponse.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceResponse.java index cf9b46fe0ec..d220d036453 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceResponse.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/DigitalServiceResponse.java @@ -22,8 +22,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class DigitalServiceResponse extends DigitalServiceOMASAPIResponse { - private static final long serialVersionUID = 1L; - private DigitalServiceElement element = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ExternalSourceRequestBody.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ExternalSourceRequestBody.java index e2692a17398..cc7494798ac 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ExternalSourceRequestBody.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ExternalSourceRequestBody.java @@ -19,8 +19,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class ExternalSourceRequestBody extends DigitalServiceOMASAPIRequestBody { - private static final long serialVersionUID = 1L; - private String externalSourceGUID = null; private String externalSourceName = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ReferenceableRequestBody.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ReferenceableRequestBody.java index 337d3822fae..b54c0a45d01 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ReferenceableRequestBody.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/ReferenceableRequestBody.java @@ -22,8 +22,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class ReferenceableRequestBody extends ExternalSourceRequestBody { - private static final long serialVersionUID = 1L; - private String parentGUID = null; private ReferenceableProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelatedElementListResponse.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelatedElementListResponse.java index 0a6b4417191..6138f5bfe45 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelatedElementListResponse.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelatedElementListResponse.java @@ -23,8 +23,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class RelatedElementListResponse extends DigitalServiceOMASAPIResponse { - private static final long serialVersionUID = 1L; - private List elementList = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelationshipRequestBody.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelationshipRequestBody.java index 074cc5b0965..b33a20bc530 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelationshipRequestBody.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/RelationshipRequestBody.java @@ -22,8 +22,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class RelationshipRequestBody extends ExternalSourceRequestBody { - private static final long serialVersionUID = 1L; - private RelationshipProperties properties = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/TemplateRequestBody.java b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/TemplateRequestBody.java index 1e711a0a68f..e15e42e347a 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/TemplateRequestBody.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-api/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/rest/TemplateRequestBody.java @@ -21,8 +21,6 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class TemplateRequestBody extends TemplateProperties { - private static final long serialVersionUID = 1L; - private String externalSourceGUID = null; private String externalSourceName = null; private String parentGUID = null; diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-client/build.gradle b/open-metadata-implementation/access-services/digital-service/digital-service-client/build.gradle index b12502a0361..c8212d20619 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-client/build.gradle +++ b/open-metadata-implementation/access-services/digital-service/digital-service-client/build.gradle @@ -10,6 +10,7 @@ dependencies { implementation project(':open-metadata-implementation:framework-services:gaf-metadata-management:gaf-metadata-api') implementation project(':open-metadata-implementation:framework-services:gaf-metadata-management:gaf-metadata-client') implementation project(':open-metadata-implementation:repository-services:repository-services-apis') + implementation project(':open-metadata-implementation:admin-services:admin-services-api') implementation project(':open-metadata-implementation:common-services:ffdc-services') implementation project(':open-metadata-implementation:access-services:digital-service:digital-service-api') implementation project(':open-metadata-implementation:frameworks:open-connector-framework') diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/CollectionsClient.java b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/CollectionsClient.java new file mode 100644 index 00000000000..1437cdf75d3 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/CollectionsClient.java @@ -0,0 +1,1274 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalservice.client; + +import org.odpi.openmetadata.accessservices.digitalservice.api.CollectionsInterface; +import org.odpi.openmetadata.accessservices.digitalservice.client.converters.CollectionConverter; +import org.odpi.openmetadata.accessservices.digitalservice.client.converters.CollectionMemberConverter; +import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.CollectionElement; +import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.CollectionMember; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionMembershipProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.DigitalProductProperties; +import org.odpi.openmetadata.accessservices.digitalservice.properties.TemplateProperties; +import org.odpi.openmetadata.adminservices.configuration.registration.AccessServiceDescription; +import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException; +import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStatus; +import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.search.ClassificationCondition; +import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; +import org.odpi.openmetadata.frameworks.governanceaction.search.MatchCriteria; +import org.odpi.openmetadata.frameworks.governanceaction.search.PrimitiveTypePropertyValue; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyComparisonOperator; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyCondition; +import org.odpi.openmetadata.frameworks.governanceaction.search.SearchClassifications; +import org.odpi.openmetadata.frameworks.governanceaction.search.SearchProperties; +import org.odpi.openmetadata.frameworks.governanceaction.search.SequencingOrder; +import org.odpi.openmetadata.frameworkservices.gaf.client.converters.OpenMetadataTypesMapper; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * The CollectionsClient supports requests related to collections. + */ +public class CollectionsClient extends DigitalServiceBaseClient implements CollectionsInterface +{ + final private CollectionConverter collectionConverter; + final private Class collectionBeanClass = CollectionElement.class; + final private CollectionMemberConverter collectionMemberConverter; + + final private Class collectionMemberBeanClass = CollectionMember.class; + + /** + * Create a new client with no authentication embedded in the HTTP request. + * + * @param serverName name of the server to connect to + * @param serverPlatformURLRoot the network address of the server running the OMAS REST services + * @param maxPageSize number of elements that can be returned on a call + * + * @throws InvalidParameterException there is a problem creating the client-side components to issue any + * REST API calls. + */ + public CollectionsClient(String serverName, + String serverPlatformURLRoot, + int maxPageSize) throws InvalidParameterException + { + super(serverName, serverPlatformURLRoot, maxPageSize); + + collectionConverter = new CollectionConverter<>(propertyHelper, + AccessServiceDescription.DIGITAL_SERVICE_OMAS.getAccessServiceName(), + serverName); + + collectionMemberConverter = new CollectionMemberConverter<>(propertyHelper, + AccessServiceDescription.DIGITAL_SERVICE_OMAS.getAccessServiceName(), + serverName); + } + + + /** + * Create a new client that passes userId and password in each HTTP request. This is the + * userId/password of the calling server. The end user's userId is sent on each request. + * + * @param serverName name of the server to connect to + * @param serverPlatformURLRoot the network address of the server running the OMAS REST services + * @param userId caller's userId embedded in all HTTP requests + * @param password caller's userId embedded in all HTTP requests + * @param maxPageSize number of elements that can be returned on a call + * + * @throws InvalidParameterException there is a problem creating the client-side components to issue any + * REST API calls. + */ + public CollectionsClient(String serverName, + String serverPlatformURLRoot, + String userId, + String password, + int maxPageSize) throws InvalidParameterException + { + super(serverName, serverPlatformURLRoot, userId, password, maxPageSize); + + collectionConverter = new CollectionConverter<>(propertyHelper, + AccessServiceDescription.DIGITAL_SERVICE_OMAS.getAccessServiceName(), + serverName); + + collectionMemberConverter = new CollectionMemberConverter<>(propertyHelper, + AccessServiceDescription.DIGITAL_SERVICE_OMAS.getAccessServiceName(), + serverName); + } + + + /* ===================================================================================================================== + * CollectionsInterface methods + */ + + /** + * Returns the list of collections that are linked off of the supplied element. + * + * @param userId userId of user making request + * @param parentGUID unique identifier of referenceable object (typically a personal profile, project or + * community) that the collections hang off of + * @param collectionType filter response by collection type - if null, any value will do + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public List getLinkedCollections(String userId, + String parentGUID, + String collectionType, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "getLinkedCollections"; + final String parentGUIDParameterName = "parentGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(parentGUID, parentGUIDParameterName, methodName); + invalidParameterHandler.validatePaging(startFrom, pageSize, methodName); + + List linkedResources = openMetadataStoreClient.getRelatedMetadataElements(userId, + parentGUID, + 1, + OpenMetadataTypesMapper.RESOURCE_LIST_RELATIONSHIP_TYPE_NAME, + false, + false, + new Date(), + startFrom, + pageSize); + + if (linkedResources != null) + { + List filteredCollections = new ArrayList<>(); + + for (RelatedMetadataElement relatedMetadataElement : linkedResources) + { + if (propertyHelper.isTypeOf(relatedMetadataElement, OpenMetadataTypesMapper.COLLECTION_TYPE_NAME)) + { + CollectionElement collectionElement = collectionConverter.getNewBean(collectionBeanClass, relatedMetadataElement, methodName); + + if ((collectionType == null) || (collectionType.equals(collectionElement.getProperties().getCollectionType()))) + { + filteredCollections.add(collectionElement); + } + } + } + + if (! filteredCollections.isEmpty()) + { + return null; + } + } + + return null; + } + + + /** + * Returns the list of collections with a particular classification. + * + * @param userId userId of user making request + * @param classificationName name of the classification - if null, all collections are returned + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public List getClassifiedCollections(String userId, + String classificationName, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "getClassifiedCollections"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validatePaging(startFrom, pageSize, methodName); + + SearchClassifications searchClassifications = null; + + if (classificationName != null) + { + searchClassifications = new SearchClassifications(); + + List classificationConditions = new ArrayList<>(); + ClassificationCondition classificationCondition = new ClassificationCondition(); + + classificationCondition.setName(classificationName); + + classificationConditions.add(classificationCondition); + + searchClassifications.setConditions(classificationConditions); + searchClassifications.setMatchCriteria(MatchCriteria.ALL); + } + + List openMetadataElements = openMetadataStoreClient.findMetadataElements(userId, + OpenMetadataTypesMapper.COLLECTION_TYPE_NAME, + null, + null, + null, + searchClassifications, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + SequencingOrder.PROPERTY_ASCENDING, + false, + false, + new Date(), + startFrom, + pageSize); + + return convertConnections(openMetadataElements, methodName); + } + + + /** + * Convert collection objects from the OpenMetadataClient to local beans. + * + * @param openMetadataElements retrieved elements + * @param methodName calling method + * @return list of collection elements + * @throws PropertyServerException error in retrieved values + */ + private List convertConnections(List openMetadataElements, + String methodName) throws PropertyServerException + { + if (openMetadataElements != null) + { + List collectionElements = new ArrayList<>(); + + for (OpenMetadataElement openMetadataElement : openMetadataElements) + { + if (openMetadataElement != null) + { + collectionElements.add(collectionConverter.getNewBean(collectionBeanClass, openMetadataElement, methodName)); + } + } + + return collectionElements; + } + + return null; + } + + + /** + * Returns the list of collections matching the search string - this is coded as a regular expression. + * + * @param userId userId of user making request + * @param searchString string to search for + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public List findCollections(String userId, + String searchString, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "findCollections"; + final String searchStringParameterName = "searchString"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateSearchString(searchString, searchStringParameterName, methodName); + invalidParameterHandler.validatePaging(startFrom, pageSize, methodName); + + List openMetadataElements = openMetadataStoreClient.findMetadataElementsWithString(userId, + searchString, + OpenMetadataTypesMapper.COLLECTION_TYPE_NAME, + false, + false, + new Date(), + startFrom, + pageSize); + + return convertConnections(openMetadataElements, methodName); + } + + + /** + * Returns the list of collections with a particular name. + * + * @param userId userId of user making request + * @param name name of the collections to return - match is full text match in qualifiedName or name + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public List getCollectionsByName(String userId, + String name, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "getCollectionsByName"; + final String nameParameterName = "name"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateName(name, nameParameterName, methodName); + invalidParameterHandler.validatePaging(startFrom, pageSize, methodName); + + SearchProperties searchProperties = new SearchProperties(); + PropertyCondition propertyCondition1 = new PropertyCondition(); + PropertyCondition propertyCondition2 = new PropertyCondition(); + PrimitiveTypePropertyValue propertyValue = new PrimitiveTypePropertyValue(); + propertyValue.setTypeName("string"); + propertyValue.setPrimitiveValue(name); + propertyCondition1.setValue(propertyValue); + propertyCondition1.setProperty(OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME); + propertyCondition1.setOperator(PropertyComparisonOperator.EQ); + propertyCondition2.setValue(propertyValue); + propertyCondition2.setProperty(OpenMetadataTypesMapper.NAME_PROPERTY_NAME); + propertyCondition2.setOperator(PropertyComparisonOperator.EQ); + + List propertyConditions = new ArrayList<>(); + propertyConditions.add(propertyCondition1); + propertyConditions.add(propertyCondition2); + + searchProperties.setConditions(propertyConditions); + searchProperties.setMatchCriteria(MatchCriteria.ANY); + + List openMetadataElements = openMetadataStoreClient.findMetadataElements(userId, + OpenMetadataTypesMapper.COLLECTION_TYPE_NAME, + null, + searchProperties, + null, + null, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + SequencingOrder.PROPERTY_ASCENDING, + false, + false, + new Date(), + startFrom, + pageSize); + + return convertConnections(openMetadataElements, methodName); + } + + + /** + * Returns the list of collections with a particular collectionType. This is an optional text field in the collection element. + * + * @param userId userId of user making request + * @param collectionType the collection type value to match on. If it is null, all collections with a null collectionType are returned + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return + * + * @return a list of collections + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public List getCollectionsByType(String userId, + String collectionType, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "getCollectionsByType"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validatePaging(startFrom, pageSize, methodName); + + SearchProperties searchProperties = new SearchProperties(); + PropertyCondition propertyCondition1 = new PropertyCondition(); + PrimitiveTypePropertyValue propertyValue = new PrimitiveTypePropertyValue(); + propertyValue.setTypeName("string"); + propertyValue.setPrimitiveValue(collectionType); + propertyCondition1.setValue(propertyValue); + propertyCondition1.setProperty(OpenMetadataTypesMapper.COLLECTION_TYPE_PROPERTY_NAME); + propertyCondition1.setOperator(PropertyComparisonOperator.EQ); + + List propertyConditions = new ArrayList<>(); + propertyConditions.add(propertyCondition1); + + searchProperties.setConditions(propertyConditions); + searchProperties.setMatchCriteria(MatchCriteria.ANY); + + List openMetadataElements = openMetadataStoreClient.findMetadataElements(userId, + OpenMetadataTypesMapper.COLLECTION_TYPE_NAME, + null, + searchProperties, + null, + null, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + SequencingOrder.PROPERTY_ASCENDING, + false, + false, + new Date(), + startFrom, + pageSize); + + return convertConnections(openMetadataElements, methodName); + } + + + /** + * Return the properties of a specific collection. + * + * @param userId userId of user making request + * @param collectionGUID unique identifier of the required collection + * + * @return collection properties + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public CollectionElement getCollection(String userId, + String collectionGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "getCollection"; + final String guidParameterName = "collectionGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, guidParameterName, methodName); + + OpenMetadataElement openMetadataElement = openMetadataStoreClient.getMetadataElementByGUID(userId, + collectionGUID, + false, + false, + new Date()); + + if ((openMetadataElement != null) && (propertyHelper.isTypeOf(openMetadataElement, OpenMetadataTypesMapper.COLLECTION_TYPE_NAME))) + { + return collectionConverter.getNewBean(collectionBeanClass, openMetadataElement, methodName); + } + + return null; + } + + + /** + * Create a new generic collection. + * + * @param userId userId of user making request. + * @param optionalClassification classification of the collections - typically RootCollection, Set or Folder + * @param properties properties for the collection. + * + * @return unique identifier of the newly created Collection + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public String createCollection(String userId, + String optionalClassification, + CollectionProperties properties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "createCollection"; + final String collectionPropertiesName = "properties"; + final String qualifiedNameParameterName = "properties.qualifiedName"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateObject(properties, collectionPropertiesName, methodName); + invalidParameterHandler.validateName(properties.getQualifiedName(), qualifiedNameParameterName, methodName); + + String collectionTypeName = OpenMetadataTypesMapper.COLLECTION_TYPE_NAME; + + if (properties.getTypeName() != null) + { + collectionTypeName = properties.getTypeName(); + } + + String collectionGUID = openMetadataStoreClient.createMetadataElementInStore(userId, + collectionTypeName, + ElementStatus.ACTIVE, + null, + null, + this.getElementProperties(properties), + null); + + if ((OpenMetadataTypesMapper.FOLDER_TYPE_NAME.equals(optionalClassification)) || + (properties.getOrderPropertyName() != null) || (properties.getCollectionOrdering() != null)) + { + ElementProperties classificationProperties = propertyHelper.addStringProperty(null, + OpenMetadataTypesMapper.ORDER_PROPERTY_NAME_PROPERTY_NAME, + properties.getOrderPropertyName()); + if (properties.getCollectionOrdering() != null) + { + classificationProperties = propertyHelper.addEnumProperty(classificationProperties, + OpenMetadataTypesMapper.ORDER_BY_PROPERTY_NAME, + OpenMetadataTypesMapper.ORDER_BY_TYPE_ENUM_TYPE_NAME, + properties.getCollectionOrdering().getName()); + } + + openMetadataStoreClient.classifyMetadataElementInStore(userId, + collectionGUID, + OpenMetadataTypesMapper.FOLDER_TYPE_NAME, + false, + false, + null, + null, + classificationProperties, + new Date()); + } + + return collectionGUID; + } + + + /** + * Create a new metadata element to represent a collection using an existing metadata element as a template. + * The template defines additional classifications and relationships that should be added to the new collection. + * + * @param userId calling user + * @param templateGUID unique identifier of the metadata element to copy + * @param templateProperties properties that override the template + * + * @return unique identifier of the new metadata element + * + * @throws InvalidParameterException one of the parameters is invalid + * @throws UserNotAuthorizedException the user is not authorized to issue this request + * @throws PropertyServerException there is a problem reported in the open metadata server(s) + */ + @Override + public String createCollectionFromTemplate(String userId, + String templateGUID, + TemplateProperties templateProperties) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException + { + final String methodName = "createCollectionFromTemplate"; + + String collectionGUID = openMetadataStoreClient.createMetadataElementInStore(userId, + OpenMetadataTypesMapper.COLLECTION_TYPE_NAME, + ElementStatus.ACTIVE, + null, + null, + this.getElementProperties(templateProperties), + templateGUID); + + return null; + } + + + /** + * Create a new collection that represents a digital product. + * + * @param userId userId of user making request. + * @param digitalServiceGUID unique identifier of owning digital service (optional) + * @param collectionProperties properties for the collection. + * @param digitalProductProperties properties for the attached DigitalProduct classification + * + * @return unique identifier of the newly created Collection + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public String createDigitalProduct(String userId, + String digitalServiceGUID, + CollectionProperties collectionProperties, + DigitalProductProperties digitalProductProperties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "createDigitalProduct"; + + invalidParameterHandler.validateUserId(userId, methodName); + + String collectionGUID = this.createCollection(userId, null, collectionProperties); + + if (collectionGUID != null) + { + openMetadataStoreClient.classifyMetadataElementInStore(userId, + collectionGUID, + OpenMetadataTypesMapper.DIGITAL_PRODUCT_CLASSIFICATION_TYPE_NAME, + false, + false, + null, + null, + this.getElementProperties(digitalProductProperties), + new Date()); + } + + return collectionGUID; + } + + + /** + * Update the properties of a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection (returned from create) + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param properties properties for the collection. + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void updateCollection(String userId, + String collectionGUID, + boolean replaceAllProperties, + CollectionProperties properties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "updateCollection"; + final String collectionPropertiesName = "properties"; + final String qualifiedNameParameterName = "properties.qualifiedName"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateObject(properties, collectionPropertiesName, methodName); + + if (replaceAllProperties) + { + invalidParameterHandler.validateName(properties.getQualifiedName(), qualifiedNameParameterName, methodName); + } + + openMetadataStoreClient.updateMetadataElementInStore(userId, + collectionGUID, + replaceAllProperties, + false, + false, + this.getElementProperties(properties), + new Date()); + } + + + /** + * Update the properties of the DigitalProduct classification attached to a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection (returned from create) + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param properties properties for the DigitalProduct classification. + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void updateDigitalProduct(String userId, + String collectionGUID, + boolean replaceAllProperties, + DigitalProductProperties properties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "updateDigitalProduct"; + final String propertiesName = "properties"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateObject(properties, propertiesName, methodName); + + openMetadataStoreClient.reclassifyMetadataElementInStore(userId, + collectionGUID, + OpenMetadataTypesMapper.DIGITAL_PRODUCT_CLASSIFICATION_TYPE_NAME, + replaceAllProperties, + false, + false, + this.getElementProperties(properties), + new Date()); + } + + + /** + * Connect an existing collection to an element using the ResourceList relationship (0019). + * + * @param userId userId of user making request + * @param collectionGUID unique identifier of the collection + * @param parentGUID unique identifier of referenceable object that the collection should be attached to + * @param collectionUse description of how the collection will be used. + * @param makeAnchor like the lifecycle of the collection to that of the parent so that if the parent is deleted, so is the collection + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void attachCollection(String userId, + String collectionGUID, + String parentGUID, + String collectionUse, + boolean makeAnchor) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "attachCollection"; + final String collectionGUIDParameterName = "collectionGUID"; + final String parentGUIDParameterName = "parentGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + invalidParameterHandler.validateGUID(parentGUID, parentGUIDParameterName, methodName); + + ElementProperties properties = propertyHelper.addStringProperty(null, + OpenMetadataTypesMapper.RESOURCE_USE_PROPERTY_NAME, + collectionUse); + + openMetadataStoreClient.createRelatedElementsInStore(userId, + OpenMetadataTypesMapper.RESOURCE_LIST_RELATIONSHIP_TYPE_NAME, + parentGUID, + collectionGUID, + false, + false, + null, + null, + properties, + new Date()); + } + + + /** + * Detach an existing collection from an element. If the collection is anchored to the element, it is deleted. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * @param parentGUID unique identifier of referenceable object that the collection should be attached to. + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void detachCollection(String userId, + String collectionGUID, + String parentGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "detachCollection"; + + final String collectionGUIDParameterName = "collectionGUID"; + final String parentGUIDParameterName = "parentGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + invalidParameterHandler.validateGUID(parentGUID, parentGUIDParameterName, methodName); + + openMetadataStoreClient.deleteRelatedElementsInStore(userId, + OpenMetadataTypesMapper.RESOURCE_LIST_RELATIONSHIP_TYPE_NAME, + parentGUID, + collectionGUID, + false, + false, + new Date()); + } + + + /** + * Delete a collection. It is detected from all parent elements. If members are anchored to the collection + * then they are also deleted. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * + * @throws InvalidParameterException one of the parameters is null or invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void deleteCollection(String userId, + String collectionGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "deleteCollection"; + final String collectionGUIDParameterName = "collectionGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + + openMetadataStoreClient.deleteMetadataElementInStore(userId, + collectionGUID, + false, + false, + new Date()); + } + + + /** + * Return a list of elements that are a member of a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * @param startFrom index of the list to start from (0 for start) + * @param pageSize maximum number of elements to return. + * + * @return list of asset details + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem retrieving information from the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public List getCollectionMembers(String userId, + String collectionGUID, + int startFrom, + int pageSize) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "getCollectionMembers"; + final String collectionGUIDParameterName = "collectionGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + invalidParameterHandler.validatePaging(startFrom, pageSize, methodName); + + List linkedResources = openMetadataStoreClient.getRelatedMetadataElements(userId, + collectionGUID, + 1, + OpenMetadataTypesMapper.COLLECTION_MEMBERSHIP_TYPE_NAME, + false, + false, + new Date(), + startFrom, + pageSize); + + if (linkedResources != null) + { + List collectionMembers = new ArrayList<>(); + + for (RelatedMetadataElement relatedMetadataElement : linkedResources) + { + if (propertyHelper.isTypeOf(relatedMetadataElement, OpenMetadataTypesMapper.COLLECTION_TYPE_NAME)) + { + collectionMembers.add(collectionMemberConverter.getNewBean(collectionMemberBeanClass, relatedMetadataElement, methodName)); + } + } + + if (! collectionMembers.isEmpty()) + { + return null; + } + } + + return null; + } + + + private String getMembershipRelationshipGUID(String userId, + String collectionGUID, + String elementGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + List linkedResources = openMetadataStoreClient.getRelatedMetadataElements(userId, + collectionGUID, + 1, + OpenMetadataTypesMapper.COLLECTION_MEMBERSHIP_TYPE_NAME, + false, + false, + new Date(), + 0, + 0); + + if (linkedResources != null) + { + for (RelatedMetadataElement relatedMetadataElement : linkedResources) + { + if (relatedMetadataElement.getElement().getElementGUID().equals(elementGUID)) + { + return relatedMetadataElement.getRelationshipGUID(); + } + } + } + + return null; + } + + + /** + * Add an element to a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * @param membershipProperties properties describing the membership characteristics. + * @param elementGUID unique identifier of the element. + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem updating information in the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void addToCollection(String userId, + String collectionGUID, + CollectionMembershipProperties membershipProperties, + String elementGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "addToCollection"; + final String collectionGUIDParameterName = "collectionGUID"; + final String elementGUIDParameterName = "elementGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameterName, methodName); + + String relationshipGUID = this.getMembershipRelationshipGUID(userId, collectionGUID, elementGUID); + + if (relationshipGUID == null) + { + openMetadataStoreClient.createRelatedElementsInStore(userId, + OpenMetadataTypesMapper.COLLECTION_MEMBERSHIP_TYPE_NAME, + collectionGUID, + elementGUID, + false, + false, + null, + null, + this.getElementProperties(membershipProperties), + new Date()); + } + else + { + this.updateCollectionMembership(userId, relationshipGUID, true, membershipProperties); + } + } + + + /** + * Update an element's membership to a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param membershipProperties properties describing the membership characteristics. + * @param elementGUID unique identifier of the element. + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem updating information in the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void updateCollectionMembership(String userId, + String collectionGUID, + boolean replaceAllProperties, + CollectionMembershipProperties membershipProperties, + String elementGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "updateCollectionMembership"; + + final String collectionGUIDParameterName = "collectionGUID"; + final String elementGUIDParameterName = "elementGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameterName, methodName); + + String relationshipGUID = this.getMembershipRelationshipGUID(userId, collectionGUID, elementGUID); + + if (relationshipGUID != null) + { + this.updateCollectionMembership(userId, relationshipGUID, replaceAllProperties, membershipProperties); + } + else + { + this.addToCollection(userId, collectionGUID, membershipProperties, elementGUID); + } + } + + + /** + * Update the properties of a collection membership relationship. + * + * @param userId calling user + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * the individual properties specified on the request. + * @param relationshipGUID unique identifier of the collection + * @param membershipProperties properties describing the membership characteristics. + */ + private void updateCollectionMembership(String userId, + String relationshipGUID, + boolean replaceAllProperties, + CollectionMembershipProperties membershipProperties) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + openMetadataStoreClient.updateRelatedElementsInStore(userId, + relationshipGUID, + replaceAllProperties, + false, + false, + this.getElementProperties(membershipProperties), + new Date()); + } + + + /** + * Remove an element from a collection. + * + * @param userId userId of user making request. + * @param collectionGUID unique identifier of the collection. + * @param elementGUID unique identifier of the element. + * + * @throws InvalidParameterException one of the parameters is invalid. + * @throws PropertyServerException there is a problem updating information in the property server(s). + * @throws UserNotAuthorizedException the requesting user is not authorized to issue this request. + */ + @Override + public void removeFromCollection(String userId, + String collectionGUID, + String elementGUID) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { + final String methodName = "removeFromCollection"; + + final String collectionGUIDParameterName = "collectionGUID"; + final String elementGUIDParameterName = "elementGUID"; + + invalidParameterHandler.validateUserId(userId, methodName); + invalidParameterHandler.validateGUID(collectionGUID, collectionGUIDParameterName, methodName); + invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameterName, methodName); + + String relationshipGUID = this.getMembershipRelationshipGUID(userId, collectionGUID, elementGUID); + + if (relationshipGUID != null) + { + openMetadataStoreClient.deleteRelatedElementsInStore(userId, + relationshipGUID, + false, + false, + new Date()); + } + } + + + /* + * Mapping functions + */ + + + /** + * Convert the collection properties into a set of element properties for the open metadata client. + * + * @param collectionProperties supplied collection properties + * @return element properties + */ + private ElementProperties getElementProperties(CollectionProperties collectionProperties) + { + if (collectionProperties != null) + { + ElementProperties elementProperties = propertyHelper.addStringProperty(null, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + collectionProperties.getQualifiedName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.NAME_PROPERTY_NAME, + collectionProperties.getName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.DESCRIPTION_PROPERTY_NAME, + collectionProperties.getDescription()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.COLLECTION_TYPE_PROPERTY_NAME, + collectionProperties.getCollectionType()); + + elementProperties = propertyHelper.addStringMapProperty(elementProperties, + OpenMetadataTypesMapper.ADDITIONAL_PROPERTIES_PROPERTY_NAME, + collectionProperties.getAdditionalProperties()); + + elementProperties = propertyHelper.addPropertyMap(elementProperties, + collectionProperties.getExtendedProperties()); + + return elementProperties; + } + + return null; + } + + + /** + * Convert the collection properties into a set of element properties for the open metadata client. + * + * @param collectionProperties supplied collection properties + * @return element properties + */ + private ElementProperties getElementProperties(TemplateProperties collectionProperties) + { + if (collectionProperties != null) + { + ElementProperties elementProperties = propertyHelper.addStringProperty(null, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + collectionProperties.getQualifiedName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.NAME_PROPERTY_NAME, + collectionProperties.getDisplayName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.DESCRIPTION_PROPERTY_NAME, + collectionProperties.getDescription()); + + + return elementProperties; + } + + return null; + } + + + /** + * Convert the digital product properties into a set of element properties for the open metadata client. + * + * @param digitalProductProperties supplied digital product properties + * @return element properties + */ + private ElementProperties getElementProperties(DigitalProductProperties digitalProductProperties) + { + if (digitalProductProperties != null) + { + ElementProperties elementProperties = propertyHelper.addStringProperty(null, + OpenMetadataTypesMapper.PRODUCT_NAME_PROPERTY_NAME, + digitalProductProperties.getProductName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.PRODUCT_TYPE_PROPERTY_NAME, + digitalProductProperties.getProductType()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.DESCRIPTION_PROPERTY_NAME, + digitalProductProperties.getDescription()); + + elementProperties = propertyHelper.addDateProperty(elementProperties, + OpenMetadataTypesMapper.INTRODUCTION_DATE_PROPERTY_NAME, + digitalProductProperties.getIntroductionDate()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.MATURITY_PROPERTY_NAME, + digitalProductProperties.getMaturity()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.SERVICE_LIFE_PROPERTY_NAME, + digitalProductProperties.getServiceLife()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.CURRENT_VERSION_PROPERTY_NAME, + digitalProductProperties.getCurrentVersion()); + + elementProperties = propertyHelper.addDateProperty(elementProperties, + OpenMetadataTypesMapper.NEXT_VERSION_PROPERTY_NAME, + digitalProductProperties.getNextVersion()); + + elementProperties = propertyHelper.addDateProperty(elementProperties, + OpenMetadataTypesMapper.WITHDRAW_DATE_PROPERTY_NAME, + digitalProductProperties.getWithdrawDate()); + + elementProperties = propertyHelper.addStringMapProperty(elementProperties, + OpenMetadataTypesMapper.ADDITIONAL_PROPERTIES_PROPERTY_NAME, + digitalProductProperties.getAdditionalProperties()); + + return elementProperties; + } + + return null; + } + + + + /** + * Convert the digital product properties into a set of element properties for the open metadata client. + * + * @param collectionMembershipProperties supplied collection membership properties + * @return element properties + */ + private ElementProperties getElementProperties(CollectionMembershipProperties collectionMembershipProperties) + { + if (collectionMembershipProperties != null) + { + ElementProperties elementProperties = propertyHelper.addStringProperty(null, + OpenMetadataTypesMapper.MEMBERSHIP_RATIONALE_PROPERTY_NAME, + collectionMembershipProperties.getMembershipRationale()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.EXPRESSION_PROPERTY_NAME, + collectionMembershipProperties.getExpression()); + + if (collectionMembershipProperties.getStatus() != null) + { + elementProperties = propertyHelper.addEnumProperty(elementProperties, + OpenMetadataTypesMapper.STATUS_PROPERTY_NAME, + OpenMetadataTypesMapper.MEMBERSHIP_STATUS_ENUM_TYPE_NAME, + collectionMembershipProperties.getStatus().getName()); + } + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.USER_DEFINED_STATUS_PROPERTY_NAME, + collectionMembershipProperties.getUserDefinedStatus()); + + elementProperties = propertyHelper.addIntProperty(elementProperties, + OpenMetadataTypesMapper.CONFIDENCE_PROPERTY_NAME, + collectionMembershipProperties.getConfidence()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.CREATED_BY_PROPERTY_NAME, + collectionMembershipProperties.getCreatedBy()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.STEWARD_PROPERTY_NAME, + collectionMembershipProperties.getSteward()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.STEWARD_TYPE_NAME_PROPERTY_NAME, + collectionMembershipProperties.getStewardTypeName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.STEWARD_PROPERTY_NAME_PROPERTY_NAME, + collectionMembershipProperties.getStewardPropertyName()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.SOURCE_PROPERTY_NAME, + collectionMembershipProperties.getSource()); + + elementProperties = propertyHelper.addStringProperty(elementProperties, + OpenMetadataTypesMapper.NOTES_PROPERTY_NAME, + collectionMembershipProperties.getNotes()); + + return elementProperties; + } + + return null; + } +} diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/DigitalServiceBaseClient.java b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/DigitalServiceBaseClient.java index d4803d14291..372fc421437 100644 --- a/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/DigitalServiceBaseClient.java +++ b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/DigitalServiceBaseClient.java @@ -2,37 +2,18 @@ /* Copyright Contributors to the ODPi Egeria project. */ package org.odpi.openmetadata.accessservices.digitalservice.client; -import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.RelatedElement; -import org.odpi.openmetadata.accessservices.digitalservice.properties.ClassificationProperties; -import org.odpi.openmetadata.accessservices.digitalservice.properties.ReferenceableProperties; -import org.odpi.openmetadata.accessservices.digitalservice.properties.RelationshipProperties; -import org.odpi.openmetadata.accessservices.digitalservice.properties.TemplateProperties; -import org.odpi.openmetadata.accessservices.digitalservice.rest.ClassificationRequestBody; -import org.odpi.openmetadata.accessservices.digitalservice.rest.ExternalSourceRequestBody; -import org.odpi.openmetadata.accessservices.digitalservice.rest.ReferenceableRequestBody; -import org.odpi.openmetadata.accessservices.digitalservice.rest.RelatedElementListResponse; -import org.odpi.openmetadata.accessservices.digitalservice.rest.RelationshipRequestBody; -import org.odpi.openmetadata.accessservices.digitalservice.rest.TemplateRequestBody; -import org.odpi.openmetadata.accessservices.digitalservice.client.rest.DigitalServiceRESTClient; import org.odpi.openmetadata.commonservices.ffdc.InvalidParameterHandler; -import org.odpi.openmetadata.commonservices.ffdc.rest.GUIDResponse; -import org.odpi.openmetadata.frameworks.auditlog.AuditLog; import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException; -import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; -import org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException; - -import java.util.List; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyHelper; /** * DigitalServiceBaseClient supports the common properties and functions for the Digital Service OMAS. */ public class DigitalServiceBaseClient { - final String serverName; /* Initialized in constructor */ - final String serverPlatformURLRoot; /* Initialized in constructor */ - - final InvalidParameterHandler invalidParameterHandler = new InvalidParameterHandler(); - final DigitalServiceRESTClient restClient; /* Initialized in constructor */ + final protected InvalidParameterHandler invalidParameterHandler = new InvalidParameterHandler(); + final protected PropertyHelper propertyHelper = new PropertyHelper(); + final protected OpenMetadataStoreClient openMetadataStoreClient; /* Initialized in constructor */ /** @@ -40,46 +21,16 @@ public class DigitalServiceBaseClient * * @param serverName name of the server to connect to * @param serverPlatformURLRoot the network address of the server running the OMAS REST services - * @param auditLog logging destination + * @param maxPageSize number of elements that can be returned on a call * - * @throws InvalidParameterException there is a problem creating the client-side components to issue any - * REST API calls. + * @throws InvalidParameterException there is a problem creating the client-side components to issue any REST API calls. */ public DigitalServiceBaseClient(String serverName, String serverPlatformURLRoot, - AuditLog auditLog) throws InvalidParameterException + int maxPageSize) throws InvalidParameterException { - final String methodName = "Client Constructor"; - - invalidParameterHandler.validateOMAGServerPlatformURL(serverPlatformURLRoot, serverName, methodName); - - this.serverName = serverName; - this.serverPlatformURLRoot = serverPlatformURLRoot; - - this.restClient = new DigitalServiceRESTClient(serverName, serverPlatformURLRoot, auditLog); - } - - - /** - * Create a new client with no authentication embedded in the HTTP request. - * - * @param serverName name of the server to connect to - * @param serverPlatformURLRoot the network address of the server running the OMAS REST services - * - * @throws InvalidParameterException there is a problem creating the client-side components to issue any - * REST API calls. - */ - public DigitalServiceBaseClient(String serverName, - String serverPlatformURLRoot) throws InvalidParameterException - { - final String methodName = "Client Constructor"; - - invalidParameterHandler.validateOMAGServerPlatformURL(serverPlatformURLRoot, serverName, methodName); - - this.serverName = serverName; - this.serverPlatformURLRoot = serverPlatformURLRoot; - - this.restClient = new DigitalServiceRESTClient(serverName, serverPlatformURLRoot); + this.openMetadataStoreClient = new OpenMetadataStoreClient(serverName, serverPlatformURLRoot); + this.invalidParameterHandler.setMaxPagingSize(maxPageSize); } @@ -91,630 +42,17 @@ public DigitalServiceBaseClient(String serverName, * @param serverPlatformURLRoot the network address of the server running the OMAS REST services * @param userId caller's userId embedded in all HTTP requests * @param password caller's userId embedded in all HTTP requests + * @param maxPageSize number of elements that can be returned on a call * - * @throws InvalidParameterException there is a problem creating the client-side components to issue any - * REST API calls. + * @throws InvalidParameterException there is a problem creating the client-side components to issue any REST API calls. */ public DigitalServiceBaseClient(String serverName, String serverPlatformURLRoot, String userId, - String password) throws InvalidParameterException + String password, + int maxPageSize) throws InvalidParameterException { - final String methodName = "Client Constructor"; - - invalidParameterHandler.validateOMAGServerPlatformURL(serverPlatformURLRoot, serverName, methodName); - - this.serverName = serverName; - this.serverPlatformURLRoot = serverPlatformURLRoot; - - this.restClient = new DigitalServiceRESTClient(serverName, serverPlatformURLRoot, userId, password); - } - - - /** - * Create a new client that passes userId and password in each HTTP request. This is the - * userId/password of the calling server. The end user's userId is sent on each request. - * - * @param serverName name of the server to connect to - * @param serverPlatformURLRoot the network address of the server running the OMAS REST services - * @param userId caller's userId embedded in all HTTP requests - * @param password caller's userId embedded in all HTTP requests - * @param auditLog logging destination - * - * @throws InvalidParameterException there is a problem creating the client-side components to issue any - * REST API calls. - */ - public DigitalServiceBaseClient(String serverName, - String serverPlatformURLRoot, - String userId, - String password, - AuditLog auditLog) throws InvalidParameterException - { - final String methodName = "Client Constructor"; - - invalidParameterHandler.validateOMAGServerPlatformURL(serverPlatformURLRoot, serverName, methodName); - - this.serverName = serverName; - this.serverPlatformURLRoot = serverPlatformURLRoot; - - this.restClient = new DigitalServiceRESTClient(serverName, serverPlatformURLRoot, userId, password, auditLog); - } - - - /** - * Create a new client that is going to be used in an OMAG Server. - * - * @param serverName name of the server to connect to - * @param serverPlatformURLRoot the network address of the server running the OMAS REST services - * @param restClient client that issues the REST API calls - * @param maxPageSize maximum number of results supported by this server - * - * @throws InvalidParameterException there is a problem creating the client-side components to issue any - * REST API calls. - */ - public DigitalServiceBaseClient(String serverName, - String serverPlatformURLRoot, - DigitalServiceRESTClient restClient, - int maxPageSize) throws InvalidParameterException - { - final String methodName = "Client Constructor"; - - invalidParameterHandler.validateOMAGServerPlatformURL(serverPlatformURLRoot, serverName, methodName); - - this.serverName = serverName; - this.serverPlatformURLRoot = serverPlatformURLRoot; - - invalidParameterHandler.setMaxPagingSize(maxPageSize); - - this.restClient = restClient; - } - - - /* ===================================================================================================================== - * Basic client methods - */ - - - /** - * Create a new metadata element. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param properties properties about the element to store - * @param propertiesParameterName name of parameter passing the properties - * @param urlTemplate URL to call (no expected placeholders) - * @param methodName calling method - * - * @return unique identifier of the new element - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - String createReferenceable(String userId, - String externalSourceGUID, - String externalSourceName, - ReferenceableProperties properties, - String propertiesParameterName, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - final String qualifiedNameParameterName = "qualifiedName"; - - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateObject(properties, propertiesParameterName, methodName); - invalidParameterHandler.validateName(properties.getQualifiedName(), qualifiedNameParameterName, methodName); - - ReferenceableRequestBody requestBody = new ReferenceableRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - requestBody.setProperties(properties); - - GUIDResponse restResult = restClient.callGUIDPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId); - - return restResult.getGUID(); - } - - - /** - * Create a new metadata element to represent a community using an existing metadata element as a template. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param templateGUID unique identifier of the metadata element to copy - * @param templateProperties properties that override the template - * @param urlTemplate URL to call (with placeholders) - * @param methodName calling method - * - * @return unique identifier of the new community - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - String createReferenceableFromTemplate(String userId, - String externalSourceGUID, - String externalSourceName, - String templateGUID, - TemplateProperties templateProperties, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - final String templateGUIDParameterName = "templateGUID"; - final String propertiesParameterName = "templateProperties"; - final String qualifiedNameParameterName = "qualifiedName"; - - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(templateGUID, templateGUIDParameterName, methodName); - invalidParameterHandler.validateObject(templateProperties, propertiesParameterName, methodName); - invalidParameterHandler.validateName(templateProperties.getQualifiedName(), qualifiedNameParameterName, methodName); - - TemplateRequestBody requestBody = new TemplateRequestBody(templateProperties); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - - GUIDResponse restResult = restClient.callGUIDPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - templateGUID); - - return restResult.getGUID(); - } - - - /** - * Create a new metadata element to represent a community using an existing metadata element as a template. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param parentGUID unique identifier of the parent element - * @param parentGUIDParameterName name of parameter passing the parentGUID - * @param templateGUID unique identifier of the metadata element to copy - * @param templateProperties properties that override the template - * @param urlTemplate URL to call (with placeholders) - * @param methodName calling method - * - * @return unique identifier of the new community - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - String createReferenceableFromTemplateWithParent(String userId, - String externalSourceGUID, - String externalSourceName, - String parentGUID, - String parentGUIDParameterName, - String templateGUID, - TemplateProperties templateProperties, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - final String templateGUIDParameterName = "templateGUID"; - final String propertiesParameterName = "templateProperties"; - final String qualifiedNameParameterName = "qualifiedName"; - - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(templateGUID, templateGUIDParameterName, methodName); - invalidParameterHandler.validateGUID(parentGUID, parentGUIDParameterName, methodName); - invalidParameterHandler.validateObject(templateProperties, propertiesParameterName, methodName); - invalidParameterHandler.validateName(templateProperties.getQualifiedName(), qualifiedNameParameterName, methodName); - - TemplateRequestBody requestBody = new TemplateRequestBody(templateProperties); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - requestBody.setParentGUID(parentGUID); - - GUIDResponse restResult = restClient.callGUIDPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - templateGUID); - - return restResult.getGUID(); - } - - - /** - * Create a new metadata element that is attached to the parent. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param parentGUID unique identifier of the parent element - * @param parentGUIDParameterName name of parameter passing the parentGUID - * @param properties properties about the element to store - * @param propertiesParameterName name of parameter passing the properties - * @param urlTemplate URL to call (no expected placeholders) - * @param methodName calling method - * - * @return unique identifier of the new element - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - String createReferenceableWithParent(String userId, - String externalSourceGUID, - String externalSourceName, - String parentGUID, - String parentGUIDParameterName, - ReferenceableProperties properties, - String propertiesParameterName, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - final String qualifiedNameParameterName = "qualifiedName"; - - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(parentGUID, parentGUIDParameterName, methodName); - invalidParameterHandler.validateObject(properties, propertiesParameterName, methodName); - invalidParameterHandler.validateName(properties.getQualifiedName(), qualifiedNameParameterName, methodName); - - ReferenceableRequestBody requestBody = new ReferenceableRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - requestBody.setParentGUID(parentGUID); - requestBody.setProperties(properties); - - GUIDResponse restResult = restClient.callGUIDPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId); - - return restResult.getGUID(); - } - - - /** - * Update the metadata element. It is possible to use the subtype property classes or - * set up specialized properties in extended properties. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param elementGUID unique identifier of the metadata element to update - * @param elementGUIDParameterName name of parameter passing the elementGUID - * @param isMergeUpdate should the new properties be merged with existing properties (true) or completely replace them (false)? - * @param properties new properties for the metadata element - * @param propertiesParameterName name of parameter passing the properties - * @param urlTemplate URL to call (no expected placeholders) - * @param methodName calling method - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - void updateReferenceable(String userId, - String externalSourceGUID, - String externalSourceName, - String elementGUID, - String elementGUIDParameterName, - boolean isMergeUpdate, - ReferenceableProperties properties, - String propertiesParameterName, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - final String qualifiedNameParameterName = "qualifiedName"; - - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameterName, methodName); - invalidParameterHandler.validateObject(properties, propertiesParameterName, methodName); - - if (! isMergeUpdate) - { - invalidParameterHandler.validateName(properties.getQualifiedName(), qualifiedNameParameterName, methodName); - } - - ReferenceableRequestBody requestBody = new ReferenceableRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - requestBody.setProperties(properties); - - restClient.callVoidPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - elementGUID, - isMergeUpdate); - } - - - /** - * Add or update classification on referenceable. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param elementGUID unique identifier of the metadata element to classify - * @param elementGUIDParameter parameter name for elementGUID - * @param properties properties of security at the site - * @param urlTemplate URL to call with placeholder for guid - * @param methodName calling method - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - void setReferenceableClassification(String userId, - String externalSourceGUID, - String externalSourceName, - String elementGUID, - String elementGUIDParameter, - ClassificationProperties properties, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - - { - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameter, methodName); - - ClassificationRequestBody requestBody = new ClassificationRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - requestBody.setProperties(properties); - - restClient.callVoidPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - elementGUID); - } - - - /** - * Remove classification from the referenceable. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param elementGUID unique identifier of the metadata element to classify - * @param elementGUIDParameter parameter name for elementGUID - * @param urlTemplate URL to call with placeholder for guid - * @param methodName calling method - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - void removeReferenceableClassification(String userId, - String externalSourceGUID, - String externalSourceName, - String elementGUID, - String elementGUIDParameter, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - - { - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameter, methodName); - - ExternalSourceRequestBody requestBody = new ExternalSourceRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - - restClient.callVoidPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - elementGUID); - } - - - /** - * Create a relationship between a primary element and a secondary element. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param primaryElementGUID unique identifier of the primary element - * @param primaryElementGUIDParameterName name of parameter passing the primaryElementGUID - * @param properties describes the properties for the relationship - * @param secondaryElementGUID unique identifier of the element to connect it to - * @param secondaryElementGUIDParameterName name of parameter passing the secondaryElementGUID - * @param urlTemplate URL to call (no expected placeholders) - * @param methodName calling method - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - void setupRelationship(String userId, - String externalSourceGUID, - String externalSourceName, - String primaryElementGUID, - String primaryElementGUIDParameterName, - RelationshipProperties properties, - String secondaryElementGUID, - String secondaryElementGUIDParameterName, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(primaryElementGUID, primaryElementGUIDParameterName, methodName); - invalidParameterHandler.validateGUID(secondaryElementGUID, secondaryElementGUIDParameterName, methodName); - - RelationshipRequestBody requestBody = new RelationshipRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - requestBody.setProperties(properties); - - restClient.callVoidPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - primaryElementGUID, - secondaryElementGUID); - } - - - /** - * Remove a relationship. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param primaryElementGUID unique identifier of the primary element - * @param primaryElementGUIDParameterName name of parameter passing the primaryElementGUID - * @param secondaryElementGUID unique identifier of the element to connect it to - * @param secondaryElementGUIDParameterName name of parameter passing the secondaryElementGUID - * @param urlTemplate URL to call (no expected placeholders) - * @param methodName calling method - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - void clearRelationship(String userId, - String externalSourceGUID, - String externalSourceName, - String primaryElementGUID, - String primaryElementGUIDParameterName, - String secondaryElementGUID, - String secondaryElementGUIDParameterName, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(primaryElementGUID, primaryElementGUIDParameterName, methodName); - invalidParameterHandler.validateGUID(secondaryElementGUID, secondaryElementGUIDParameterName, methodName); - - ExternalSourceRequestBody requestBody = new ExternalSourceRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - - restClient.callVoidPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - primaryElementGUID, - secondaryElementGUID); - } - - - /** - * Retrieve a relationship. - * - * @param userId calling user - * @param startingElementGUID unique identifier of the primary element - * @param startingElementGUIDParameterName name of parameter passing the startingElementGUID - * @param urlTemplate URL to call (no expected placeholders) - * @param startFrom index of the list to start from (0 for start) - * @param pageSize maximum number of elements to return. - * @param methodName calling method - * - * @return list of related elements - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - List getRelatedElements(String userId, - String startingElementGUID, - String startingElementGUIDParameterName, - String urlTemplate, - int startFrom, - int pageSize, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(startingElementGUID, startingElementGUIDParameterName, methodName); - - RelatedElementListResponse restResult = restClient.callRelatedElementListGetRESTCall(methodName, - urlTemplate, - serverName, - userId, - startingElementGUID, - Integer.toString(startFrom), - Integer.toString(pageSize)); - - return restResult.getElementList(); - } - - - /** - * Remove the metadata element. - * - * @param userId calling user - * @param externalSourceGUID unique identifier of software capability representing the caller - * @param externalSourceName unique name of software capability representing the caller - * @param elementGUID unique identifier of the metadata element to remove - * @param elementGUIDParameterName name of parameter passing the elementGUID - * @param urlTemplate URL to call (no expected placeholders) - * @param methodName calling method - * - * @throws InvalidParameterException one of the parameters is invalid - * @throws UserNotAuthorizedException the user is not authorized to issue this request - * @throws PropertyServerException there is a problem reported in the open metadata server(s) - */ - public void removeReferenceable(String userId, - String externalSourceGUID, - String externalSourceName, - String elementGUID, - String elementGUIDParameterName, - String urlTemplate, - String methodName) throws InvalidParameterException, - UserNotAuthorizedException, - PropertyServerException - { - invalidParameterHandler.validateUserId(userId, methodName); - invalidParameterHandler.validateGUID(elementGUID, elementGUIDParameterName, methodName); - - ExternalSourceRequestBody requestBody = new ExternalSourceRequestBody(); - - requestBody.setExternalSourceGUID(externalSourceGUID); - requestBody.setExternalSourceName(externalSourceName); - - restClient.callVoidPostRESTCall(methodName, - urlTemplate, - requestBody, - serverName, - userId, - elementGUID); + this.openMetadataStoreClient = new OpenMetadataStoreClient(serverName, serverPlatformURLRoot, userId, password); + this.invalidParameterHandler.setMaxPagingSize(maxPageSize); } } diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/CollectionConverter.java b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/CollectionConverter.java new file mode 100644 index 00000000000..b088c236ab4 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/CollectionConverter.java @@ -0,0 +1,209 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalservice.client.converters; + +import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.CollectionElement; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionProperties; +import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElements; +import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyHelper; + +import java.lang.reflect.InvocationTargetException; + + +/** + * CollectionConverter generates a CollectionElement from a Collection entity + */ +public class CollectionConverter extends DigitalServiceConverterBase +{ + /** + * Constructor + * + * @param propertyHelper helper object to parse entity + * @param serviceName name of this component + * @param serverName local server name + */ + public CollectionConverter(PropertyHelper propertyHelper, + String serviceName, + String serverName) + { + super(propertyHelper, serviceName, serverName); + } + + + /** + * Using the supplied openMetadataElement, return a new instance of the bean. This is used for most beans that have + * a one to one correspondence with the repository instances. + * + * @param beanClass name of the class to create + * @param openMetadataElement openMetadataElement containing the properties + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @Override + public B getNewBean(Class beanClass, + OpenMetadataElement openMetadataElement, + String methodName) throws PropertyServerException + { + try + { + /* + * This is initial confirmation that the generic converter has been initialized with an appropriate bean class. + */ + B returnBean = beanClass.getDeclaredConstructor().newInstance(); + + if (returnBean instanceof CollectionElement bean) + { + CollectionProperties collectionProperties = new CollectionProperties(); + + bean.setElementHeader(super.getMetadataElementHeader(beanClass, openMetadataElement, methodName)); + + ElementProperties elementProperties; + + /* + * The initial set of values come from the openMetadataElement. + */ + if (openMetadataElement != null) + { + elementProperties = new ElementProperties(openMetadataElement.getElementProperties()); + + collectionProperties.setQualifiedName(this.removeQualifiedName(elementProperties)); + collectionProperties.setAdditionalProperties(this.removeAdditionalProperties(elementProperties)); + collectionProperties.setName(this.removeName(elementProperties)); + collectionProperties.setDescription(this.removeDescription(elementProperties)); + collectionProperties.setCollectionType(this.removeCollectionType(elementProperties)); + collectionProperties.setEffectiveFrom(openMetadataElement.getEffectiveFromTime()); + collectionProperties.setEffectiveTo(openMetadataElement.getEffectiveToTime()); + + /* + * Any remaining properties are returned in the extended properties. They are + * assumed to be defined in a subtype. + */ + collectionProperties.setTypeName(bean.getElementHeader().getType().getTypeName()); + collectionProperties.setExtendedProperties(this.getRemainingExtendedProperties(elementProperties)); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), OpenMetadataElement.class.getName(), methodName); + } + + bean.setProperties(collectionProperties); + } + + return returnBean; + } + catch (IllegalAccessException | InstantiationException | ClassCastException | NoSuchMethodException | InvocationTargetException error) + { + super.handleInvalidBeanClass(beanClass.getName(), error, methodName); + } + + return null; + } + + + + /** + * Using the supplied openMetadataElement, return a new instance of the bean. This is used for most beans that have + * a one to one correspondence with the repository instances. + * + * @param beanClass name of the class to create + * @param relatedMetadataElement the properties of an open metadata element plus details of the relationship used to navigate to it + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @Override + public B getNewBean(Class beanClass, + RelatedMetadataElement relatedMetadataElement, + String methodName) throws PropertyServerException + { + try + { + /* + * This is initial confirmation that the generic converter has been initialized with an appropriate bean class. + */ + B returnBean = beanClass.getDeclaredConstructor().newInstance(); + + if (returnBean instanceof CollectionElement bean) + { + CollectionProperties collectionProperties = new CollectionProperties(); + OpenMetadataElement openMetadataElement = relatedMetadataElement.getElement(); + + bean.setElementHeader(super.getMetadataElementHeader(beanClass, openMetadataElement, methodName)); + + ElementProperties elementProperties; + + /* + * The initial set of values come from the openMetadataElement. + */ + if (openMetadataElement != null) + { + elementProperties = new ElementProperties(openMetadataElement.getElementProperties()); + + collectionProperties.setQualifiedName(this.removeQualifiedName(elementProperties)); + collectionProperties.setAdditionalProperties(this.removeAdditionalProperties(elementProperties)); + collectionProperties.setName(this.removeName(elementProperties)); + collectionProperties.setDescription(this.removeDescription(elementProperties)); + collectionProperties.setCollectionType(this.removeCollectionType(elementProperties)); + collectionProperties.setEffectiveFrom(openMetadataElement.getEffectiveFromTime()); + collectionProperties.setEffectiveTo(openMetadataElement.getEffectiveToTime()); + + /* + * Any remaining properties are returned in the extended properties. They are + * assumed to be defined in a subtype. + */ + collectionProperties.setTypeName(bean.getElementHeader().getType().getTypeName()); + collectionProperties.setExtendedProperties(this.getRemainingExtendedProperties(elementProperties)); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), OpenMetadataElement.class.getName(), methodName); + } + + bean.setProperties(collectionProperties); + + bean.setRelatedElement(super.getRelatedElement(beanClass, relatedMetadataElement, methodName)); + } + + return returnBean; + } + catch (IllegalAccessException | InstantiationException | ClassCastException | NoSuchMethodException | InvocationTargetException error) + { + super.handleInvalidBeanClass(beanClass.getName(), error, methodName); + } + + return null; + } + + + /** + * Using the supplied instances, return a new instance of the bean. This is used for beans that + * contain a combination of the properties from an element and that of a connected relationship. + * + * @param beanClass name of the class to create + * @param element element containing the properties + * @param relationship relationship containing the properties + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewBean(Class beanClass, + OpenMetadataElement element, + RelatedMetadataElements relationship, + String methodName) throws PropertyServerException + { + B returnBean = this.getNewBean(beanClass, element, methodName); + + if (returnBean instanceof CollectionElement bean) + { + bean.setRelatedElement(super.getRelatedElement(beanClass, element, relationship, methodName)); + } + + return returnBean; + } +} diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/CollectionMemberConverter.java b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/CollectionMemberConverter.java new file mode 100644 index 00000000000..9657f82688f --- /dev/null +++ b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/CollectionMemberConverter.java @@ -0,0 +1,146 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalservice.client.converters; + +import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.CollectionMember; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionMemberStatus; +import org.odpi.openmetadata.accessservices.digitalservice.properties.CollectionMembershipProperties; +import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyHelper; +import org.odpi.openmetadata.frameworkservices.gaf.client.converters.OpenMetadataTypesMapper; + +import java.lang.reflect.InvocationTargetException; + + +/** + * CollectionMemberConverter generates a CollectionMember bean from a RelatedMetadataElement. + */ +public class CollectionMemberConverter extends DigitalServiceConverterBase +{ + /** + * Constructor + * + * @param propertyHelper helper object to parse entity + * @param serviceName name of this component + * @param serverName local server name + */ + public CollectionMemberConverter(PropertyHelper propertyHelper, + String serviceName, + String serverName) + { + super(propertyHelper, serviceName, serverName); + } + + + /** + * Using the supplied openMetadataElement, return a new instance of the bean. This is used for most beans that have + * a one to one correspondence with the repository instances. + * + * @param beanClass name of the class to create + * @param relatedMetadataElement the properties of an open metadata element plus details of the relationship used to navigate to it + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @Override + public B getNewBean(Class beanClass, + RelatedMetadataElement relatedMetadataElement, + String methodName) throws PropertyServerException + { + try + { + /* + * This is initial confirmation that the generic converter has been initialized with an appropriate bean class. + */ + B returnBean = beanClass.getDeclaredConstructor().newInstance(); + + if (returnBean instanceof CollectionMember bean) + { + CollectionMembershipProperties membershipProperties = new CollectionMembershipProperties(); + + bean.setElementHeader(super.getMetadataElementHeader(beanClass, + relatedMetadataElement, + relatedMetadataElement.getRelationshipGUID(), + null, + methodName)); + + ElementProperties elementProperties; + + /* + * The initial set of values come from the openMetadataElement. + */ + if (relatedMetadataElement.getRelationshipProperties() != null) + { + elementProperties = new ElementProperties(relatedMetadataElement.getRelationshipProperties()); + + membershipProperties.setMembershipRationale(this.removeMembershipRationale(elementProperties)); + membershipProperties.setCreatedBy(this.removeCreatedBy(elementProperties)); + membershipProperties.setExpression(this.removeExpression(elementProperties)); + membershipProperties.setConfidence(this.removeConfidence(elementProperties)); + membershipProperties.setConfidence(this.removeConfidence(elementProperties)); + membershipProperties.setSteward(this.removeSteward(elementProperties)); + membershipProperties.setStewardTypeName(this.removeStewardTypeName(elementProperties)); + membershipProperties.setStewardPropertyName(this.removeStewardPropertyName(elementProperties)); + membershipProperties.setSource(this.removeSource(elementProperties)); + membershipProperties.setNotes(this.removeNotes(elementProperties)); + membershipProperties.setStatus(this.removeCollectionMemberStatus(elementProperties)); + membershipProperties.setEffectiveFrom(relatedMetadataElement.getEffectiveFromTime()); + membershipProperties.setEffectiveTo(relatedMetadataElement.getEffectiveToTime()); + + /* + * Any remaining properties are returned in the extended properties. They are + * assumed to be defined in a subtype. + */ + membershipProperties.setExtendedProperties(this.getRemainingExtendedProperties(elementProperties)); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), OpenMetadataElement.class.getName(), methodName); + } + + bean.setMember(super.getElementStub(beanClass, relatedMetadataElement.getElement(), methodName)); + } + + return returnBean; + } + catch (IllegalAccessException | InstantiationException | ClassCastException | NoSuchMethodException | InvocationTargetException error) + { + super.handleInvalidBeanClass(beanClass.getName(), error, methodName); + } + + return null; + } + + + /** + * Extract and delete the CollectionMemberStatus property from the supplied element properties. + * + * @param elementProperties properties from entity + * @return KeyPattern enum + */ + CollectionMemberStatus removeCollectionMemberStatus(ElementProperties elementProperties) + { + final String methodName = "removeCollectionMemberStatus"; + + if (elementProperties != null) + { + String retrievedProperty = propertyHelper.removeEnumProperty(serviceName, + OpenMetadataTypesMapper.MEMBERSHIP_STATUS_ENUM_TYPE_NAME, + elementProperties, + methodName); + + for (CollectionMemberStatus status : CollectionMemberStatus.values()) + { + if (status.getName().equals(retrievedProperty)) + { + return status; + } + } + } + + return null; + } +} diff --git a/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/DigitalServiceConverterBase.java b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/DigitalServiceConverterBase.java new file mode 100644 index 00000000000..adcdc9f69d3 --- /dev/null +++ b/open-metadata-implementation/access-services/digital-service/digital-service-client/src/main/java/org/odpi/openmetadata/accessservices/digitalservice/client/converters/DigitalServiceConverterBase.java @@ -0,0 +1,133 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.accessservices.digitalservice.client.converters; + +import org.odpi.openmetadata.accessservices.digitalservice.metadataelements.RelatedElement; +import org.odpi.openmetadata.accessservices.digitalservice.properties.RelationshipProperties; +import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; +import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElements; +import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyHelper; +import org.odpi.openmetadata.frameworkservices.gaf.client.converters.OpenMetadataConverterBase; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceProperties; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefCategory; + +public abstract class DigitalServiceConverterBase extends OpenMetadataConverterBase +{ + /** + * Constructor + * + * @param propertyHelper helper object to parse entity + * @param serviceName name of this component + * @param serverName local server name + */ + public DigitalServiceConverterBase(PropertyHelper propertyHelper, + String serviceName, + String serverName) + { + super(propertyHelper, serviceName, serverName); + } + + + /** + * Using the supplied instances, return a new instance of a relatedElement bean. This is used for beans that + * contain a combination of the properties from an entity and that of a connected relationship. + * + * @param beanClass name of the class to create + * @param element entity containing the properties + * @param relationship relationship containing the properties + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + public RelatedElement getRelatedElement(Class beanClass, + OpenMetadataElement element, + RelatedMetadataElements relationship, + String methodName) throws PropertyServerException + { + RelatedElement relatedElement = new RelatedElement(); + + relatedElement.setRelationshipHeader(this.getMetadataElementHeader(beanClass, relationship, relationship.getRelationshipGUID(), null, methodName)); + + if (relationship != null) + { + ElementProperties instanceProperties = new ElementProperties(relationship.getRelationshipProperties()); + + RelationshipProperties relationshipProperties = new RelationshipProperties(); + + relationshipProperties.setEffectiveFrom(relationship.getEffectiveFromTime()); + relationshipProperties.setEffectiveTo(relationship.getEffectiveToTime()); + relationshipProperties.setExtendedProperties(this.getRemainingExtendedProperties(instanceProperties)); + + relatedElement.setRelationshipProperties(relationshipProperties); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), RelatedMetadataElements.class.getName(), methodName); + } + + if (element != null) + { + ElementStub elementStub = this.getElementStub(beanClass, element, methodName); + + relatedElement.setRelatedElement(elementStub); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), OpenMetadataElement.class.getName(), methodName); + } + + return relatedElement; + } + + + /** + * Using the supplied instances, return a new instance of a relatedElement bean. This is used for beans that + * contain a combination of the properties from an entity and that of a connected relationship. + * + * @param beanClass name of the class to create + * @param relatedMetadataElement results containing the properties + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + public RelatedElement getRelatedElement(Class beanClass, + RelatedMetadataElement relatedMetadataElement, + String methodName) throws PropertyServerException + { + RelatedElement relatedElement = new RelatedElement(); + + relatedElement.setRelationshipHeader(this.getMetadataElementHeader(beanClass, relatedMetadataElement, relatedMetadataElement.getRelationshipGUID(), null, methodName)); + + if (relatedMetadataElement != null) + { + ElementProperties instanceProperties = new ElementProperties(relatedMetadataElement.getRelationshipProperties()); + + RelationshipProperties relationshipProperties = new RelationshipProperties(); + + relationshipProperties.setEffectiveFrom(relatedMetadataElement.getEffectiveFromTime()); + relationshipProperties.setEffectiveTo(relatedMetadataElement.getEffectiveToTime()); + relationshipProperties.setExtendedProperties(this.getRemainingExtendedProperties(instanceProperties)); + + relatedElement.setRelationshipProperties(relationshipProperties); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), RelatedMetadataElements.class.getName(), methodName); + } + + if (relatedMetadataElement.getStartingElement() != null) + { + relatedElement.setRelatedElement(new ElementStub(relatedMetadataElement.getStartingElement())); + } + else + { + handleMissingMetadataInstance(beanClass.getName(), ElementStub.class.getName(), methodName); + } + + return relatedElement; + } +} diff --git a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/admin/GovernanceEngineAdmin.java b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/admin/GovernanceEngineAdmin.java index 12457072c78..38c1971355a 100644 --- a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/admin/GovernanceEngineAdmin.java +++ b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/admin/GovernanceEngineAdmin.java @@ -117,6 +117,7 @@ public void initialize(AccessServiceConfig accessServiceConfig, serverName, omrsTopicConnector, new GovernanceEngineOMRSTopicListener(AccessServiceDescription.GOVERNANCE_ENGINE_OMAS.getAccessServiceFullName(), + serverName, serverUserName, instance.getMetadataElementHandler(), instance.getGovernanceActionHandler(), diff --git a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementConverter.java b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementConverter.java index a506746a11a..f496184258e 100644 --- a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementConverter.java +++ b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementConverter.java @@ -6,6 +6,7 @@ import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityDetail; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityProxy; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceProperties; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.Relationship; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSRepositoryHelper; @@ -58,14 +59,11 @@ public B getNewBean(Class beanClass, */ B returnBean = beanClass.getDeclaredConstructor().newInstance(); - if (returnBean instanceof RelatedMetadataElement) + if (returnBean instanceof RelatedMetadataElement bean) { - RelatedMetadataElement bean = (RelatedMetadataElement) returnBean; - fillElementControlHeader(bean, relationship); bean.setRelationshipGUID(relationship.getGUID()); - bean.setRelationshipType(super.getElementType(relationship)); InstanceProperties instanceProperties = relationship.getProperties(); @@ -76,6 +74,15 @@ public B getNewBean(Class beanClass, bean.setRelationshipProperties(mapElementProperties(instanceProperties)); } + EntityProxy startingProxy = relationship.getEntityOneProxy(); + + if (startingProxy.getGUID().equals(entity.getGUID())) + { + startingProxy = relationship.getEntityTwoProxy(); + } + + bean.setStartingElement(super.getElementStub(beanClass, startingProxy, methodName)); + OpenMetadataElement relatedBean = new OpenMetadataElement(); super.fillOpenMetadataElement(relatedBean, entity); diff --git a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementsConverter.java b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementsConverter.java index 8f19f8e2605..21c503003db 100644 --- a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementsConverter.java +++ b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/converters/RelatedElementsConverter.java @@ -3,6 +3,7 @@ package org.odpi.openmetadata.accessservices.governanceengine.converters; import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElements; import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityProxy; @@ -77,12 +78,20 @@ public B getNewRelationshipBean(Class beanClass, } EntityProxy entityProxy = relationship.getEntityOneProxy(); + ElementStub elementStub = new ElementStub(); bean.setElementGUIDAtEnd1(entityProxy.getGUID()); + fillElementControlHeader(elementStub, entityProxy); + elementStub.setUniqueName(getQualifiedName(entityProxy.getUniqueProperties())); + bean.setElementAtEnd1(elementStub); entityProxy = relationship.getEntityTwoProxy(); + elementStub = new ElementStub(); bean.setElementGUIDAtEnd2(entityProxy.getGUID()); + fillElementControlHeader(elementStub, entityProxy); + elementStub.setUniqueName(getQualifiedName(entityProxy.getUniqueProperties())); + bean.setElementAtEnd2(elementStub); if (repositoryHelper.getTypeDefByName(serviceName, relationship.getType().getTypeDefName()) instanceof RelationshipDef relationshipDef) { diff --git a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/outtopic/GovernanceEngineOMRSTopicListener.java b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/outtopic/GovernanceEngineOMRSTopicListener.java index 78f51fc13ee..490b87cf2f2 100644 --- a/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/outtopic/GovernanceEngineOMRSTopicListener.java +++ b/open-metadata-implementation/access-services/governance-engine/governance-engine-server/src/main/java/org/odpi/openmetadata/accessservices/governanceengine/outtopic/GovernanceEngineOMRSTopicListener.java @@ -12,6 +12,13 @@ import org.odpi.openmetadata.commonservices.generichandlers.OpenMetadataAPIMapper; import org.odpi.openmetadata.frameworks.auditlog.AuditLog; import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementControlHeader; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementOrigin; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementOriginCategory; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStatus; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementType; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementVersions; import org.odpi.openmetadata.frameworks.governanceaction.events.WatchdogClassificationEvent; import org.odpi.openmetadata.frameworks.governanceaction.events.WatchdogEventType; import org.odpi.openmetadata.frameworks.governanceaction.events.WatchdogMetadataElementEvent; @@ -25,12 +32,21 @@ import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityDetail; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityProxy; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntitySummary; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceAuditHeader; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceProperties; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceProvenanceType; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceStatus; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceType; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.Relationship; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.RelationshipDef; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDef; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefLink; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefSummary; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSRepositoryHelper; +import java.util.ArrayList; +import java.util.List; + /** * GovernanceEngineOMRSTopicListener is the listener that registers with the repository services (OMRS) @@ -48,6 +64,7 @@ public class GovernanceEngineOMRSTopicListener extends OMRSTopicListenerBase private final GovernanceActionHandler governanceActionHandler; private final String userId; + private final String serverName; private final EntityDetail nullEntity = null; private final Relationship nullRelationship = null; @@ -57,6 +74,7 @@ public class GovernanceEngineOMRSTopicListener extends OMRSTopicListenerBase * Initialize the topic listener. * * @param serviceName this is the full name of the service - used for error logging in base class + * @param serverName name of this server * @param userId local server userId for issuing requests to the repository services * @param metadataElementHandler handler for working with GAF objects * @param governanceActionHandler handler for working with governance actions @@ -65,6 +83,7 @@ public class GovernanceEngineOMRSTopicListener extends OMRSTopicListenerBase * @param auditLog logging destination */ public GovernanceEngineOMRSTopicListener(String serviceName, + String serverName, String userId, MetadataElementHandler metadataElementHandler, GovernanceActionHandler governanceActionHandler, @@ -78,6 +97,7 @@ public GovernanceEngineOMRSTopicListener(String this.governanceActionHandler = governanceActionHandler; this.userId = userId; + this.serverName = serverName; this.eventPublisher = eventPublisher; this.repositoryHelper = repositoryHelper; @@ -434,6 +454,11 @@ private RelatedMetadataElements getRelatedElements(Relationship relationship) if (relationship.getEntityOneProxy() != null) { relatedMetadataElements.setElementGUIDAtEnd1(relationship.getEntityOneProxy().getGUID()); + + ElementStub elementStub = new ElementStub(); + fillElementControlHeader(elementStub, relationship.getEntityOneProxy()); + elementStub.setUniqueName(getQualifiedName(relationship.getEntityOneProxy().getUniqueProperties())); + relatedMetadataElements.setElementAtEnd1(elementStub); } if (relationship.getEntityTwoProxy() != null) @@ -454,6 +479,237 @@ private RelatedMetadataElements getRelatedElements(Relationship relationship) } + /** + * Fill a GAF control header from the information in a repository services element header. + * + * @param elementControlHeader GAF object control header + * @param header OMRS element header + */ + public void fillElementControlHeader(ElementControlHeader elementControlHeader, + InstanceAuditHeader header) + { + if (header != null) + { + elementControlHeader.setStatus(this.getElementStatus(header.getStatus())); + elementControlHeader.setType(this.getElementType(header)); + + ElementOrigin elementOrigin = new ElementOrigin(); + + elementOrigin.setSourceServer(serverName); + elementOrigin.setOriginCategory(this.getElementOriginCategory(header.getInstanceProvenanceType())); + elementOrigin.setHomeMetadataCollectionId(header.getMetadataCollectionId()); + elementOrigin.setHomeMetadataCollectionName(header.getMetadataCollectionName()); + elementOrigin.setLicense(header.getInstanceLicense()); + + elementControlHeader.setOrigin(elementOrigin); + + elementControlHeader.setVersions(this.getElementVersions(header)); + } + } + + + + /** + * Translate the repository services' InstanceStatus to an ElementStatus. + * + * @param instanceStatus value from the repository services + * @return ElementStatus enum + */ + protected ElementStatus getElementStatus(InstanceStatus instanceStatus) + { + if (instanceStatus != null) + { + switch (instanceStatus) + { + case UNKNOWN: + return ElementStatus.UNKNOWN; + + case DRAFT: + return ElementStatus.DRAFT; + + case PREPARED: + return ElementStatus.PREPARED; + + case PROPOSED: + return ElementStatus.PROPOSED; + + case APPROVED: + return ElementStatus.APPROVED; + + case REJECTED: + return ElementStatus.REJECTED; + + case APPROVED_CONCEPT: + return ElementStatus.APPROVED_CONCEPT; + + case UNDER_DEVELOPMENT: + return ElementStatus.UNDER_DEVELOPMENT; + + case DEVELOPMENT_COMPLETE: + return ElementStatus.DEVELOPMENT_COMPLETE; + + case APPROVED_FOR_DEPLOYMENT: + return ElementStatus.APPROVED_FOR_DEPLOYMENT; + + case STANDBY: + return ElementStatus.STANDBY; + + case ACTIVE: + return ElementStatus.ACTIVE; + + case FAILED: + return ElementStatus.FAILED; + + case DISABLED: + return ElementStatus.DISABLED; + + case COMPLETE: + return ElementStatus.COMPLETE; + + case DEPRECATED: + return ElementStatus.DEPRECATED; + + case OTHER: + return ElementStatus.OTHER; + } + } + + return ElementStatus.UNKNOWN; + } + + + + /** + * Convert information from a repository instance into an Open Connector Framework ElementType. + * + * @param instanceHeader values from the server + * @return OCF ElementType object + */ + public ElementType getElementType(InstanceAuditHeader instanceHeader) + { + ElementType elementType = new ElementType(); + + InstanceType instanceType = instanceHeader.getType(); + + if (instanceType != null) + { + String typeDefName = instanceType.getTypeDefName(); + TypeDef typeDef = repositoryHelper.getTypeDefByName(serviceName, typeDefName); + + elementType.setTypeId(instanceType.getTypeDefGUID()); + elementType.setTypeName(typeDefName); + elementType.setTypeVersion(instanceType.getTypeDefVersion()); + elementType.setTypeDescription(typeDef.getDescription()); + + List typeDefSuperTypes = repositoryHelper.getSuperTypes(serviceName, typeDefName); + + if ((typeDefSuperTypes != null) && (! typeDefSuperTypes.isEmpty())) + { + List superTypes = new ArrayList<>(); + + for (TypeDefLink typeDefLink : typeDefSuperTypes) + { + if (typeDefLink != null) + { + superTypes.add(typeDefLink.getName()); + } + } + + if (! superTypes.isEmpty()) + { + elementType.setSuperTypeNames(superTypes); + } + } + } + + return elementType; + } + + + + + /** + * Translate the repository services' InstanceProvenanceType to an ElementOrigin. + * + * @param instanceProvenanceType value from the repository services + * @return ElementOrigin enum + */ + protected ElementOriginCategory getElementOriginCategory(InstanceProvenanceType instanceProvenanceType) + { + if (instanceProvenanceType != null) + { + switch (instanceProvenanceType) + { + case DEREGISTERED_REPOSITORY: + return ElementOriginCategory.DEREGISTERED_REPOSITORY; + + case EXTERNAL_SOURCE: + return ElementOriginCategory.EXTERNAL_SOURCE; + + case EXPORT_ARCHIVE: + return ElementOriginCategory.EXPORT_ARCHIVE; + + case LOCAL_COHORT: + return ElementOriginCategory.LOCAL_COHORT; + + case CONTENT_PACK: + return ElementOriginCategory.CONTENT_PACK; + + case CONFIGURATION: + return ElementOriginCategory.CONFIGURATION; + + case UNKNOWN: + return ElementOriginCategory.UNKNOWN; + } + } + + return ElementOriginCategory.UNKNOWN; + } + + + /** + * Extract detail of the version of the element and the user's maintaining it. + * + * @param header audit header from the repository + * @return ElementVersions object + */ + protected ElementVersions getElementVersions(InstanceAuditHeader header) + { + ElementVersions elementVersions = new ElementVersions(); + + elementVersions.setCreatedBy(header.getCreatedBy()); + elementVersions.setCreateTime(header.getCreateTime()); + elementVersions.setUpdatedBy(header.getUpdatedBy()); + elementVersions.setUpdateTime(header.getUpdateTime()); + elementVersions.setMaintainedBy(header.getMaintainedBy()); + elementVersions.setVersion(header.getVersion()); + + return elementVersions; + } + + + /** + * Extract the qualifiedName property from the supplied instance properties. + * + * @param instanceProperties properties from entity + * @return string name or null + */ + protected String getQualifiedName(InstanceProperties instanceProperties) + { + final String methodName = "getQualifiedName"; + + if (instanceProperties != null) + { + return repositoryHelper.getStringProperty(serviceName, + OpenMetadataAPIMapper.QUALIFIED_NAME_PROPERTY_NAME, + instanceProperties, + methodName); + } + + return null; + } + + /** * Process an entity extracted from an event. * diff --git a/open-metadata-implementation/access-services/governance-program/governance-program-api/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/properties/ContactMethodType.java b/open-metadata-implementation/access-services/governance-program/governance-program-api/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/properties/ContactMethodType.java index e8142b31824..d582f3cc48d 100644 --- a/open-metadata-implementation/access-services/governance-program/governance-program-api/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/governance-program/governance-program-api/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,16 +23,38 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; diff --git a/open-metadata-implementation/access-services/it-infrastructure/it-infrastructure-api/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/properties/ContactMethodType.java b/open-metadata-implementation/access-services/it-infrastructure/it-infrastructure-api/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/properties/ContactMethodType.java index b556ce6d052..96ad7d5befa 100644 --- a/open-metadata-implementation/access-services/it-infrastructure/it-infrastructure-api/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/it-infrastructure/it-infrastructure-api/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,21 +23,43 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; - private int openTypeOrdinal; + private final int openTypeOrdinal; private final int ordinal; private final String name; diff --git a/open-metadata-implementation/access-services/project-management/project-management-api/src/main/java/org/odpi/openmetadata/accessservices/projectmanagement/properties/ContactMethodType.java b/open-metadata-implementation/access-services/project-management/project-management-api/src/main/java/org/odpi/openmetadata/accessservices/projectmanagement/properties/ContactMethodType.java index 2b56cd04379..f86a05addf1 100644 --- a/open-metadata-implementation/access-services/project-management/project-management-api/src/main/java/org/odpi/openmetadata/accessservices/projectmanagement/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/project-management/project-management-api/src/main/java/org/odpi/openmetadata/accessservices/projectmanagement/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,16 +23,38 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; diff --git a/open-metadata-implementation/access-services/security-manager/security-manager-api/src/main/java/org/odpi/openmetadata/accessservices/securitymanager/properties/ContactMethodType.java b/open-metadata-implementation/access-services/security-manager/security-manager-api/src/main/java/org/odpi/openmetadata/accessservices/securitymanager/properties/ContactMethodType.java index d00ed35c3f5..495083c74ac 100644 --- a/open-metadata-implementation/access-services/security-manager/security-manager-api/src/main/java/org/odpi/openmetadata/accessservices/securitymanager/properties/ContactMethodType.java +++ b/open-metadata-implementation/access-services/security-manager/security-manager-api/src/main/java/org/odpi/openmetadata/accessservices/securitymanager/properties/ContactMethodType.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import java.io.Serializable; - import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY; @@ -25,16 +23,38 @@ @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE) @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) -public enum ContactMethodType implements Serializable +public enum ContactMethodType { - EMAIL (0, 0, "Email", "Send email"), + /** + * Send email. + */ + EMAIL (0, 0, "Email", "Send email."), + + /** + * Call by phone. + */ PHONE (1, 1, "Phone", "Call by phone."), + + /** + * Send chat message. + */ CHAT (2, 2, "Chat", "Send chat message."), + + /** + * Send comment to personal profile. + */ PROFILE (3, 3, "Profile", "Send comment to personal profile."), + + /** + * Send comment to a social media account. + */ ACCOUNT (4, 4, "Account", "Send comment to a social media account."), - OTHER (99,99, "Other", "Another mechanism."); - private static final long serialVersionUID = 1L; + /** + * Another contact mechanism. + */ + OTHER (99,99, "Other", "Another contact mechanism."); + private static final String ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; private static final String ENUM_TYPE_NAME = "ContactMethodType"; diff --git a/open-metadata-implementation/adapters/open-connectors/governance-action-connectors/src/main/java/org/odpi/openmetadata/adapters/connectors/governanceactions/remediation/OriginSeekerGovernanceActionConnector.java b/open-metadata-implementation/adapters/open-connectors/governance-action-connectors/src/main/java/org/odpi/openmetadata/adapters/connectors/governanceactions/remediation/OriginSeekerGovernanceActionConnector.java index 9ada9479aa9..d0e20d3bf8b 100644 --- a/open-metadata-implementation/adapters/open-connectors/governance-action-connectors/src/main/java/org/odpi/openmetadata/adapters/connectors/governanceactions/remediation/OriginSeekerGovernanceActionConnector.java +++ b/open-metadata-implementation/adapters/open-connectors/governance-action-connectors/src/main/java/org/odpi/openmetadata/adapters/connectors/governanceactions/remediation/OriginSeekerGovernanceActionConnector.java @@ -247,7 +247,7 @@ private List getOrigins(OpenMetadataElement asset, { if (lineageLink != null) { - String relationshipName = lineageLink.getRelationshipType().getTypeName(); + String relationshipName = lineageLink.getType().getTypeName(); if (lineageRelationships.contains(relationshipName)) { diff --git a/open-metadata-implementation/adapters/open-connectors/integration-connectors/atlas-integration-connector/src/main/java/org/odpi/openmetadata/adapters/connectors/integration/apacheatlas/modules/AtlasIntegrationModuleBase.java b/open-metadata-implementation/adapters/open-connectors/integration-connectors/atlas-integration-connector/src/main/java/org/odpi/openmetadata/adapters/connectors/integration/apacheatlas/modules/AtlasIntegrationModuleBase.java index 29899e003ea..7253caeb91d 100644 --- a/open-metadata-implementation/adapters/open-connectors/integration-connectors/atlas-integration-connector/src/main/java/org/odpi/openmetadata/adapters/connectors/integration/apacheatlas/modules/AtlasIntegrationModuleBase.java +++ b/open-metadata-implementation/adapters/open-connectors/integration-connectors/atlas-integration-connector/src/main/java/org/odpi/openmetadata/adapters/connectors/integration/apacheatlas/modules/AtlasIntegrationModuleBase.java @@ -31,7 +31,11 @@ import org.odpi.openmetadata.frameworks.connectors.ffdc.UserNotAuthorizedException; import org.odpi.openmetadata.frameworks.connectors.properties.ConnectionProperties; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyHelper; +import org.odpi.openmetadata.frameworks.integration.context.OpenMetadataAccess; import org.odpi.openmetadata.integrationservices.catalog.connector.CatalogIntegratorContext; +import org.odpi.openmetadata.integrationservices.catalog.connector.CollaborationExchangeService; import org.odpi.openmetadata.integrationservices.catalog.connector.DataAssetExchangeService; import org.odpi.openmetadata.integrationservices.catalog.connector.StewardshipExchangeService; @@ -39,8 +43,10 @@ import java.util.Arrays; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; /** * AtlasIntegrationModuleBase defines the interface that classes that support the synchronization of particular types of metadata with Apache Atlas. @@ -92,9 +98,12 @@ public abstract class AtlasIntegrationModuleBase protected final List embeddedConnectors; protected final ApacheAtlasRESTConnector atlasClient; protected final String targetRootURL; + protected final PropertyHelper propertyHelper = new PropertyHelper(); protected final DataAssetExchangeService dataAssetExchangeService; protected final StewardshipExchangeService stewardshipExchangeService; + protected final CollaborationExchangeService collaborationExchangeService; + protected final OpenMetadataAccess openMetadataAccess; @@ -131,6 +140,8 @@ public AtlasIntegrationModuleBase(String connectorName, this.dataAssetExchangeService = myContext.getDataAssetExchangeService(); this.stewardshipExchangeService = myContext.getStewardshipExchangeService(); + this.collaborationExchangeService = myContext.getCollaborationExchangeService(); + this.openMetadataAccess = myContext.getIntegrationGovernanceContext().getOpenMetadataAccess(); /* * Deduplication is turned off so that the connector works with the entities it created rather than @@ -138,6 +149,7 @@ public AtlasIntegrationModuleBase(String connectorName, */ this.dataAssetExchangeService.setForDuplicateProcessing(true); this.stewardshipExchangeService.setForDuplicateProcessing(true); + this.collaborationExchangeService.setForDuplicateProcessing(true); } diff --git a/open-metadata-implementation/common-services/ffdc-services/src/main/java/org/odpi/openmetadata/commonservices/ffdc/rest/SearchStringRequestBody.java b/open-metadata-implementation/common-services/ffdc-services/src/main/java/org/odpi/openmetadata/commonservices/ffdc/rest/SearchStringRequestBody.java index a8a155aa462..0dfe806a58e 100644 --- a/open-metadata-implementation/common-services/ffdc-services/src/main/java/org/odpi/openmetadata/commonservices/ffdc/rest/SearchStringRequestBody.java +++ b/open-metadata-implementation/common-services/ffdc-services/src/main/java/org/odpi/openmetadata/commonservices/ffdc/rest/SearchStringRequestBody.java @@ -22,9 +22,10 @@ @JsonIgnoreProperties(ignoreUnknown=true) public class SearchStringRequestBody { - private Date effectiveTime = null; - private String searchString = null; + private Date effectiveTime = null; + private String searchString = null; private String searchStringParameterName = null; + private String typeName = null; /** @@ -48,6 +49,7 @@ public SearchStringRequestBody(SearchStringRequestBody template) effectiveTime = template.getEffectiveTime(); searchString = template.getSearchString(); searchStringParameterName = template.getSearchStringParameterName(); + typeName = template.getTypeName(); } } @@ -118,6 +120,28 @@ public void setSearchStringParameterName(String searchStringParameterName) } + /** + * Return the optional type name for the search results (null means any type). + * + * @return unique name of type + */ + public String getTypeName() + { + return typeName; + } + + + /** + * Set up the optional type name for the search results (null means any type). + * + * @param typeName unique name of type + */ + public void setTypeName(String typeName) + { + this.typeName = typeName; + } + + /** * Standard toString method. * @@ -130,6 +154,7 @@ public String toString() "effectiveTime=" + effectiveTime + ", searchString='" + searchString + '\'' + ", searchStringParameterName='" + searchStringParameterName + '\'' + + ", typeName='" + typeName + '\'' + '}'; } @@ -154,6 +179,7 @@ public boolean equals(Object objectToCompare) SearchStringRequestBody that = (SearchStringRequestBody) objectToCompare; return Objects.equals(effectiveTime, that.effectiveTime) && Objects.equals(searchString, that.searchString) && + Objects.equals(typeName, that.typeName) && Objects.equals(searchStringParameterName, that.searchStringParameterName); } @@ -166,6 +192,6 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - return Objects.hash(effectiveTime, searchString, searchStringParameterName); + return Objects.hash(effectiveTime, searchString, searchStringParameterName, typeName); } } diff --git a/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIGenericConverter.java b/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIGenericConverter.java index 377a6817a1a..db558a77415 100644 --- a/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIGenericConverter.java +++ b/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIGenericConverter.java @@ -1281,6 +1281,28 @@ protected String removeDescription(InstanceProperties instanceProperties) } + /** + * Extract and delete the collectionType property from the supplied instance properties. + * + * @param instanceProperties properties from entity + * @return string text or null + */ + protected String removeCollectionType(InstanceProperties instanceProperties) + { + final String methodName = "removeCollectionType"; + + if (instanceProperties != null) + { + return repositoryHelper.removeStringProperty(serviceName, + OpenMetadataAPIMapper.COLLECTION_TYPE_PROPERTY_NAME, + instanceProperties, + methodName); + } + + return null; + } + + /** * Extract and delete the keyword property from the supplied instance properties. * diff --git a/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIMapper.java b/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIMapper.java index 3562f91f397..13e8cfb5007 100644 --- a/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIMapper.java +++ b/open-metadata-implementation/common-services/generic-handlers/src/main/java/org/odpi/openmetadata/commonservices/generichandlers/OpenMetadataAPIMapper.java @@ -43,6 +43,7 @@ public class OpenMetadataAPIMapper public static final String IS_PUBLIC_PROPERTY_NAME = "isPublic"; /* from feedback relationships - Area 1 */ public static final String DISPLAY_NAME_PROPERTY_NAME = "displayName"; /* from many entities */ public static final String DESCRIPTION_PROPERTY_NAME = "description"; /* from many entities */ + public static final String COLLECTION_TYPE_PROPERTY_NAME = "collectionType"; /* from Collection entity */ public static final String SAMPLE_DATA_TYPE_GUID = "0ee9c0f1-a89b-4806-8276-7c74f07fe190"; public static final String SAMPLE_DATA_TYPE_NAME = "SampleData"; diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-api/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/ffdc/OpenMetadataStoreErrorCode.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-api/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/ffdc/OpenMetadataStoreErrorCode.java index d2160a772aa..f7ac08e25d6 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-api/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/ffdc/OpenMetadataStoreErrorCode.java +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-api/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/ffdc/OpenMetadataStoreErrorCode.java @@ -31,23 +31,106 @@ public enum OpenMetadataStoreErrorCode implements ExceptionMessageSet "The system is unable to connect to the open metadata property server.", "Check that the server where the Open Metadata Store Services are running initialized correctly. " + "Correct any errors discovered and retry the request when the open metadata services are available."), + + /** + * OPEN-METADATA-STORE-500-001 - An unsupported bean class named {0} was passed to the repository services by the {1} request for + * open metadata access service {2} on server {3}; error message was: {4} + */ + INVALID_BEAN_CLASS(500, "OPEN-METADATA-STORE-500-001", + "An unsupported bean class named {0} was passed to the repository services by the {1} request for open metadata access service {2} on " + + "server {3}; error message was: {4}", + "The system is unable to process the request because it is not able to instantiate the bean.", + "Correct the code that initializes the converter during server start up."), + + /** + * OPEN-METADATA-STORE-500-002 - The {0} service has not implemented the {1} method in a subclass of the {2} converter class for + * bean class {3} and so is unable to create the bean for method {4} + */ + MISSING_CONVERTER_METHOD(500, "OPEN-METADATA-STORE-500-002", + "The {0} service has not implemented the {1} method in a subclass of the {2} converter class for bean class {3} and so is " + + "unable to create the bean for method {4}", + "The system is unable to process the request because it is not able to populate the bean.", + "Correct the converter implementation as part of this module."), + + /** + * OPEN-METADATA-STORE-500-003 - An unexpected bean class named {0} was passed to the repository services by the {1} request for + * open metadata access service {2} on server {3}; the expected class name is: {4} + */ + UNEXPECTED_BEAN_CLASS(500, "OPEN-METADATA-STORE-500-003", + "An unexpected bean class named {0} was passed to the repository services by the {1} request for " + + "open metadata access service {2} on server {3}; " + + "the expected class name is: {4}", + "The system is unable to process the request because it is not able to support the bean's methods.", + "Correct the code that sets up the converter as part of this service."), + + /** + * OPEN-METADATA-STORE-500-004 - One of the converters for the {0} service is not able to populate a bean of type {1} + * because a metadata instance of type {2} has not passed to method {3} + */ + MISSING_METADATA_INSTANCE(500, "OPEN-METADATA-STORE-500-004", + "One of the converters for the {0} service is not able to populate a bean of type {1} " + + "because a metadata instance of type {2} has not passed to method {3}", + "The system is unable to process the request because it is missing one or more metadata elements" + + "needed to instantiate the bean.", + "Correct the handler code that calls the converter as part of this request since it has not passed sufficient" + + " metadata instances to the converter. Alternatively, these instances may not be in the repositories " + + "(legitimately) and the converter needs to be able to handle that variation."), + + /** + * OPEN-METADATA-STORE-500-005 - One of the converters for the {0} service is not able to populate a bean of type {1} + * because a metadata instance of type {2} was passed to method {3} instead of the expected type of {4} + */ + BAD_INSTANCE_TYPE(500, "OPEN-METADATA-STORE-500-005", + "One of the converters for the {0} service is not able to populate a bean of type {1} " + + "because a metadata instance of type {2} was passed to method {3} instead of the expected type of {4}", + "The system is unable to process the request because the wrong type of instances have been retrieved from " + + "the metadata repositories.", + "The error is likely to be either in the handler code that called the converter, or more likely, " + + "in the way that the handler and the converter were initialized at server start up."), + + + /** + * OPEN-METADATA-STORE-500-011 - An entity has been retrieved by method {0} from service {1} that has an invalid header: {2} + */ + BAD_ENTITY(500, "OPEN-METADATA-STORE-500-011", + "An entity has been retrieved by method {0} from service {1} that has an invalid header: {2}", + "The system is unable to format all or part of the response because the repositories have returned an invalid entity.", + "Use knowledge of the request and the contents of the repositories to track down and correct the invalid entity. " + + "There is probably an error in the implementation of the repository that originated the entity."), + + /** + * OPEN-METADATA-STORE-500-012 - A relationship {0} has been retrieved by method {1} from service {2} that has an invalid entity proxy at end {3}: {4} + */ + BAD_ENTITY_PROXY(500, "OPEN-METADATA-STORE-500-012", + "A relationship {0} has been retrieved by method {1} from service {2} that has an invalid entity proxy at end {3}: {4}", + "The system is unable to format all or part of the response because the repositories have returned a relationship with an " + + "invalid entity proxy that links it to an entity.", + "Use knowledge of the request and the contents of the repositories to track down and correct the relationship with the " + + "invalid entity proxy. There is probably an error in the implementation of the repository that originated the relationship."), + + /** + * OPEN-METADATA-STORE-500-013 - A relationship has been retrieved by method {0} from service {1} that has an invalid header: {2} + */ + BAD_RELATIONSHIP(500, "OPEN-METADATA-STORE-500-013", + "A relationship has been retrieved by method {0} from service {1} that has an invalid header: {2}", + "The system is unable to format all or part of the response because the repositories have returned an invalid relationship.", + "Use knowledge of the request and the contents of the repositories to track down and correct the invalid relationship. " + + "There is probably an error in the implementation of the repository that originated the relationship."), UNEXPECTED_INITIALIZATION_EXCEPTION(503, "OPEN-METADATA-STORE-503-005", "A {0} exception was caught during start up of service {1} for server {2}. The error message was: {3}", "The system detected an unexpected error during start up and is now in an unknown state.", "The error message should indicate the cause of the error. Otherwise look for errors in the " + - "remote server's audit log and console to understand and correct the source of the error."); - + "remote server's audit log and console to understand and correct the source of the error."), + ; private final ExceptionMessageDefinition messageDefinition; /** * The constructor for OpenMetadataStoreErrorCode expects to be passed one of the enumeration rows defined in * OpenMetadataStoreErrorCode above. For example: - * * OpenMetadataStoreErrorCode errorCode = OpenMetadataStoreErrorCode.SERVER_NOT_AVAILABLE; - * * This will expand out to the 5 parameters shown below. * * @param httpErrorCode error code to use over REST calls diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/OpenMetadataClientBase.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/OpenMetadataClientBase.java index 9dc719b8834..f48be6717cf 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/OpenMetadataClientBase.java +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/OpenMetadataClientBase.java @@ -341,6 +341,40 @@ public List findMetadataElementsWithString(String userId, int pageSize) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException + { + return this.findMetadataElementsWithString(userId, searchString, null, forLineage, forDuplicateProcessing, effectiveTime, startFrom, pageSize); + } + + + /** + * Retrieve the metadata elements of the requested type that contain the requested string. + * + * @param userId caller's userId + * @param searchString name to retrieve + * @param typeName name of the type to limit the results to (may be null to mean all types) + * @param forLineage the retrieved elements are for lineage processing so include archived elements + * @param forDuplicateProcessing the retrieved elements are for duplicate processing so do not combine results from known duplicates. + * @param effectiveTime only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now. + * @param startFrom paging start point + * @param pageSize maximum results that can be returned + * + * @return list of matching metadata elements (or null if no elements match the name) + * + * @throws InvalidParameterException the qualified name is null + * @throws UserNotAuthorizedException the governance action service is not able to access the element + * @throws PropertyServerException there is a problem accessing the metadata store + */ + @Override + public List findMetadataElementsWithString(String userId, + String searchString, + String typeName, + boolean forLineage, + boolean forDuplicateProcessing, + Date effectiveTime, + int startFrom, + int pageSize) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException { final String methodName = "findMetadataElementsWithString"; final String searchStringParameterName = "searchString"; @@ -353,6 +387,7 @@ public List findMetadataElementsWithString(String userId, requestBody.setSearchString(searchString); requestBody.setSearchStringParameterName(searchStringParameterName); + requestBody.setTypeName(typeName); OpenMetadataElementsResponse restResult = restClient.callOpenMetadataElementsPostRESTCall(methodName, urlTemplate, @@ -745,7 +780,7 @@ public String createMetadataElementInStore(String userId, * * @param userId caller's userId * @param metadataElementGUID unique identifier of the metadata element to update - * @param replaceProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update * the individual properties specified on the request. * @param forLineage the query is to support lineage retrieval * @param forDuplicateProcessing the query is for duplicate processing and so must not deduplicate @@ -759,7 +794,7 @@ public String createMetadataElementInStore(String userId, @Override public void updateMetadataElementInStore(String userId, String metadataElementGUID, - boolean replaceProperties, + boolean replaceAllProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, @@ -771,7 +806,7 @@ public void updateMetadataElementInStore(String userId, null, null, metadataElementGUID, - replaceProperties, + replaceAllProperties, forLineage, forDuplicateProcessing, properties, diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/converters/OpenMetadataConverterBase.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/converters/OpenMetadataConverterBase.java new file mode 100644 index 00000000000..265963257be --- /dev/null +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/converters/OpenMetadataConverterBase.java @@ -0,0 +1,7719 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.frameworkservices.gaf.client.converters; + +import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementClassification; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementControlHeader; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementHeader; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; +import org.odpi.openmetadata.frameworks.governanceaction.properties.AttachedClassification; +import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; +import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElements; +import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; +import org.odpi.openmetadata.frameworks.governanceaction.search.PropertyHelper; +import org.odpi.openmetadata.frameworkservices.gaf.ffdc.OpenMetadataStoreErrorCode; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.Classification; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceHeader; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + + +/** + * OpenMetadataConverterBase provides the generic methods for the bean converters used to provide translation between + * specific API beans and the Open Metadata services beans from the Governance Action Framework (GAF). + * Generic classes have limited knowledge of the classes these are working on and this means creating a new instance of a + * class from within a generic is a little involved. This class provides the generic method for creating + * and initializing an Open Metadata API bean. + */ +public abstract class OpenMetadataConverterBase +{ + protected PropertyHelper propertyHelper; + protected String serviceName; + protected String serverName; + + + /** + * Constructor captures the initial content + * + * @param propertyHelper helper object to parse element + * @param serviceName name of this component + * @param serverName name of this server + */ + public OpenMetadataConverterBase(PropertyHelper propertyHelper, + String serviceName, + String serverName) + { + this.propertyHelper = propertyHelper; + this.serviceName = serviceName; + this.serverName = serverName; + } + + + /* ==================================================================================================== + * This first set of methods represents the external interface of the converter. These are the methods + * called from the clients. They define which type of bean is required and provide a set + * of open metadata instances to use to fill the bean. These methods are overridden by the specific + * converters. + */ + + + /** + * Using the supplied openMetadataElement, return a new instance of the bean. This is used for most beans that have + * a one to one correspondence with the repository instances. + * + * @param beanClass name of the class to create + * @param openMetadataElement openMetadataElement containing the properties + * @param methodName calling method + * @return bean populated with properties from the openMetadataElement supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewBean(Class beanClass, + OpenMetadataElement openMetadataElement, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewBean(openMetadataElement)"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Using the supplied openMetadataElement, return a new instance of the bean. This is used for most beans that have + * a one to one correspondence with the repository instances. + * + * @param beanClass name of the class to create + * @param openMetadataElement openMetadataElement containing the properties + * @param methodName calling method + * @return bean populated with properties from the openMetadataElement supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewBean(Class beanClass, + RelatedMetadataElement openMetadataElement, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewBean(relatedMetadataElement)"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Using the supplied instances, return a new instance of the bean. This is used for beans that + * contain a combination of the properties from an element and that of a connected relationship. + * + * @param beanClass name of the class to create + * @param element element containing the properties + * @param relationship relationship containing the properties + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewBean(Class beanClass, + OpenMetadataElement element, + RelatedMetadataElements relationship, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewBean(element, relationship)"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Using the supplied instances, return a new instance of the bean. It is used for beans such as + * an Annotation or DataField bean which combine knowledge from the element and its linked relationships. + * + * @param beanClass name of the class to create + * @param primaryEntity element that is the root of the collection of entities that make up the + * content of the bean + * @param relationships relationships linking the entities + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewComplexBean(Class beanClass, + OpenMetadataElement primaryEntity, + List relationships, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewComplexBean"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Using the supplied instances, return a new instance of the bean. It is used for beans such as + * a connection bean which made up of 3 entities (Connection, ConnectorType and Endpoint) plus the + * relationships between them. The relationships may be omitted if they do not have any properties. + * + * @param beanClass name of the class to create + * @param primaryEntity element that is the root of the collection of entities that make up the content of the bean + * @param supplementaryEntities entities connected to the primary element by the relationships + * @param relationships relationships linking the entities + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewComplexBean(Class beanClass, + OpenMetadataElement primaryEntity, + List supplementaryEntities, + List relationships, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewComplexBean(with supplementary entities)"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Using the supplied relationship, return a new instance of the bean. It is used for beans that + * represent a simple relationship between two entities. + * + * @param beanClass name of the class to create + * @param relationship relationship linking the entities + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewRelatedMetadataElementsBean(Class beanClass, + RelatedMetadataElements relationship, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewRelatedMetadataElementsBean"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Return the converted bean. This is a special method used for schema types since they are stored + * as a collection of instances. + * + * @param beanClass name of the class to create + * @param schemaRootHeader header of the schema element that holds the root information + * @param schemaTypeTypeName name of type of the schema type to create + * @param elementProperties properties describing the schema type + * @param schemaRootClassifications classifications from the schema root element + * @param attributeCount number of attributes (for a complex schema type) + * @param validValueSetGUID unique identifier of the set of valid values (for an enum schema type) + * @param externalSchemaType unique identifier for the properties of the schema type that is shared by multiple attributes/assets + * @param mapFromSchemaType bean containing the properties of the schema type that is part of a map definition + * @param mapToSchemaType bean containing the properties of the schema type that is part of a map definition + * @param schemaTypeOptions list of schema types that could be the type for this attribute + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewSchemaTypeBean(Class beanClass, + InstanceHeader schemaRootHeader, + String schemaTypeTypeName, + ElementProperties elementProperties, + List schemaRootClassifications, + int attributeCount, + String validValueSetGUID, + B externalSchemaType, + B mapFromSchemaType, + B mapToSchemaType, + List schemaTypeOptions, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewSchemaTypeBean"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /** + * Return the converted bean. This is a special method used for schema types since they are stored + * as a collection of instances. For external schema types and map elements, both the GUID and the bean are returned to + * allow the consuming OMAS to choose whether it is returning GUIDs of the linked to schema or the schema type bean itself. + * + * @param beanClass name of the class to create + * @param schemaRootHeader header of the schema element that holds the root information + * @param schemaTypeTypeName name of type of the schema type to create + * @param elementProperties properties describing the schema type + * @param schemaRootClassifications classifications from the schema root element + * @param attributeCount number of attributes (for a complex schema type) + * @param validValueSetGUID unique identifier of the set of valid values (for an enum schema type) + * @param externalSchemaTypeGUID unique identifier of the external schema type + * @param externalSchemaType unique identifier for the properties of the schema type that is shared by multiple attributes/assets + * @param mapFromSchemaTypeGUID unique identifier of the mapFrom schema type + * @param mapFromSchemaType bean containing the properties of the schema type that is part of a map definition + * @param mapToSchemaTypeGUID unique identifier of the mapTo schema type + * @param mapToSchemaType bean containing the properties of the schema type that is part of a map definition + * @param schemaTypeOptionGUIDs list of unique identifiers for schema types that could be the type for this attribute + * @param schemaTypeOptions list of schema types that could be the type for this attribute + * @param queryTargets list of relationships to schema types that contain data values used to derive the schema type value(s) + * @param methodName calling method + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + @SuppressWarnings(value = "unused") + public B getNewSchemaTypeBean(Class beanClass, + InstanceHeader schemaRootHeader, + String schemaTypeTypeName, + ElementProperties elementProperties, + List schemaRootClassifications, + int attributeCount, + String validValueSetGUID, + String externalSchemaTypeGUID, + B externalSchemaType, + String mapFromSchemaTypeGUID, + B mapFromSchemaType, + String mapToSchemaTypeGUID, + B mapToSchemaType, + List schemaTypeOptionGUIDs, + List schemaTypeOptions, + List queryTargets, + String methodName) throws PropertyServerException + { + return this.getNewSchemaTypeBean(beanClass, + schemaRootHeader, + schemaTypeTypeName, + elementProperties, + schemaRootClassifications, + attributeCount, + validValueSetGUID, + externalSchemaType, + mapFromSchemaType, + mapToSchemaType, + schemaTypeOptions, + methodName); + } + + + /** + * Extract the properties from the schema attribute element. Each API creates a specialization of this method for its beans. + * + * @param beanClass name of the class to create + * @param schemaAttributeEntity element containing the properties for the main schema attribute + * @param typeClass name of type used to describe the schema type + * @param schemaType bean containing the properties of the schema type - this is filled out by the schema type converter + * @param schemaAttributeRelatedMetadataElements relationships containing the links to other schema attributes + * @param methodName calling method + * @param bean type used to create the schema type + * @return bean populated with properties from the instances supplied + * @throws PropertyServerException there is a problem instantiating the bean + */ + public B getNewSchemaAttributeBean(Class beanClass, + OpenMetadataElement schemaAttributeEntity, + Class typeClass, + T schemaType, + List schemaAttributeRelatedMetadataElements, + String methodName) throws PropertyServerException + { + final String thisMethodName = "getNewSchemaAttributeBean)"; + + handleUnimplementedConverterMethod(beanClass.getName(), thisMethodName, this.getClass().getName(), methodName); + + return null; + } + + + /* ========================================================== + * This method throws the exception that occurs if an OMAS fails to implement one of the updateXXXBean methods or + * the converter is configured with an invalid bean class. + */ + + /** + * Throw an exception to indicate that one of the update methods has not been implemented by an OMAS. + * + * @param beanClassName class name of bean + * @param missingMethodName method tha has not been implemented + * @param converterClassName class that detected the missing method + * @param methodName method that is missing + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been called with a method that is unexpected for the specific type of + * bean that this converter is implemented for. + */ + private void handleUnimplementedConverterMethod(String beanClassName, + String missingMethodName, + String converterClassName, + String methodName) throws PropertyServerException + { + throw new PropertyServerException(OpenMetadataStoreErrorCode.MISSING_CONVERTER_METHOD.getMessageDefinition(serviceName, + missingMethodName, + converterClassName, + beanClassName, + methodName), + this.getClass().getName(), + methodName); + } + + + /** + * Throw an exception to indicate that one of the update methods has not been implemented by an OMAS. + * + * @param beanClassName class name of bean + * @param error exception generated when the new bean is created + * @param methodName method that is missing + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is not a known class + */ + protected void handleInvalidBeanClass(String beanClassName, + Exception error, + String methodName) throws PropertyServerException + { + throw new PropertyServerException(OpenMetadataStoreErrorCode.INVALID_BEAN_CLASS.getMessageDefinition(beanClassName, + methodName, + serviceName, + serverName, + error.getMessage()), + this.getClass().getName(), + methodName, + error); + } + + + /** + * Throw an exception to indicate that one of the update methods has not been implemented by an OMAS. + * + * @param beanClassName class name of bean + * @param expectedBeanClass class name that the converter is able to process + * @param methodName method that is missing + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is incompatible with the handler + */ + protected void handleUnexpectedBeanClass(String beanClassName, + String expectedBeanClass, + String methodName) throws PropertyServerException + { + throw new PropertyServerException(OpenMetadataStoreErrorCode.UNEXPECTED_BEAN_CLASS.getMessageDefinition(beanClassName, + methodName, + serviceName, + serverName, + expectedBeanClass), + this.getClass().getName(), + methodName); + } + + + /** + * Throw an exception to indicate that a critical instance (typically the main element) has not been passed + * to the converter. + * + * @param beanClassName class name of bean + * @param elementClassName class name that the converter is able to process + * @param methodName method that is missing + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is incompatible with the handler + */ + protected void handleMissingMetadataInstance(String beanClassName, + String elementClassName, + String methodName) throws PropertyServerException + { + throw new PropertyServerException(OpenMetadataStoreErrorCode.MISSING_METADATA_INSTANCE.getMessageDefinition(serviceName, + beanClassName, + elementClassName, + methodName), + this.getClass().getName(), + methodName); + } + + + /** + * Throw an exception to indicate that a retrieved element has missing information. + * + * @param beanClassName class name of bean + * @param element the element with the bad header + * @param methodName calling method + * @throws PropertyServerException an invalid instance has been returned from the metadata repositories + */ + protected void handleBadEntity(String beanClassName, + OpenMetadataElement element, + String methodName) throws PropertyServerException + { + if (element == null) + { + handleMissingMetadataInstance(beanClassName, OpenMetadataElement.class.getName(), methodName); + } + else + { + throw new PropertyServerException(OpenMetadataStoreErrorCode.BAD_ENTITY.getMessageDefinition(methodName, + serviceName, + element.toString()), + this.getClass().getName(), + methodName); + } + } + + + /** + * Throw an exception to indicate that a critical instance (typically the main element) has not been passed + * to the converter. + * + * @param beanClassName class name of bean + * @param relationship the relationship with the bad header + * @param methodName calling method + * @throws PropertyServerException an invalid instance has been returned from the metadata repositories + */ + protected void handleBadRelatedMetadataElements(String beanClassName, + RelatedMetadataElements relationship, + String methodName) throws PropertyServerException + { + if (relationship == null) + { + handleMissingMetadataInstance(beanClassName, RelatedMetadataElements.class.getName(), methodName); + } + else + { + throw new PropertyServerException(OpenMetadataStoreErrorCode.BAD_RELATIONSHIP.getMessageDefinition(methodName, + serviceName, + relationship.toString()), + this.getClass().getName(), + methodName); + } + } + + + /* ====================================================== + * The methods that follow are used by the subclasses to extract specific properties from the instance properties. + * They are used for all properties except enums which need a specific method in the OMAS converters. + */ + + /** + * Extract the properties for the requested classification from the element. + * + * @param classificationName name of classification + * @param element element containing classification + * @return list of properties for the named classification + */ + protected ElementProperties getClassificationProperties(String classificationName, + OpenMetadataElement element) + { + if (element != null) + { + List elementClassifications = element.getClassifications(); + + if (elementClassifications != null) + { + return getClassificationProperties(classificationName, elementClassifications); + } + } + + return null; + } + + + /** + * Extract the properties for the requested classification from the list of classifications. + * + * @param classificationName name of classification + * @param elementClassifications list of classifications from an element + * @return list of properties for the named classification + */ + protected ElementProperties getClassificationProperties(String classificationName, + List elementClassifications) + { + if (elementClassifications != null) + { + for (AttachedClassification elementClassification : elementClassifications) + { + if (elementClassification != null) + { + if (classificationName.equals(elementClassification.getClassificationName())) + { + return elementClassification.getClassificationProperties(); + } + } + } + } + + return null; + } + + + /** + * Extract the properties from the element. + * + * @param beanClass name of the class to create + * @param element element containing the properties + * @param methodName calling method + * @return filled out element header + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is incompatible with the handler + */ + protected ElementHeader getMetadataElementHeader(Class beanClass, + OpenMetadataElement element, + String methodName) throws PropertyServerException + { + if (element != null) + { + return getMetadataElementHeader(beanClass, + element, + element.getElementGUID(), + element.getClassifications(), + methodName); + } + else + { + this.handleMissingMetadataInstance(beanClass.getName(), + OpenMetadataElement.class.getName(), + methodName); + } + + return null; + } + + + /** + * Extract the properties from the element. + * + * @param beanClass name of the class to create + * @param header header from the element containing the properties + * @param elementGUID unique identifier of the element + * @param classifications classification if this is an element + * @param methodName calling method + * @return filled out element header + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is incompatible with the handler + */ + public ElementHeader getMetadataElementHeader(Class beanClass, + ElementControlHeader header, + String elementGUID, + List classifications, + String methodName) throws PropertyServerException + { + if (header != null) + { + ElementHeader elementHeader = new ElementHeader(header); + + elementHeader.setGUID(elementGUID); + elementHeader.setClassifications(this.getElementClassifications(classifications)); + + return elementHeader; + } + else + { + this.handleMissingMetadataInstance(beanClass.getName(), ElementControlHeader.class.getName(), methodName); + } + + return null; + } + + + /** + * Extract the properties from the element. + * + * @param beanClass name of the class to create + * @param element element containing the properties + * @param methodName calling method + * @return filled out element header + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is incompatible with the handler + */ + public ElementStub getElementStub(Class beanClass, + OpenMetadataElement element, + String methodName) throws PropertyServerException + { + if (element != null) + { + ElementHeader elementHeader = getMetadataElementHeader(beanClass, element, methodName); + ElementStub elementStub = new ElementStub(elementHeader); + + elementStub.setUniqueName(propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + element.getElementProperties(), + methodName)); + + return elementStub; + } + else + { + this.handleMissingMetadataInstance(beanClass.getName(), + OpenMetadataElement.class.getName(), + methodName); + } + + return null; + } + + + + /** + * Extract the properties from the relationship. + * + * @param beanClass name of the class to create + * @param relationship relationship containing the properties + * @param methodName calling method + * @return filled out element header + * @throws PropertyServerException there is a problem in the use of the generic handlers because + * the converter has been configured with a type of bean that is incompatible with the handler + */ + public ElementStub getElementStub(Class beanClass, + RelatedMetadataElements relationship, + String methodName) throws PropertyServerException + { + if (relationship != null) + { + ElementHeader elementHeader = getMetadataElementHeader(beanClass, + relationship, + relationship.getRelationshipGUID(), + null, + methodName); + + return new ElementStub(elementHeader); + } + else + { + this.handleMissingMetadataInstance(beanClass.getName(), + RelatedMetadataElements.class.getName(), + methodName); + } + + return null; + } + + + /** + * Extract the classifications from the element. + * + * @param element element containing the classifications + * @return list of bean classifications + */ + List getEntityClassifications(OpenMetadataElement element) + { + if (element != null) + { + return this.getElementClassifications(element.getClassifications()); + } + + return null; + } + + + /** + * Extract the classifications from the element. + * + * @param attachedClassifications classifications direct from the element + * @return list of bean classifications + */ + protected List getElementClassifications(List attachedClassifications) + { + List beanClassifications = null; + + if (attachedClassifications != null) + { + beanClassifications = new ArrayList<>(); + + for (AttachedClassification attachedClassification : attachedClassifications) + { + if (attachedClassification != null) + { + ElementClassification beanClassification = new ElementClassification(attachedClassification); + + beanClassification.setClassificationName(attachedClassification.getClassificationName()); + beanClassification.setClassificationProperties(propertyHelper.getElementPropertiesAsMap(attachedClassification.getClassificationProperties())); + + beanClassifications.add(beanClassification); + } + } + + } + + return beanClassifications; + } + + + + + /** + * Extract the qualifiedName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String getQualifiedName(ElementProperties elementProperties) + { + final String methodName = "getQualifiedName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the qualifiedName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeQualifiedName(ElementProperties elementProperties) + { + final String methodName = "removeQualifiedName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.QUALIFIED_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the qualifiedName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return map or null + */ + protected Map removeAdditionalProperties(ElementProperties elementProperties) + { + final String methodName = "removeAdditionalProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.ADDITIONAL_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Convert the remaining properties into a map that is returned as the extended properties. + * + * @param elementProperties properties from element + * @return map or null + */ + protected Map getRemainingExtendedProperties(ElementProperties elementProperties) + { + if (elementProperties != null) + { + return propertyHelper.getElementPropertiesAsMap(elementProperties); + } + + return null; + } + + + /** + * Extract and delete the displayName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeDisplayName(ElementProperties elementProperties) + { + final String methodName = "removeDisplayName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DISPLAY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the displayName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String getDisplayName(ElementProperties elementProperties) + { + final String methodName = "getDisplayName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.DISPLAY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the name property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeName(ElementProperties elementProperties) + { + final String methodName = "removeName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the version identifier property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeVersionIdentifier(ElementProperties elementProperties) + { + final String methodName = "removeVersionIdentifier"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.VERSION_IDENTIFIER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the description property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getDescription(ElementProperties elementProperties) + { + final String methodName = "getDescription"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the description property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDescription(ElementProperties elementProperties) + { + final String methodName = "removeDescription"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the collectionType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCollectionType(ElementProperties elementProperties) + { + final String methodName = "removeCollectionType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.COLLECTION_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the keyword property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeKeyword(ElementProperties elementProperties) + { + final String methodName = "removeKeyword"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.KEYWORD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the topicType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeTopicType(ElementProperties elementProperties) + { + final String methodName = "removeTopicType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TOPIC_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the operatingSystem property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeOperatingSystem(ElementProperties elementProperties) + { + final String methodName = "removeOperatingSystem"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.OPERATING_SYSTEM_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the operatingSystemPatchLevel property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeOperatingSystemPatchLevel(ElementProperties elementProperties) + { + final String methodName = "removeOperatingSystemPatchLevel"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.OPERATING_SYSTEM_PATCH_LEVEL_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the minimumInstances property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return int + */ + protected int removeMinimumInstances(ElementProperties elementProperties) + { + final String methodName = "removeMinimumInstances"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.MINIMUM_INSTANCES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + /** + * Extract and delete the maximumInstances property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return int + */ + protected int removeMaximumInstances(ElementProperties elementProperties) + { + final String methodName = "removeMaximumInstances"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.MAXIMUM_INSTANCES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the initials property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeInitials(ElementProperties elementProperties) + { + final String methodName = "removeInitials"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.INITIALS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the givenNames property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeGivenNames(ElementProperties elementProperties) + { + final String methodName = "removeGivenNames"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.GIVEN_NAMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the surname property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeSurname(ElementProperties elementProperties) + { + final String methodName = "removeSurname"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SURNAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the fullName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeFullName(ElementProperties elementProperties) + { + final String methodName = "removeFullName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.FULL_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the preferredLanguage property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removePreferredLanguage(ElementProperties elementProperties) + { + final String methodName = "removePreferredLanguage"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PREFERRED_LANGUAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the jobTitle property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeJobTitle(ElementProperties elementProperties) + { + final String methodName = "removeJobTitle"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.JOB_TITLE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the employeeNumber property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeEmployeeNumber(ElementProperties elementProperties) + { + final String methodName = "removeEmployeeNumber"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EMPLOYEE_NUMBER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the employeeType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeEmployeeType(ElementProperties elementProperties) + { + final String methodName = "removeEmployeeType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EMPLOYEE_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the contactType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeContactType(ElementProperties elementProperties) + { + final String methodName = "removeContactType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CONTACT_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the contactMethodService property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeContactMethodService(ElementProperties elementProperties) + { + final String methodName = "removeContactMethodService"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CONTACT_METHOD_SERVICE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the contactMethodValue property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeContactMethodValue(ElementProperties elementProperties) + { + final String methodName = "removeContactMethodValue"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CONTACT_METHOD_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the mission property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeMission(ElementProperties elementProperties) + { + final String methodName = "removeMission"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.MISSION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + + /** + * Extract and delete the associationType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeAssociationType(ElementProperties elementProperties) + { + final String methodName = "removeAssociationType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ASSOCIATION_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the identifier property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeIdentifier(ElementProperties elementProperties) + { + final String methodName = "removeIdentifier"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.IDENTIFIER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the externalInstanceCreatedBy property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeExternalInstanceCreatedBy(ElementProperties elementProperties) + { + final String methodName = "removeExternalInstanceCreatedBy"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXT_INSTANCE_CREATED_BY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the externalInstanceCreationTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected Date removeExternalInstanceCreationTime(ElementProperties elementProperties) + { + final String methodName = "removeExternalInstanceCreationTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.EXT_INSTANCE_CREATION_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the externalInstanceLastUpdatedBy property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeExternalInstanceLastUpdatedBy(ElementProperties elementProperties) + { + final String methodName = "removeExternalInstanceLastUpdatedBy"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXT_INSTANCE_LAST_UPDATED_BY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the externalInstanceLastUpdateTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected Date removeExternalInstanceLastUpdateTime(ElementProperties elementProperties) + { + final String methodName = "removeExternalInstanceCreationTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.EXT_INSTANCE_LAST_UPDATE_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the externalInstanceVersion property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected long removeExternalInstanceVersion(ElementProperties elementProperties) + { + final String methodName = "removeExternalInstanceVersion"; + + if (elementProperties != null) + { + return propertyHelper.removeLongProperty(serviceName, + OpenMetadataTypesMapper.EXT_INSTANCE_VERSION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0L; + } + + /** + * Extract and delete the URL property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeURL(ElementProperties elementProperties) + { + final String methodName = "removeURL"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.URL_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the organization property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeOrganization(ElementProperties elementProperties) + { + final String methodName = "removeOrganization"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ORGANIZATION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the referenceVersion property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeReferenceVersion(ElementProperties elementProperties) + { + final String methodName = "removeReferenceVersion"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.REFERENCE_VERSION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the referenceId property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeReferenceId(ElementProperties elementProperties) + { + final String methodName = "removeReferenceId"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.REFERENCE_ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the referenceId property from the supplied instance properties. + * + * @param elementProperties properties from relationship + * @return string text or null + */ + protected String getReferenceId(ElementProperties elementProperties) + { + final String methodName = "getReferenceId"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.REFERENCE_ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the orderPropertyName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeOrderPropertyName(ElementProperties elementProperties) + { + final String methodName = "removeOrderPropertyName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ORDER_PROPERTY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the membershipRationale property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeMembershipRationale(ElementProperties elementProperties) + { + final String methodName = "removeMembershipRationale"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.MEMBERSHIP_RATIONALE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the createdBy property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCreatedBy(ElementProperties elementProperties) + { + final String methodName = "removeCreatedBy"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CREATED_BY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the mappingProperties property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return map or null + */ + protected Map removeMappingProperties(ElementProperties elementProperties) + { + final String methodName = "removeMappingProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.MAPPING_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the lastSynchronized property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return map or null + */ + protected Date removeLastSynchronized(ElementProperties elementProperties) + { + final String methodName = "removeLastSynchronized"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.LAST_SYNCHRONIZED_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the networkAddress property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeNetworkAddress(ElementProperties elementProperties) + { + final String methodName = "removeNetworkAddress"; + + if (elementProperties != null) + { + String networkAddress = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.NETWORK_ADDRESS_PROPERTY_NAME, + elementProperties, + methodName); + + if (networkAddress == null) + { + networkAddress = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.NETWORK_ADDRESS_PROPERTY_NAME_DEP, + elementProperties, + methodName); + } + + return networkAddress; + } + + return null; + } + + + /** + * Extract and delete the postalAddress property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removePostalAddress(ElementProperties elementProperties) + { + final String methodName = "removePostalAddress"; + + if (elementProperties != null) + { + String postalAddress = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.POSTAL_ADDRESS_PROPERTY_NAME, + elementProperties, + methodName); + + if (postalAddress == null) + { + postalAddress = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.POSTAL_ADDRESS_PROPERTY_NAME_DEP, + elementProperties, + methodName); + } + + return postalAddress; + } + + return null; + } + + + /** + * Extract and delete the "coordinates" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCoordinates(ElementProperties elementProperties) + { + final String methodName = "removeCoordinates"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.COORDINATES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the mapProjection property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeMapProjection(ElementProperties elementProperties) + { + final String methodName = "removeMapProjection"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.MAP_PROJECTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the timeZone property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeTimeZone(ElementProperties elementProperties) + { + final String methodName = "removeTimeZone"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TIME_ZONE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the level property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeLevel(ElementProperties elementProperties) + { + final String methodName = "removeLevel"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.LEVEL_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the protocol property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeProtocol(ElementProperties elementProperties) + { + final String methodName = "removeProtocol"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PROTOCOL_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the encryption method property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeEncryptionMethod(ElementProperties elementProperties) + { + final String methodName = "removeEncryptionMethod"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ENCRYPTION_METHOD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the connector provider class name property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeConnectorProviderClassName(ElementProperties elementProperties) + { + final String methodName = "removeConnectorProviderClassName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CONNECTOR_PROVIDER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the supported asset type name property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeSupportedAssetTypeName(ElementProperties elementProperties) + { + final String methodName = "removeSupportedAssetTypeName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SUPPORTED_ASSET_TYPE_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the expected data format property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeExpectedDataFormat(ElementProperties elementProperties) + { + final String methodName = "removeExpectedDataFormat"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXPECTED_DATA_FORMAT, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the connector framework name property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeConnectorFrameworkName(ElementProperties elementProperties) + { + final String methodName = "removeConnectorFrameworkName"; + + if (elementProperties != null) + { + String connectorFrameworkName = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CONNECTOR_FRAMEWORK_NAME, + elementProperties, + methodName); + if (connectorFrameworkName != null) + { + return connectorFrameworkName; + } + } + + return OpenMetadataTypesMapper.CONNECTOR_FRAMEWORK_NAME_DEFAULT; + } + + + /** + * Extract and delete the connector interface language property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeConnectorInterfaceLanguage(ElementProperties elementProperties) + { + final String methodName = "removeConnectorInterfaceLanguage"; + + if (elementProperties != null) + { + String connectorInterfaceLanguage = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CONNECTOR_INTERFACE_LANGUAGE, + elementProperties, + methodName); + if (connectorInterfaceLanguage != null) + { + return connectorInterfaceLanguage; + } + } + + return OpenMetadataTypesMapper.CONNECTOR_INTERFACE_LANGUAGE_DEFAULT; + } + + + /** + * Extract and delete the connector interfaces property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeConnectorInterfaces(ElementProperties elementProperties) + { + final String methodName = "removeConnectorInterfaces"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.CONNECTOR_INTERFACES, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the target technology source property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeTargetTechnologySource(ElementProperties elementProperties) + { + final String methodName = "removeTargetTechnologySource"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TARGET_TECHNOLOGY_SOURCE, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the target technology name property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeTargetTechnologyName(ElementProperties elementProperties) + { + final String methodName = "removeTargetTechnologyName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TARGET_TECHNOLOGY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the target technology interfaces property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeTargetTechnologyInterfaces(ElementProperties elementProperties) + { + final String methodName = "removeTargetTechnologyInterfaces"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.TARGET_TECHNOLOGY_INTERFACES, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the target technology versions property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeTargetTechnologyVersions(ElementProperties elementProperties) + { + final String methodName = "removeTargetTechnologyVersions"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.TARGET_TECHNOLOGY_VERSIONS, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the recognizedAdditionalProperties property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeRecognizedAdditionalProperties(ElementProperties elementProperties) + { + final String methodName = "removeRecognizedAdditionalProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.RECOGNIZED_ADD_PROPS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the recognizedSecuredProperties property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeRecognizedSecuredProperties(ElementProperties elementProperties) + { + final String methodName = "removeRecognizedSecuredProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.RECOGNIZED_SEC_PROPS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the recognized configuration properties property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeRecognizedConfigurationProperties(ElementProperties elementProperties) + { + final String methodName = "removeRecognizedConfigurationProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.RECOGNIZED_CONFIG_PROPS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the securedProperties property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected Map removeSecuredProperties(ElementProperties elementProperties) + { + final String methodName = "removeSecuredProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.SECURED_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the configuration properties property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected Map removeConfigurationProperties(ElementProperties elementProperties) + { + final String methodName = "removeConfigurationProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeMapFromProperty(serviceName, + OpenMetadataTypesMapper.CONFIGURATION_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the userId property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeUserId(ElementProperties elementProperties) + { + final String methodName = "removeUserId"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.USER_ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the clear password property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeClearPassword(ElementProperties elementProperties) + { + final String methodName = "removeClearPassword"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CLEAR_PASSWORD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the encrypted password property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeEncryptedPassword(ElementProperties elementProperties) + { + final String methodName = "removeEncryptedPassword"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ENCRYPTED_PASSWORD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the assetSummary property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getAssetSummary(ElementProperties elementProperties) + { + final String methodName = "removeEncryptedPassword"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ASSET_SUMMARY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the "arguments" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected Map getArguments(ElementProperties elementProperties) + { + final String methodName = "getArguments"; + + if (elementProperties != null) + { + return propertyHelper.getMapFromProperty(serviceName, + OpenMetadataTypesMapper.ARGUMENTS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Retrieve the zone membership from the properties of the zone membership classification. + * + * @param elementProperties properties from the classification + * @return list of zone names + */ + protected List removeZoneMembership(ElementProperties elementProperties) + { + final String methodName = "removeZoneMembership"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.ZONE_MEMBERSHIP_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Retrieve the zoneName from the properties. + * + * @param elementProperties properties from the element + * @return zone name + */ + protected String removeZoneName(ElementProperties elementProperties) + { + final String methodName = "removeZoneName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ZONE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Retrieve the subjectAreaName from the properties. + * + * @param elementProperties properties from the element + * @return subject area name + */ + protected String removeSubjectAreaName(ElementProperties elementProperties) + { + final String methodName = "removeSubjectAreaName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SUBJECT_AREA_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + /** + * Retrieve the zone membership from the properties of the zone membership classification. + * + * @param elementProperties properties from the classification + * @return list of zone names + */ + protected List getZoneMembership(ElementProperties elementProperties) + { + final String methodName = "getZoneMembership"; + + if (elementProperties != null) + { + return propertyHelper.getStringArrayProperty(serviceName, + OpenMetadataTypesMapper.ZONE_MEMBERSHIP_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the owner property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeOwner(ElementProperties elementProperties) + { + final String methodName = "removeOwner"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.OWNER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the owner property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getOwner(ElementProperties elementProperties) + { + final String methodName = "getOwner"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.OWNER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract the ownerTypeName property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getOwnerTypeName(ElementProperties elementProperties) + { + final String methodName = "getOwnerTypeName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.OWNER_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the ownerPropertyName property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getOwnerPropertyName(ElementProperties elementProperties) + { + final String methodName = "getOwnerPropertyName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.OWNER_PROPERTY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the ownerType property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return symbolic name + */ + protected String getOwnerType(ElementProperties elementProperties) + { + final String methodName = "getOwnerType"; + + if (elementProperties != null) + { + return propertyHelper.getEnumPropertySymbolicName(serviceName, + OpenMetadataTypesMapper.OWNER_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the ownerType property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return symbolic name + */ + protected String removeOwnerType(ElementProperties elementProperties) + { + final String methodName = "removeOwnerType"; + + if (elementProperties != null) + { + return propertyHelper.removeEnumProperty(serviceName, + OpenMetadataTypesMapper.OWNER_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the ownerPropertyName property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string + */ + protected String removeOwnerPropertyName(ElementProperties elementProperties) + + { + final String methodName = "removeClassificationPropertyName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.OWNER_PROPERTY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the ownerTypeName property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string + */ + protected String removeOwnerTypeName(ElementProperties elementProperties) + + { + final String methodName = "removeTypePropertyName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.OWNER_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the roleTypeName property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string + */ + protected String removeRoleTypeName(ElementProperties elementProperties) + + { + final String methodName = "removeRoleTypeName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ROLE_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the distinguishedName property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string + */ + protected String removeDistinguishedName(ElementProperties elementProperties) + + { + final String methodName = "removeDistinguishedName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DISTINGUISHED_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the "groups" property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string map or null + */ + protected List getGroups(ElementProperties elementProperties) + { + final String methodName = "getGroups"; + + if (elementProperties != null) + { + return propertyHelper.getStringArrayProperty(serviceName, + OpenMetadataTypesMapper.GROUPS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the securityLabels property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string map or null + */ + protected List getSecurityLabels(ElementProperties elementProperties) + { + final String methodName = "getSecurityLabels"; + + if (elementProperties != null) + { + return propertyHelper.getStringArrayProperty(serviceName, + OpenMetadataTypesMapper.SECURITY_LABELS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the securityProperties property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string map or null + */ + protected Map getSecurityProperties(ElementProperties elementProperties) + { + final String methodName = "getSecurityProperties"; + + if (elementProperties != null) + { + return propertyHelper.getStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.SECURITY_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the karmaPoints property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return ordinal or 0 for not specified + */ + protected int removeKarmaPoints(ElementProperties elementProperties) + { + final String methodName = "removeKarmaPoints"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.KARMA_POINTS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the organizationGUID property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getOriginOrganizationGUID(ElementProperties elementProperties) + { + final String methodName = "getOriginOrganizationGUID"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ORGANIZATION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the businessCapabilityGUID property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getOriginBusinessCapabilityGUID(ElementProperties elementProperties) + { + final String methodName = "getOriginBusinessCapabilityGUID"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.BUSINESS_CAPABILITY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the otherOriginValues property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string map or null + */ + protected Map getOtherOriginValues(ElementProperties elementProperties) + { + final String methodName = "getOtherOriginValues"; + + if (elementProperties != null) + { + return propertyHelper.getStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.OTHER_ORIGIN_VALUES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the sourceCreateTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date or null + */ + protected Date removeSourceCreateTime(ElementProperties elementProperties) + { + final String methodName = "removeSourceCreateTime"; + + if (elementProperties != null) + { + Date createTime1 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.SOURCE_CREATE_TIME_PROPERTY_NAME, + elementProperties, + methodName); + Date createTime2 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.SOURCE_CREATE_TIME_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return createTime1 == null ? createTime2 : createTime1; + } + + return null; + } + + + /** + * Extract and delete the sourceUpdateTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date or null + */ + protected Date removeSourceUpdateTime(ElementProperties elementProperties) + { + final String methodName = "removeSourceUpdateTime"; + + if (elementProperties != null) + { + Date modifiedTime1 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.SOURCE_UPDATE_TIME_PROPERTY_NAME, + elementProperties, + methodName); + Date modifiedTime2 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.SOURCE_UPDATE_TIME_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return modifiedTime1 == null ? modifiedTime2 : modifiedTime1; + } + + return null; + } + + + /** + * Extract and delete the pathName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string or null + */ + protected String removePathName(ElementProperties elementProperties) + { + final String methodName = "removePathName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.PATH_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the sourceCreateTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date or null + */ + protected Date removeStoreCreateTime(ElementProperties elementProperties) + { + final String methodName = "removeStoreCreateTime"; + + if (elementProperties != null) + { + Date createTime1 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.STORE_CREATE_TIME_PROPERTY_NAME, + elementProperties, + methodName); + Date createTime2 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.STORE_CREATE_TIME_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return createTime1 == null ? createTime2 : createTime1; + } + + return null; + } + + + /** + * Extract and delete the storeUpdateTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date or null + */ + protected Date removeStoreUpdateTime(ElementProperties elementProperties) + { + final String methodName = "removeStoreUpdateTime"; + + if (elementProperties != null) + { + Date modifiedTime1 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.STORE_UPDATE_TIME_PROPERTY_NAME, + elementProperties, + methodName); + Date modifiedTime2 = propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.STORE_UPDATE_TIME_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return modifiedTime1 == null ? modifiedTime2 : modifiedTime1; + } + + return null; + } + + + + /** + * Extract the encoding property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getDataStoreEncodingType(ElementProperties elementProperties) + { + final String methodName = "getDataStoreEncodingType"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ENCODING_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the encoding language property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getDataStoreEncodingLanguage(ElementProperties elementProperties) + { + final String methodName = "getDataStoreEncodingLanguage"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ENCODING_LANGUAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the encoding description property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getDataStoreEncodingDescription(ElementProperties elementProperties) + { + final String methodName = "getDataStoreEncodingDescription"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ENCODING_DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the encoding properties property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string map or null + */ + protected Map getEncodingProperties(ElementProperties elementProperties) + { + final String methodName = "getEncodingProperties"; + + if (elementProperties != null) + { + return propertyHelper.getStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.ENCODING_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the database type property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeDatabaseType(ElementProperties elementProperties) + { + final String methodName = "removeDatabaseType"; + + if (elementProperties != null) + { + String type1 = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATABASE_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + String type2 = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATABASE_TYPE_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return type1 == null ? type2 : type1; + } + + return null; + } + + + /** + * Extract and delete the database version property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeDatabaseVersion(ElementProperties elementProperties) + { + final String methodName = "removeDatabaseVersion"; + + if (elementProperties != null) + { + String version1 = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATABASE_VERSION_PROPERTY_NAME, + elementProperties, + methodName); + String version2 = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATABASE_VERSION_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return version1 == null ? version2 : version1; + } + + return null; + } + + + /** + * Extract and delete the database instance property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeDatabaseInstance(ElementProperties elementProperties) + { + final String methodName = "removeDatabaseInstance"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATABASE_INSTANCE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the database importedFrom property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeDatabaseImportedFrom(ElementProperties elementProperties) + { + final String methodName = "removeDatabaseImportedFrom"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATABASE_IMPORTED_FROM_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the fileType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeFileType(ElementProperties elementProperties) + { + final String methodName = "removeFileType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.FILE_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the format property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getFormat(ElementProperties elementProperties) + { + final String methodName = "getFormat"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.FORMAT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the encryption property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getEncryption(ElementProperties elementProperties) + { + final String methodName = "getEncryption"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ENCRYPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the type property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDeployedImplementationType(ElementProperties elementProperties) + { + final String methodName = "removeDeployedImplementationType"; + + if (elementProperties != null) + { + String type = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DEPLOYED_IMPLEMENTATION_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + if (type == null) + { + type = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DEPLOYED_IMPLEMENTATION_TYPE_PROPERTY_NAME_DEP, + elementProperties, + methodName); + } + + return type; + } + + return null; + } + + + + /** + * Extract and delete the type property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCapabilityType(ElementProperties elementProperties) + { + final String methodName = "removeCapabilityType"; + + if (elementProperties != null) + { + String type = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CAPABILITY_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + if (type == null) + { + type = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CAPABILITY_TYPE_PROPERTY_NAME_DEP1, + elementProperties, + methodName); + } + + if (type == null) + { + type = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CAPABILITY_TYPE_PROPERTY_NAME_DEP2, + elementProperties, + methodName); + } + + return type; + } + + return null; + } + + + /** + * Extract and delete the capabilityVersion property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCapabilityVersion(ElementProperties elementProperties) + { + final String methodName = "removeCapabilityVersion"; + + if (elementProperties != null) + { + String version1 = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CAPABILITY_VERSION_PROPERTY_NAME, + elementProperties, + methodName); + String version2 = propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CAPABILITY_VERSION_PROPERTY_NAME_DEP, + elementProperties, + methodName); + return version1 == null ? version2 : version1; + } + + return null; + } + + + /** + * Extract and delete the patchLevel property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removePatchLevel(ElementProperties elementProperties) + { + final String methodName = "removePatchLevel"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PATCH_LEVEL_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + + + /** + * Retrieve the isDeprecated flag from the properties from the supplied instance properties. + * + * @param elementProperties properties from the classification + * @return boolean - default is false + */ + protected boolean removeIsDeprecated(ElementProperties elementProperties) + { + final String methodName = "removeIsDeprecated"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.IS_DEPRECATED_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Retrieve the isDefaultValue flag from the properties from the supplied instance properties. + * + * @param elementProperties properties from the classification + * @return boolean - default is false + */ + protected boolean removeIsDefaultValue(ElementProperties elementProperties) + { + final String methodName = "removeIsDefaultValue"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.IS_DEFAULT_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract and delete the anchorGUID property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeAnchorGUID(ElementProperties elementProperties) + { + final String methodName = "removeAnchorGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ANCHOR_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the anchorGUID property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String getAnchorGUID(ElementProperties elementProperties) + { + final String methodName = "getAnchorGUID"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ANCHOR_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the data type property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeDataType(ElementProperties elementProperties) + { + final String methodName = "removeDataType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATA_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the defaultValue property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDefaultValue(ElementProperties elementProperties) + { + final String methodName = "removeDefaultValue"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DEFAULT_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the defaultValue property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeFixedValue(ElementProperties elementProperties) + { + final String methodName = "removeFixedValue"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.FIXED_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the query property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getQuery(ElementProperties elementProperties) + { + final String methodName = "setQuery"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.QUERY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the queryId property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getQueryId(ElementProperties elementProperties) + { + final String methodName = "setQueryId"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.QUERY_ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the version number property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeVersionNumber(ElementProperties elementProperties) + { + final String methodName = "removeVersionNumber"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.VERSION_NUMBER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the id property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeId(ElementProperties elementProperties) + { + final String methodName = "removeId"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the createdTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected Date removeCreatedTime(ElementProperties elementProperties) + { + final String methodName = "removeCreatedTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.CREATED_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the createdTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected Date removeLastModifiedTime(ElementProperties elementProperties) + { + final String methodName = "removeLastModifiedTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.LAST_MODIFIED_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the lastModifier property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeLastModifier(ElementProperties elementProperties) + { + final String methodName = "removeId"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.LAST_MODIFIER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the author property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeAuthor(ElementProperties elementProperties) + { + final String methodName = "removeAuthor"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.AUTHOR_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the encoding standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeEncodingStandard(ElementProperties elementProperties) + { + final String methodName = "removeEncodingStandard"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ENCODING_STANDARD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the namespace property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeNamespace(ElementProperties elementProperties) + { + final String methodName = "removeNamespace"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.NAMESPACE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the position property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default 0 + */ + protected int removePosition(ElementProperties elementProperties) + { + final String methodName = "removePosition"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.POSITION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the position property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default 0 + */ + protected int getPosition(ElementProperties elementProperties) + { + final String methodName = "getPosition"; + + if (elementProperties != null) + { + return propertyHelper.getIntProperty(serviceName, + OpenMetadataTypesMapper.POSITION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the minCardinality property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default 0 + */ + protected int removeMinCardinality(ElementProperties elementProperties) + { + final String methodName = "removeMinCardinality"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.MIN_CARDINALITY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the maxCardinality property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default -1 which is unlimited + */ + protected int removeMaxCardinality(ElementProperties elementProperties) + { + final String methodName = "removeMaxCardinality"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.MAX_CARDINALITY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return -1; + } + + + /** + * Retrieve the allowsDuplicateValues flag from the properties of the zone membership classification. + * + * @param elementProperties properties from the classification + * @return boolean - default is true + */ + protected boolean removeAllowsDuplicateValues(ElementProperties elementProperties) + { + final String methodName = "removeAllowsDuplicateValues"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.ALLOWS_DUPLICATES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return true; + } + + + /** + * Retrieve the orderedValues flag from the properties of the zone membership classification. + * + * @param elementProperties properties from the classification + * @return boolean - default is false + */ + protected boolean removeOrderedValues(ElementProperties elementProperties) + { + final String methodName = "removeOrderedValues"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.ORDERED_VALUES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract and delete the defaultValueOverride property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDefaultValueOverride(ElementProperties elementProperties) + { + final String methodName = "removeDefaultValueOverride"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DEFAULT_VALUE_OVERRIDE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the minimumLength property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default 0 + */ + protected int removeMinimumLength(ElementProperties elementProperties) + { + final String methodName = "removeMinimumLength"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.MIN_LENGTH_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the length property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default 0 + */ + protected int removeLength(ElementProperties elementProperties) + { + final String methodName = "removeLength"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.LENGTH_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the precision/significantDigits property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer - default 0 + */ + protected int removePrecision(ElementProperties elementProperties) + { + final String methodName = "removePrecision"; + + if (elementProperties != null) + { + int retrievedValue = propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.PRECISION_PROPERTY_NAME, + elementProperties, + methodName); + + if (retrievedValue == 0) + { + retrievedValue = propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.SIGNIFICANT_DIGITS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return retrievedValue; + } + + return 0; + } + + + /** + * Retrieve the isNullable flag from the properties from the supplied instance properties. + * + * @param elementProperties properties from the classification + * @return boolean - default is false + */ + protected boolean removeIsNullable(ElementProperties elementProperties) + { + final String methodName = "removeIsNullable"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.IS_NULLABLE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Retrieve the required flag from the properties from the supplied instance properties. + * + * @param elementProperties properties from the classification + * @return boolean - default is false + */ + protected boolean removeRequired(ElementProperties elementProperties) + { + final String methodName = "removeRequired"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.REQUIRED_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract and delete the native class property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string name or null + */ + protected String removeNativeClass(ElementProperties elementProperties) + { + final String methodName = "removeNativeClass"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.NATIVE_CLASS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the "aliases" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected List removeAliases(ElementProperties elementProperties) + { + final String methodName = "removeAliases"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.ALIASES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the guard property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getGuard(ElementProperties elementProperties) + { + final String methodName = "getGuard"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.GUARD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the formula property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getFormula(ElementProperties elementProperties) + { + final String methodName = "getFormula"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.FORMULA_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the formulaType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getFormulaType(ElementProperties elementProperties) + { + final String methodName = "getFormulaType"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.FORMULA_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the formula property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeFormula(ElementProperties elementProperties) + { + final String methodName = "removeFormula"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.FORMULA_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the formulaType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeFormulaType(ElementProperties elementProperties) + { + final String methodName = "removeFormulaType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.FORMULA_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the implementationLanguage property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getImplementationLanguage(ElementProperties elementProperties) + { + final String methodName = "getImplementationLanguage"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.IMPLEMENTATION_LANGUAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and remove the implementationLanguage property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeImplementationLanguage(ElementProperties elementProperties) + { + final String methodName = "removeImplementationLanguage"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.IMPLEMENTATION_LANGUAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and remove the usesBlockingCalls property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected boolean removeUsesBlockingCalls(ElementProperties elementProperties) + { + final String methodName = "removeUsesBlockingCalls"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.USES_BLOCKING_CALLS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract and delete the type property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeSource(ElementProperties elementProperties) + { + final String methodName = "removeSource"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SOURCE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the usage property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getUsage(ElementProperties elementProperties) + { + final String methodName = "getUsage"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.USAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the usage property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeUsage(ElementProperties elementProperties) + { + final String methodName = "removeUsage"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.USAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the language property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeLanguage(ElementProperties elementProperties) + { + final String methodName = "removeLanguage"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.LANGUAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + + /** + * Extract the summary property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String getSummary(ElementProperties elementProperties) + { + final String methodName = "getSummary"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.SUMMARY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and remove the summary property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removeSummary(ElementProperties elementProperties) + { + final String methodName = "removeSummary"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SUMMARY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and remove the publishVersionIdentifier property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removePublishVersionIdentifier(ElementProperties elementProperties) + { + final String methodName = "removePublishVersionIdentifier"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PUBLISH_VERSION_ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + + + /** + * Extract the abbreviation property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String getAbbreviation(ElementProperties elementProperties) + { + final String methodName = "getAbbreviation"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ABBREVIATION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and remove the abbreviation property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removeAbbreviation(ElementProperties elementProperties) + { + final String methodName = "removeAbbreviation"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ABBREVIATION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and remove the "examples" property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removeExamples(ElementProperties elementProperties) + { + final String methodName = "removeExamples"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXAMPLES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the title property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removeTitle(ElementProperties elementProperties) + { + final String methodName = "removeTitle"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TITLE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract the "pronouns" property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removePronouns(ElementProperties elementProperties) + { + final String methodName = "removePronouns"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PRONOUNS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the text property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removeText(ElementProperties elementProperties) + { + final String methodName = "removeText"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TEXT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the priority property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected String removePriority(ElementProperties elementProperties) + { + final String methodName = "removePriority"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PRIORITY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the priority integer property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected int removeIntPriority(ElementProperties elementProperties) + { + final String methodName = "removeIntPriority"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.PRIORITY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the headcount integer property from the supplied instance properties. + * + * @param elementProperties properties from governance entities + * @return string property or null + */ + protected int removeHeadCount(ElementProperties elementProperties) + { + final String methodName = "removeHeadCount"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.HEAD_COUNT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the scope property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeScope(ElementProperties elementProperties) + { + final String methodName = "removeScope"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SCOPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the "implications" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeImplications(ElementProperties elementProperties) + { + final String methodName = "removeImplications"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.IMPLICATIONS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the "outcomes" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeOutcomes(ElementProperties elementProperties) + { + final String methodName = "removeOutcomes"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.OUTCOMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the "results" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeResults(ElementProperties elementProperties) + { + final String methodName = "removeResults"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.RESULTS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the businessImperatives property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string list or null + */ + protected List removeBusinessImperatives(ElementProperties elementProperties) + { + final String methodName = "removeBusinessImperatives"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.BUSINESS_IMPERATIVES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the jurisdiction property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeJurisdiction(ElementProperties elementProperties) + { + final String methodName = "removeJurisdiction"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.JURISDICTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the "details" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDetails(ElementProperties elementProperties) + { + final String methodName = "removeDetails"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DETAILS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the rational property from the supplied instance properties. + * + * @param elementProperties properties from relationship + * @return string text or null + */ + protected String getRationale(ElementProperties elementProperties) + { + final String methodName = "removeRationale"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.RATIONALE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the implementationDescription property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeImplementationDescription(ElementProperties elementProperties) + { + final String methodName = "removeImplementationDescription"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.IMPLEMENTATION_DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the criteria property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCriteria(ElementProperties elementProperties) + { + final String methodName = "removeCriteria"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CRITERIA_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the domain identifier property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer = default is 0 which is ALL + */ + protected int removeDomainIdentifier(ElementProperties elementProperties) + + { + final String methodName = "removeDomainIdentifier"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.DOMAIN_IDENTIFIER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the level identifier property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return integer = default is 0 which is ALL + */ + protected int removeLevelIdentifier(ElementProperties elementProperties) + + { + final String methodName = "removeLevelIdentifier"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.LEVEL_IDENTIFIER_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the measurement property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeMeasurement(ElementProperties elementProperties) + + { + final String methodName = "removeMeasurement"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.MEASUREMENT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the target property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeTarget(ElementProperties elementProperties) + + { + final String methodName = "removeTarget"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TARGET_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the classificationName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeClassificationName(ElementProperties elementProperties) + + { + final String methodName = "removeClassificationName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CLASSIFICATION_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the classificationPropertyName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeClassificationPropertyName(ElementProperties elementProperties) + + { + final String methodName = "removeClassificationPropertyName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.CLASSIFICATION_PROPERTY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the processingEngineUserId property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeProcessingEngineUserId(ElementProperties elementProperties) + + { + final String methodName = "removeProcessingEngineUserId"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PROCESSING_ENGINE_USER_ID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the requestType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeRequestType(ElementProperties elementProperties) + { + final String methodName = "removeRequestType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.REQUEST_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the serviceRequestType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeServiceRequestType(ElementProperties elementProperties) + { + final String methodName = "removeServiceRequestType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SERVICE_REQUEST_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the requestParameters property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected Map removeRequestParameters(ElementProperties elementProperties) + + { + final String methodName = "removeRequestParameters"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.REQUEST_PARAMETERS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + + /** + * Extract and delete the executorEngineGUID property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeExecutorEngineGUID(ElementProperties elementProperties) + + { + final String methodName = "removeExecutorEngineGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXECUTOR_ENGINE_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the executorEngineName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeExecutorEngineName(ElementProperties elementProperties) + + { + final String methodName = "removeExecutorEngineName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXECUTOR_ENGINE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the processName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeProcessName(ElementProperties elementProperties) + + { + final String methodName = "removeProcessName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PROCESS_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the governanceActionTypeGUID property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeGovernanceActionTypeGUID(ElementProperties elementProperties) + + { + final String methodName = "removeGovernanceActionTypeGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.GOVERNANCE_ACTION_TYPE_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the governanceActionTypeName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeGovernanceActionTypeName(ElementProperties elementProperties) + + { + final String methodName = "removeGovernanceActionTypeName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.GOVERNANCE_ACTION_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the producedGuards property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return array of guards + */ + protected List removeProducedGuards(ElementProperties elementProperties) + + { + final String methodName = "removeProducedGuards"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.PRODUCED_GUARDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the guard property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeGuard(ElementProperties elementProperties) + + { + final String methodName = "removeGuard"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.GUARD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the mandatoryGuards property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return array of guards + */ + protected List removeMandatoryGuards(ElementProperties elementProperties) + + { + final String methodName = "removeMandatoryGuards"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.MANDATORY_GUARDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the mandatoryGuard property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return flag + */ + protected boolean removeMandatoryGuard(ElementProperties elementProperties) + + { + final String methodName = "removeMandatoryGuard"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.MANDATORY_GUARD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract and delete the ignoreMultipleTriggers property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return flag + */ + protected boolean removeIgnoreMultipleTriggers(ElementProperties elementProperties) + + { + final String methodName = "removeIgnoreMultipleTriggers"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.IGNORE_MULTIPLE_TRIGGERS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract and delete the waitTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return flag + */ + protected int removeWaitTime(ElementProperties elementProperties) + + { + final String methodName = "removeWaitTime"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.WAIT_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the receivedGuards property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return array of guards + */ + protected List removeReceivedGuards(ElementProperties elementProperties) + + { + final String methodName = "removeReceivedGuards"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.RECEIVED_GUARDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the completionGuards property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return array of guards + */ + protected List removeCompletionGuards(ElementProperties elementProperties) + + { + final String methodName = "removeCompletionGuards"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.COMPLETION_GUARDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the completionMessage property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string + */ + protected String removeCompletionMessage(ElementProperties elementProperties) + + { + final String methodName = "removeCompletionMessage"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.COMPLETION_MESSAGE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the startDate property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date + */ + protected Date removeStartDate(ElementProperties elementProperties) + + { + final String methodName = "removeStartDate"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.START_DATE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the plannedEndDate property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date + */ + protected Date removePlannedEndDate(ElementProperties elementProperties) + + { + final String methodName = "removePlannedEndDate"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.PLANNED_END_DATE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the creationTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date + */ + protected Date removeCreationTime(ElementProperties elementProperties) + + { + final String methodName = "removeCreationTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.CREATION_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the dueTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date + */ + protected Date removeDueTime(ElementProperties elementProperties) + + { + final String methodName = "removeDueTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.DUE_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the completionTime property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date + */ + protected Date removeCompletionTime(ElementProperties elementProperties) + + { + final String methodName = "removeCompletionTime"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.COMPLETION_TIME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the completionDate property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return date + */ + protected Date removeCompletionDate(ElementProperties elementProperties) + + { + final String methodName = "removeCompletionDate"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.COMPLETION_DATE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the status property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String removeStatus(ElementProperties elementProperties) + + { + final String methodName = "removeStatus"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.STATUS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the requestSourceName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String removeRequestSourceName(ElementProperties elementProperties) + + { + final String methodName = "removeRequestSourceName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.REQUEST_SOURCE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the actionTargetName property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String removeActionTargetName(ElementProperties elementProperties) + + { + final String methodName = "removeActionTargetName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ACTION_TARGET_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the originGovernanceService property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String removeOriginGovernanceService(ElementProperties elementProperties) + + { + final String methodName = "removeOriginGovernanceService"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ORIGIN_GOVERNANCE_SERVICE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the originGovernanceEngine property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String removeOriginGovernanceEngine(ElementProperties elementProperties) + + { + final String methodName = "removeOriginGovernanceEngine"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ORIGIN_GOVERNANCE_ENGINE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the licenseGUID property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String getLicenseGUID(ElementProperties elementProperties) + + { + final String methodName = "getLicenseGUID"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.LICENSE_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the certificationGUID property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return String text or null + */ + protected String getCertificationGUID(ElementProperties elementProperties) + + { + final String methodName = "getCertificationGUID"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.CERTIFICATE_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the start property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return Date/timestamp or null + */ + protected Date getStart(ElementProperties elementProperties) + + { + final String methodName = "getStart"; + + if (elementProperties != null) + { + return propertyHelper.getDateProperty(serviceName, + OpenMetadataTypesMapper.START_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the end property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return Date/timestamp or null + */ + protected Date getEnd(ElementProperties elementProperties) + + { + final String methodName = "getEnd"; + + if (elementProperties != null) + { + return propertyHelper.getDateProperty(serviceName, + OpenMetadataTypesMapper.END_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the "conditions" property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getConditions(ElementProperties elementProperties) + { + final String methodName = "getConditions"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.CONDITIONS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the custodian property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getCustodian(ElementProperties elementProperties) + { + final String methodName = "getCustodian"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.CUSTODIAN_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the certifiedBy property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getCertifiedBy(ElementProperties elementProperties) + { + final String methodName = "getCertifiedBy"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.CERTIFIED_BY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the recipient property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getRecipient(ElementProperties elementProperties) + { + final String methodName = "getRecipient"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.RECIPIENT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract the licensedBy property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getLicensedBy(ElementProperties elementProperties) + { + final String methodName = "getLicensedBy"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.LICENSED_BY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the licensee property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String getLicensee(ElementProperties elementProperties) + { + final String methodName = "getLicensee"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.LICENSEE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + + /** + * Extract and delete the description property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removePreferredValue(ElementProperties elementProperties) + { + final String methodName = "removePreferredValue"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PREFERRED_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the strictRequirement property from the supplied instance properties. + * + * @param elementProperties properties from ValidValuesAssignment relationship + * @return boolean + */ + protected boolean getStrictRequirement(ElementProperties elementProperties) + { + final String methodName = "getStrictRequirement"; + + if (elementProperties != null) + { + return propertyHelper.getBooleanProperty(serviceName, + OpenMetadataTypesMapper.IS_STRICT_REQUIREMENT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract the confidence property from the supplied instance properties. + * + * @param elementProperties properties from ReferenceValueAssignment or ValidValuesMapping relationship + * @return int + */ + protected int getConfidence(ElementProperties elementProperties) + { + final String methodName = "getConfidence"; + + if (elementProperties != null) + { + return propertyHelper.getIntProperty(serviceName, + OpenMetadataTypesMapper.CONFIDENCE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the steward property from the supplied instance properties. + * + * @param elementProperties properties from ReferenceValueAssignment or ValidValuesMapping relationship + * @return string text or null + */ + protected String getSteward(ElementProperties elementProperties) + { + final String methodName = "getSteward"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.STEWARD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract the stewardTypeName property from the supplied instance properties. + * + * @param elementProperties properties from ReferenceValueAssignment or ValidValuesMapping relationship + * @return string text or null + */ + protected String getStewardTypeName(ElementProperties elementProperties) + { + final String methodName = "getStewardTypeName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.STEWARD_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the stewardTypeName property from the supplied instance properties. + * + * @param elementProperties properties from ReferenceValueAssignment or ValidValuesMapping relationship + * @return string text or null + */ + protected String getStewardPropertyName(ElementProperties elementProperties) + { + final String methodName = "getStewardPropertyName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.STEWARD_PROPERTY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the "notes" property from the supplied instance properties. + * + * @param elementProperties properties from GovernanceRuleImplementation, GovernanceProcessImplementation, + * ReferenceValueAssignment or ValidValuesMapping relationship + * @return string text or null + */ + protected String getNotes(ElementProperties elementProperties) + { + final String methodName = "getNotes"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.NOTES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the "attributeName" property from the supplied instance properties. + * + * @param elementProperties properties from ReferenceValueAssignment relationship + * @return string text or null + */ + protected String getAttributeName(ElementProperties elementProperties) + { + final String methodName = "getAttributeName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ATTRIBUTE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the pointType property from the supplied instance properties. + * + * @param elementProperties properties from classification + * @return string text or null + */ + protected String getPointType(ElementProperties elementProperties) + { + final String methodName = "getPointType"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.POINT_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the associationDescription property from the supplied instance properties. + * + * @param elementProperties properties from ValidValuesMapping relationship + * @return string text or null + */ + protected String getAssociationDescription(ElementProperties elementProperties) + { + final String methodName = "getAssociationDescription"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.ASSOCIATION_DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the symbolicName property from the supplied instance properties. + * + * @param elementProperties properties from ValidValuesImplementation relationship + * @return string text or null + */ + protected String getSymbolicName(ElementProperties elementProperties) + { + final String methodName = "getSymbolicName"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.SYMBOLIC_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the implementationValue property from the supplied instance properties. + * + * @param elementProperties properties from ValidValuesImplementation relationship + * @return string text or null + */ + protected String getImplementationValue(ElementProperties elementProperties) + { + final String methodName = "getImplementationValue"; + + if (elementProperties != null) + { + return propertyHelper.getStringProperty(serviceName, + OpenMetadataTypesMapper.IMPLEMENTATION_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the additionalValues property from the supplied instance properties. + * + * @param elementProperties properties from ValidValuesImplementation relationship + * @return map of name-value pairs + */ + protected Map getAdditionalValues(ElementProperties elementProperties) + { + final String methodName = "getAdditionalValues"; + + if (elementProperties != null) + { + return propertyHelper.getStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.ADDITIONAL_VALUES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the commentText property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeCommentText(ElementProperties elementProperties) + { + final String methodName = "removeCommentText"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.COMMENT_TEXT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the isPublic property from the supplied instance properties. + * + * @param elementProperties properties from feedback relationships + * @return boolean + */ + protected boolean getIsPublic(ElementProperties elementProperties) + { + final String methodName = "getIsPublic"; + + if (elementProperties != null) + { + return propertyHelper.getBooleanProperty(serviceName, + OpenMetadataTypesMapper.IS_PUBLIC_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract the isPublic property from the supplied instance properties. + * + * @param elementProperties properties from feedback relationships + * @return boolean + */ + protected boolean removeIsPublic(ElementProperties elementProperties) + { + final String methodName = "removeIsPublic"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanProperty(serviceName, + OpenMetadataTypesMapper.IS_PUBLIC_PROPERTY_NAME, + elementProperties, + methodName); + } + + return false; + } + + + /** + * Extract the review property from the supplied instance properties. + * + * @param elementProperties properties from review/rating entities + * @return string property or null + */ + protected String removeReview(ElementProperties elementProperties) + { + final String methodName = "removeReview"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.REVIEW_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the tagName property from the supplied instance properties. + * + * @param elementProperties properties from informal tag entities + * @return string property or null + */ + protected String removeTagName(ElementProperties elementProperties) + { + final String methodName = "removeTagName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TAG_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the tagDescription property from the supplied instance properties. + * + * @param elementProperties properties from informal tag entities + * @return string property or null + */ + protected String removeTagDescription(ElementProperties elementProperties) + { + final String methodName = "removeTagDescription"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.TAG_DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the executionDate property from the supplied instance properties. + * + * @param elementProperties properties from discovery analysis report entities + * @return string property or null + */ + protected Date removeExecutionDate(ElementProperties elementProperties) + { + final String methodName = "removeExecutionDate"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.EXECUTION_DATE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the analysis parameters property from the supplied instance properties. + * + * @param elementProperties properties from discovery analysis report entities + * @return string property or null + */ + protected Map removeAnalysisParameters(ElementProperties elementProperties) + { + final String methodName = "removeAnalysisParameters"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.ANALYSIS_PARAMS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the analysis step property from the supplied instance properties. + * + * @param elementProperties properties from discovery analysis report entities + * @return string property or null + */ + protected String removeAnalysisStep(ElementProperties elementProperties) + { + final String methodName = "removeAnalysisStep"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ANALYSIS_STEP_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the annotation type property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeAnnotationType(ElementProperties elementProperties) + { + final String methodName = "removeAnnotationType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ANNOTATION_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the confidence level property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return integer or 0 + */ + protected int removeConfidenceLevel(ElementProperties elementProperties) + { + final String methodName = "removeConfidenceLevel"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.CONFIDENCE_LEVEL_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the confidence property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return integer or 0 + */ + protected int removeConfidence(ElementProperties elementProperties) + { + final String methodName = "removeConfidence"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.CONFIDENCE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the expression property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeExpression(ElementProperties elementProperties) + { + final String methodName = "removeExpression"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ANNOTATION_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the explanation property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeExplanation(ElementProperties elementProperties) + { + final String methodName = "removeExplanation"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.EXPLANATION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the jsonProperties property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeJsonProperties(ElementProperties elementProperties) + { + final String methodName = "removeJsonProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.JSON_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the reviewDate property from the supplied instance properties. + * + * @param elementProperties properties from annotation review entities + * @return date or null + */ + protected Date removeReviewDate(ElementProperties elementProperties) + { + final String methodName = "removeReviewDate"; + + if (elementProperties != null) + { + return propertyHelper.removeDateProperty(serviceName, + OpenMetadataTypesMapper.REVIEW_DATE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the steward property from the supplied instance properties. + * + * @param elementProperties properties from annotation review entities + * @return string property or null + */ + protected String removeSteward(ElementProperties elementProperties) + { + final String methodName = "removeSteward"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.STEWARD_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the stewardTypeName property from the supplied instance properties. + * + * @param elementProperties properties from annotation review entities + * @return string property or null + */ + protected String removeStewardTypeName(ElementProperties elementProperties) + { + final String methodName = "removeStewardTypeName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.STEWARD_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the stewardPropertyName property from the supplied instance properties. + * + * @param elementProperties properties from annotation review entities + * @return string property or null + */ + protected String removeStewardPropertyName(ElementProperties elementProperties) + { + final String methodName = "removeStewardPropertyName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.STEWARD_PROPERTY_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the notes property from the supplied instance properties. + * + * @param elementProperties properties from annotation review entities + * @return string property or null + */ + protected String removeNotes(ElementProperties elementProperties) + { + final String methodName = "removeNotes"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.NOTES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + /** + * Extract the comment property from the supplied instance properties. + * + * @param elementProperties properties from annotation review entities + * @return string property or null + */ + protected String removeComment(ElementProperties elementProperties) + { + final String methodName = "removeComment"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.COMMENT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the schemaName property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeSchemaName(ElementProperties elementProperties) + { + final String methodName = "removeSchemaName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SCHEMA_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the schemaType property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeSchemaType(ElementProperties elementProperties) + { + final String methodName = "removeSchemaType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.SCHEMA_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the candidateClassifications property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name value pairs + */ + protected Map removeCandidateClassifications(ElementProperties elementProperties) + { + final String methodName = "removeCandidateClassifications"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.CANDIDATE_CLASSIFICATIONS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the candidateDataClassGUIDs property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return list of string guids + */ + protected List removeCandidateDataClassGUIDs(ElementProperties elementProperties) + { + final String methodName = "removeCandidateDataClassGUIDs"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.CANDIDATE_DATA_CLASS_GUIDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the inferredDataType property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeInferredDataType(ElementProperties elementProperties) + { + final String methodName = "removeInferredDataType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.INFERRED_DATA_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the inferredFormat property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeInferredFormat(ElementProperties elementProperties) + { + final String methodName = "removeInferredFormat"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.INFERRED_FORMAT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the inferredLength property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return int property or 0 + */ + protected int removeInferredLength(ElementProperties elementProperties) + { + final String methodName = "removeInferredLength"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.INFERRED_LENGTH_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the inferredPrecision property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return int property or 0 + */ + protected int removeInferredPrecision(ElementProperties elementProperties) + { + final String methodName = "removeInferredPrecision"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.INFERRED_PRECISION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the inferredScale property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return int property or 0 + */ + protected int removeInferredScale(ElementProperties elementProperties) + { + final String methodName = "removeInferredScale"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.INFERRED_SCALE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract the profileProperties property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name value pairs + */ + protected Map removeProfileProperties(ElementProperties elementProperties) + { + final String methodName = "removeProfileProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.PROFILE_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the profileFlags property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name to boolean pairs + */ + protected Map removeProfileFlags(ElementProperties elementProperties) + { + final String methodName = "removeProfileFlags"; + + if (elementProperties != null) + { + return propertyHelper.removeBooleanMapFromProperty(serviceName, + OpenMetadataTypesMapper.PROFILE_FLAGS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the profileCounts property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name to long pairs + */ + protected Map removeProfileCounts(ElementProperties elementProperties) + { + final String methodName = "removeProfileCounts"; + + if (elementProperties != null) + { + return propertyHelper.removeLongMapFromProperty(serviceName, + OpenMetadataTypesMapper.PROFILE_COUNTS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the valueList property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return list of values + */ + protected List removeValueList(ElementProperties elementProperties) + { + final String methodName = "removeValueList"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.VALUE_LIST_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the valueCount property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name to integer pairs + */ + protected Map removeValueCount(ElementProperties elementProperties) + { + final String methodName = "removeValueCount"; + + if (elementProperties != null) + { + return propertyHelper.removeIntegerMapFromProperty(serviceName, + OpenMetadataTypesMapper.VALUE_COUNT_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the valueRangeFrom property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeValueRangeFrom(ElementProperties elementProperties) + { + final String methodName = "removeValueRangeFrom"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.VALUE_RANGE_FROM_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the valueRangeTo property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeValueRangeTo(ElementProperties elementProperties) + { + final String methodName = "removeValueRangeTo"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.VALUE_RANGE_TO_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the averageValue property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return string property or null + */ + protected String removeAverageValue(ElementProperties elementProperties) + { + final String methodName = "removeAverageValue"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.AVERAGE_VALUE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the dataSourceProperties property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name value pairs + */ + protected Map removeDataSourceProperties(ElementProperties elementProperties) + { + final String methodName = "removeDataSourceProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.DATA_SOURCE_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the size property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return int property or 0 + */ + protected int removeSize(ElementProperties elementProperties) + { + final String methodName = "removeSize"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.DS_PHYSICAL_SIZE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + /** + * Extract and delete the encoding property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeEncoding(ElementProperties elementProperties) + { + final String methodName = "removeEncoding"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ENCODING_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the parameterType property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeParameterType(ElementProperties elementProperties) + { + final String methodName = "removeParameterType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.PARAMETER_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the qualityDimension standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeQualityDimension(ElementProperties elementProperties) + { + final String methodName = "removeQualityDimension"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.QUALITY_DIMENSION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the qualityScore property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return int property or 0 + */ + protected int removeQualityScore(ElementProperties elementProperties) + { + final String methodName = "removeQualityScore"; + + if (elementProperties != null) + { + return propertyHelper.removeIntProperty(serviceName, + OpenMetadataTypesMapper.QUALITY_SCORE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return 0; + } + + + + /** + * Extract and delete the duplicateAnchorGUID standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDuplicateAnchorGUID(ElementProperties elementProperties) + { + final String methodName = "removeDuplicateAnchorGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DUPLICATE_ANCHOR_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the divergentPropertyNames property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return list of values + */ + protected List removeDivergentPropertyNames(ElementProperties elementProperties) + { + final String methodName = "removeDivergentPropertyNames"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.DIVERGENT_PROPERTY_NAMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the divergentClassificationName standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDivergentClassificationName(ElementProperties elementProperties) + { + final String methodName = "removeDivergentClassificationName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DIVERGENT_CLASSIFICATION_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the divergentClassificationPropertyNames property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return list of values + */ + protected List removeDivergentClassificationPropertyNames(ElementProperties elementProperties) + { + final String methodName = "removeDivergentClassificationPropertyNames"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.DIVERGENT_CLASSIFICATION_PROPERTY_NAMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the divergentRelatedMetadataElementsGUID standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDivergentRelatedMetadataElementsGUID(ElementProperties elementProperties) + { + final String methodName = "removeDivergentRelatedMetadataElementsGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DIVERGENT_RELATIONSHIP_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the divergentRelatedMetadataElementsPropertyNames property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return list of values + */ + protected List removeDivergentRelatedMetadataElementsPropertyNames(ElementProperties elementProperties) + { + final String methodName = "removeDivergentRelatedMetadataElementsPropertyNames"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.DIVERGENT_RELATIONSHIP_PROPERTY_NAMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + + /** + * Extract and delete the attachmentGUID standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeAttachmentGUID(ElementProperties elementProperties) + { + final String methodName = "removeAttachmentGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ATTACHMENT_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the duplicateAttachmentGUID standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDuplicateAttachmentGUID(ElementProperties elementProperties) + { + final String methodName = "removeDuplicateAttachmentGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DUPLICATE_ATTACHMENT_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the relatedEntityGUID standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeRelatedEntityGUID(ElementProperties elementProperties) + { + final String methodName = "removeRelatedEntityGUID"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.RELATED_ENTITY_GUID_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the relatedEntityGUID standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeRelatedMetadataElementsTypeName(ElementProperties elementProperties) + { + final String methodName = "removeRelatedMetadataElementsTypeName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.RELATIONSHIP_TYPE_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the relationshipProperties property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected Map removeRelatedMetadataElementsProperties(ElementProperties elementProperties) + { + final String methodName = "removeRelatedMetadataElementsProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.RELATIONSHIP_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the discoveryActivity standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDiscoveryActivity(ElementProperties elementProperties) + { + final String methodName = "removeDiscoveryActivity"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DISCOVERY_ACTIVITY_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the actionRequested standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeActionRequested(ElementProperties elementProperties) + { + final String methodName = "removeActionRequested"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.ACTION_REQUESTED_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the actionProperties property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected Map removeActionProperties(ElementProperties elementProperties) + { + final String methodName = "removeActionProperties"; + + if (elementProperties != null) + { + return propertyHelper.removeStringMapFromProperty(serviceName, + OpenMetadataTypesMapper.ACTION_PROPERTIES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the informalTerm standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeInformalTerm(ElementProperties elementProperties) + { + final String methodName = "removeInformalTerm"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.INFORMAL_TERM_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the candidateGlossaryTermGUIDs property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeCandidateGlossaryTermGUIDs(ElementProperties elementProperties) + { + final String methodName = "removeCandidateGlossaryTermGUIDs"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.CANDIDATE_GLOSSARY_TERM_GUIDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the informalTopic standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeInformalTopic(ElementProperties elementProperties) + { + final String methodName = "removeInformalTopic"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.INFORMAL_TOPIC_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the candidateGlossaryCategoryGUIDs property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeCandidateGlossaryCategoryGUIDs(ElementProperties elementProperties) + { + final String methodName = "removeCandidateGlossaryCategoryGUIDs"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.CANDIDATE_GLOSSARY_CATEGORY_GUIDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the duplicateAnchorGUIDs property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeDuplicateAnchorGUIDs(ElementProperties elementProperties) + { + final String methodName = "removeDuplicateAnchorGUIDs"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.DUPLICATE_ANCHOR_GUIDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the matchingPropertyNames property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeMatchingPropertyNames(ElementProperties elementProperties) + { + final String methodName = "removeMatchingPropertyNames"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.MATCHING_PROPERTY_NAMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the matchingClassificationNames property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeMatchingClassificationNames(ElementProperties elementProperties) + { + final String methodName = "removeMatchingClassificationNames"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.MATCHING_CLASSIFICATION_NAMES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the matchingAttachmentGUIDs property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeMatchingAttachmentGUIDs(ElementProperties elementProperties) + { + final String methodName = "removeMatchingAttachmentGUIDs"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.MATCHING_ATTACHMENT_GUIDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the matchingRelatedMetadataElementsGUIDs property from the supplied instance properties. + * + * @param elementProperties properties from annotation entities + * @return map of name-value pairs + */ + protected List removeMatchingRelatedMetadataElementsGUIDs(ElementProperties elementProperties) + { + final String methodName = "removeMatchingRelatedMetadataElementsGUIDs"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.MATCHING_RELATIONSHIP_GUIDS_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the dataFieldName standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDataFieldName(ElementProperties elementProperties) + { + final String methodName = "removeDataFieldName"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATA_FIELD_NAME_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the dataFieldType standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDataFieldType(ElementProperties elementProperties) + { + final String methodName = "removeDataFieldType"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATA_FIELD_TYPE_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract and delete the dataFieldDescription standing property from the supplied instance properties. + * + * @param elementProperties properties from element + * @return string text or null + */ + protected String removeDataFieldDescription(ElementProperties elementProperties) + { + final String methodName = "removeDataFieldDescription"; + + if (elementProperties != null) + { + return propertyHelper.removeStringProperty(serviceName, + OpenMetadataTypesMapper.DATA_FIELD_DESCRIPTION_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + + + /** + * Extract the dataFieldAliases property from the supplied instance properties. + * + * @param elementProperties properties from data field entities + * @return map of name-value pairs + */ + protected List removeDataFieldAliases(ElementProperties elementProperties) + { + final String methodName = "removeDataFieldAliases"; + + if (elementProperties != null) + { + return propertyHelper.removeStringArrayProperty(serviceName, + OpenMetadataTypesMapper.DATA_FIELD_ALIASES_PROPERTY_NAME, + elementProperties, + methodName); + } + + return null; + } + +} + diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/converters/OpenMetadataTypesMapper.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/converters/OpenMetadataTypesMapper.java new file mode 100644 index 00000000000..c782d0bf2c5 --- /dev/null +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-client/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/client/converters/OpenMetadataTypesMapper.java @@ -0,0 +1,2762 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.frameworkservices.gaf.client.converters; + +/** + * OpenMetadataTypesMapper provides property name mapping for the generic builder, handler and converter. + * It includes identifiers for all the types that need specialist processing at this level in the stack + */ +public class OpenMetadataTypesMapper +{ + public static final String GUID_PROPERTY_NAME = "guid"; + + /* ============================================================================================================================*/ + /* Area 0 - Basic definitions and Infrastructure */ + /* ============================================================================================================================*/ + + public static final String OPEN_METADATA_ROOT_TYPE_GUID = "4e7761e8-3969-4627-8f40-bfe3cde85a1d"; + public static final String OPEN_METADATA_ROOT_TYPE_NAME = "OpenMetadataRoot"; /* from Area 0 */ + + public static final String REFERENCEABLE_TYPE_GUID = "a32316b8-dc8c-48c5-b12b-71c1b2a080bf"; + public static final String REFERENCEABLE_TYPE_NAME = "Referenceable"; /* from Area 0 */ + + public static final String QUALIFIED_NAME_PROPERTY_NAME = "qualifiedName"; /* from Referenceable entity */ + public static final String ADDITIONAL_PROPERTIES_PROPERTY_NAME = "additionalProperties"; /* from Referenceable entity */ + + public static final String ASSET_TYPE_GUID = "896d14c2-7522-4f6c-8519-757711943fe6"; + public static final String ASSET_TYPE_NAME = "Asset"; + /* Referenceable */ + + public static final String PROCESS_TYPE_GUID = "d8f33bd7-afa9-4a11-a8c7-07dcec83c050"; + public static final String PROCESS_TYPE_NAME = "Process"; + /* Referenceable */ + + public static final String DATA_SET_TYPE_GUID = "1449911c-4f44-4c22-abc0-7540154feefb"; /* from Area 0 */ + public static final String DATA_SET_TYPE_NAME = "DataSet"; + /* Asset */ + + public static final String NAME_PROPERTY_NAME = "name"; /* from Asset entity */ + public static final String VERSION_IDENTIFIER_PROPERTY_NAME = "versionIdentifier"; /* from Asset entity */ + public static final String FORMULA_PROPERTY_NAME = "formula"; /* from Process entity */ + public static final String FORMULA_TYPE_PROPERTY_NAME = "formulaType"; /* from Process entity */ + + public static final String IS_PUBLIC_PROPERTY_NAME = "isPublic"; /* from feedback relationships - Area 1 */ + public static final String DISPLAY_NAME_PROPERTY_NAME = "displayName"; /* from many entities */ + public static final String DESCRIPTION_PROPERTY_NAME = "description"; /* from many entities */ + public static final String COLLECTION_TYPE_PROPERTY_NAME = "collectionType"; /* from Collection entity */ + + public static final String SAMPLE_DATA_TYPE_GUID = "0ee9c0f1-a89b-4806-8276-7c74f07fe190"; + public static final String SAMPLE_DATA_TYPE_NAME = "SampleData"; + + public static final String SAMPLING_METHOD_PROPERTY_NAME = "samplingMethod"; /* from SampleData relationship */ + + public static final String ANCHORS_CLASSIFICATION_TYPE_GUID = "aa44f302-2e43-4669-a1e7-edaae414fc6e"; + public static final String ANCHORS_CLASSIFICATION_TYPE_NAME = "Anchors"; + public static final String ANCHOR_GUID_PROPERTY_NAME = "anchorGUID"; + + public static final String LATEST_CHANGE_TARGET_ENUM_TYPE_GUID = "a0b7d7a0-4af5-4539-9b81-cbef52d8cc5d"; + public static final String LATEST_CHANGE_TARGET_ENUM_TYPE_NAME = "LatestChangeTarget"; + public static final int ENTITY_STATUS_LATEST_CHANGE_TARGET_ORDINAL = 0; + public static final int ENTITY_PROPERTY_LATEST_CHANGE_TARGET_ORDINAL = 1; + public static final int ENTITY_CLASSIFICATION_LATEST_CHANGE_TARGET_ORDINAL = 2; + public static final int ENTITY_RELATIONSHIP_LATEST_CHANGE_TARGET_ORDINAL = 3; + public static final int ATTACHMENT_LATEST_CHANGE_TARGET_ORDINAL = 4; + public static final int ATTACHMENT_STATUS_LATEST_CHANGE_TARGET_ORDINAL = 5; + public static final int ATTACHMENT_PROPERTY_LATEST_CHANGE_TARGET_ORDINAL = 6; + public static final int ATTACHMENT_CLASSIFICATION_LATEST_CHANGE_TARGET_ORDINAL = 7; + public static final int ATTACHMENT_RELATIONSHIP_LATEST_CHANGE_TARGET_ORDINAL = 8; + public static final int OTHER_LATEST_CHANGE_TARGET_ORDINAL = 99; + + public static final String LATEST_CHANGE_ACTION_ENUM_TYPE_GUID = "032d844b-868f-4c4a-bc5d-81f0f9704c4d"; + public static final String LATEST_CHANGE_ACTION_ENUM_TYPE_NAME = "LatestChangeAction"; + public static final int CREATED_LATEST_CHANGE_ACTION_ORDINAL = 0; + public static final int UPDATED_LATEST_CHANGE_ACTION_ORDINAL = 1; + public static final int DELETED_LATEST_CHANGE_ACTION_ORDINAL = 2; + public static final int OTHER_LATEST_CHANGE_ACTION_ORDINAL = 99; + + public static final String LATEST_CHANGE_CLASSIFICATION_TYPE_GUID = "adce83ac-10f1-4279-8a35-346976e94466"; + public static final String LATEST_CHANGE_CLASSIFICATION_TYPE_NAME = "LatestChange"; + public static final String CHANGE_TARGET_PROPERTY_NAME = "changeTarget"; + public static final String CHANGE_ACTION_PROPERTY_NAME = "changeAction"; + public static final String CLASSIFICATION_NAME_PROPERTY_NAME = "classificationName"; + public static final String CLASSIFICATION_PROPERTY_NAME_PROPERTY_NAME = "classificationPropertyName"; + public static final String ATTACHMENT_GUID_PROPERTY_NAME = "attachmentGUID"; + public static final String ATTACHMENT_TYPE_PROPERTY_NAME = "attachmentType"; + public static final String RELATIONSHIP_TYPE_PROPERTY_NAME = "relationshipType"; + public static final String USER_PROPERTY_NAME = "user"; + public static final String ACTION_DESCRIPTION_PROPERTY_NAME = "description"; + + public static final String TEMPLATE_CLASSIFICATION_TYPE_GUID = "25fad4a2-c2d6-440d-a5b1-e537881f84ee"; + public static final String TEMPLATE_CLASSIFICATION_TYPE_NAME = "Template"; + + public static final String TEMPLATE_SUBSTITUTE_CLASSIFICATION_TYPE_GUID = "93b293c3-1185-4921-aa1c-237d3f0a5d5c"; + public static final String TEMPLATE_SUBSTITUTE_CLASSIFICATION_TYPE_NAME = "TemplateSubstitute"; + + public static final String TEMPLATE_NAME_PROPERTY_NAME = "name"; + public static final String TEMPLATE_DESCRIPTION_PROPERTY_NAME = "description"; + public static final String TEMPLATE_ADDITIONAL_PROPERTIES_PROPERTY_NAME = "additionalProperties"; + + public static final String SOURCED_FROM_RELATIONSHIP_TYPE_GUID = "87b7371e-e311-460f-8849-08646d0d6ad3"; /* from Area 0 */ + public static final String SOURCED_FROM_RELATIONSHIP_TYPE_NAME = "SourcedFrom"; + /* End1 = NewEntity; End 2 = Template */ + + public static final String SOURCE_VERSION_NUMBER_PROPERTY_NAME = "sourceVersionNumber"; + + public static final String MEMENTO_CLASSIFICATION_TYPE_GUID = "ecdcd472-6701-4303-8dec-267bcb54feb9"; + public static final String MEMENTO_CLASSIFICATION_TYPE_NAME = "Memento"; + public static final String ARCHIVE_DATE_PROPERTY_NAME = "archiveDate"; + public static final String ARCHIVE_USER_PROPERTY_NAME = "archiveUser"; + public static final String ARCHIVE_PROCESS_PROPERTY_NAME = "archiveProcess"; + public static final String ARCHIVE_SERVICE_PROPERTY_NAME = "archiveService"; + public static final String ARCHIVE_METHOD_PROPERTY_NAME = "archiveMethod"; + public static final String ARCHIVE_PROPERTIES_PROPERTY_NAME = "archiveProperties"; + + public static final String REFERENCEABLE_TO_MORE_INFO_TYPE_GUID = "1cbf059e-2c11-4e0c-8aae-1da42c1ee73f"; + public static final String REFERENCEABLE_TO_MORE_INFO_TYPE_NAME = "MoreInformation"; + /* End1 = Referenceable; End 2 = more info Referenceable */ + + public static final String SEARCH_KEYWORD_TYPE_GUID = "0134c9ae-0fe6-4224-bb3b-e18b78a90b1e"; + public static final String SEARCH_KEYWORD_TYPE_NAME = "SearchKeyword"; + public static final String KEYWORD_PROPERTY_NAME = "keyword"; + public static final String KEYWORD_DESCRIPTION_PROPERTY_NAME = "description"; + + public static final String REFERENCEABLE_TO_SEARCH_KEYWORD_TYPE_GUID = "d2f8df24-6905-49b8-b389-31b2da156ece"; + public static final String REFERENCEABLE_TO_SEARCH_KEYWORD_TYPE_NAME = "SearchKeywordLink"; + /* End1 = Referenceable; End 2 = SearchKeyword */ + + public static final String SEARCH_KEYWORD_TO_RELATED_KEYWORD_TYPE_GUID = "f9ffa8a8-80f5-4e6d-9c05-a3a5e0277d62"; + public static final String SEARCH_KEYWORD_TO_RELATED_KEYWORD_TYPE_NAME = "RelatedKeyword"; + /* End1 = SearchKeyword; End 2 = SearchKeyword */ + + public static final String EXTERNAL_IDENTIFIER_TYPE_GUID = "7c8f8c2c-cc48-429e-8a21-a1f1851ccdb0"; + public static final String EXTERNAL_IDENTIFIER_TYPE_NAME = "ExternalId"; /* from Area 0 */ + + public static final String IDENTIFIER_PROPERTY_NAME = "identifier"; /* from ExternalId entity */ + public static final String EXT_INSTANCE_CREATED_BY_PROPERTY_NAME = "externalInstanceCreatedBy"; /* from ExternalId entity */ + public static final String EXT_INSTANCE_CREATION_TIME_PROPERTY_NAME = "externalInstanceCreationTime"; /* from ExternalId entity */ + public static final String EXT_INSTANCE_LAST_UPDATED_BY_PROPERTY_NAME = "externalInstanceLastUpdatedBy"; /* from ExternalId entity */ + public static final String EXT_INSTANCE_LAST_UPDATE_TIME_PROPERTY_NAME = "externalInstanceLastUpdateTime"; /* from ExternalId entity */ + public static final String EXT_INSTANCE_VERSION_PROPERTY_NAME = "externalInstanceVersion"; /* from ExternalId entity */ + public static final String MAPPING_PROPERTIES_PROPERTY_NAME = "mappingProperties"; /* from ExternalId entity */ + public static final String LAST_SYNCHRONIZED_PROPERTY_NAME = "lastSynchronized"; /* from ExternalId entity */ + public static final String KEY_PATTERN_PROPERTY_NAME = "keyPattern"; /* from ExternalId entity */ + /* Enum type KeyPattern */ + + public static final String KEY_PATTERN_ENUM_TYPE_GUID = "8904df8f-1aca-4de8-9abd-1ef2aadba300"; + public static final String KEY_PATTERN_ENUM_TYPE_NAME = "KeyPattern"; + + public static final String REFERENCEABLE_TO_EXTERNAL_ID_TYPE_GUID = "28ab0381-c662-4b6d-b787-5d77208de126"; + public static final String REFERENCEABLE_TO_EXTERNAL_ID_TYPE_NAME = "ExternalIdLink"; + /* End1 = Referenceable; End 2 = ExternalId */ + + public static final String SOURCE_PROPERTY_NAME = "source"; /* from ExternalIdLink relationship */ + + public static final String EXTERNAL_ID_SCOPE_TYPE_GUID = "8c5b1415-2d1f-4190-ba6c-1fdd47f03269"; + public static final String EXTERNAL_ID_SCOPE_TYPE_NAME = "ExternalIdScope"; + /* End1 = Referenceable; End 2 = ExternalId */ + + public static final String PERMITTED_SYNC_PROPERTY_NAME = "permittedSynchronization"; /* from ExternalId and RegisteredIntegrationConnector */ + /* Enum type PermittedSynchronization */ + + public static final String PERMITTED_SYNC_ENUM_TYPE_GUID = "973a9f4c-93fa-43a5-a0c5-d97dbd164e78"; + public static final String PERMITTED_SYNC_ENUM_TYPE_NAME = "PermittedSynchronization"; + + public static final String REFERENCEABLE_TO_EXT_REF_TYPE_GUID = "7d818a67-ab45-481c-bc28-f6b1caf12f06"; + public static final String REFERENCEABLE_TO_EXT_REF_TYPE_NAME = "ExternalReferenceLink"; + /* End1 = Referenceable; End 2 = ExternalReference */ + + public static final String EXTERNAL_REFERENCE_TYPE_GUID = "af536f20-062b-48ef-9c31-1ddd05b04c56"; + public static final String EXTERNAL_REFERENCE_TYPE_NAME = "ExternalReference"; /* from Area 0 */ + /* Referenceable */ + + public static final String URL_PROPERTY_NAME = "url"; /* from ExternalReference entity */ + public static final String REFERENCE_VERSION_PROPERTY_NAME = "referenceVersion"; /* from ExternalReference entity */ + + public static final String REFERENCE_ID_PROPERTY_NAME = "referenceId"; /* from ExternalReferenceLink relationship */ + public static final String PAGES_PROPERTY_NAME = "pages"; /* from ExternalReferenceLink relationship */ + /* plus description property */ + + public static final String RELATED_MEDIA_TYPE_GUID = "747f8b86-fe7c-4c9b-ba75-979e093cc307"; + public static final String RELATED_MEDIA_TYPE_NAME = "RelatedMedia"; /* from Area 0 */ + /* ExternalReference */ + + public static final String MEDIA_USAGE_PROPERTY_NAME = "mediaUsage"; /* from RelatedMedia entity */ + public static final String MEDIA_TYPE_PROPERTY_NAME = "mediaType"; /* from RelatedMedia entity */ + /* MediaType enum */ + + public static final String REFERENCEABLE_TO_RELATED_MEDIA_TYPE_GUID = "1353400f-b0ab-4ab9-ab09-3045dd8a7140"; + public static final String REFERENCEABLE_TO_RELATED_MEDIA_TYPE_NAME = "MediaReference"; + /* End1 = Referenceable; End 2 = RelatedMedia */ + + public static final String MEDIA_ID_PROPERTY_NAME = "mediaId"; /* from MediaReference relationship */ + public static final String MEDIA_DESCRIPTION_PROPERTY_NAME = "description"; /* from MediaReference relationship */ + + + + public static final String COLLECTION_TYPE_GUID = "347005ba-2b35-4670-b5a7-12c9ebed0cf7"; + public static final String COLLECTION_TYPE_NAME = "Collection"; /* from Area 1 */ + /* Referenceable */ + + public static final String RESOURCE_LIST_RELATIONSHIP_TYPE_GUID = "73cf5658-6a73-4ebc-8f4d-44fdfac0b437"; + public static final String RESOURCE_LIST_RELATIONSHIP_TYPE_NAME = "ResourceList"; + /* End1 = Referenceable (anchor); End 2 = Referenceable */ + + public static final String RESOURCE_USE_PROPERTY_NAME = "resourceUse"; /* from ResourceList relationship */ + public static final String WATCH_RESOURCE_PROPERTY_NAME = "watchResource"; /* from ResourceList relationship */ + + public static final String COLLECTION_MEMBERSHIP_TYPE_GUID = "5cabb76a-e25b-4bb5-8b93-768bbac005af"; + public static final String COLLECTION_MEMBERSHIP_TYPE_NAME = "CollectionMembership"; + /* End1 = Collection; End 2 = Referenceable */ + + public static final String REFERENCEABLE_TO_COLLECTION_TYPE_GUID = COLLECTION_MEMBERSHIP_TYPE_GUID; + public static final String REFERENCEABLE_TO_COLLECTION_TYPE_NAME = COLLECTION_MEMBERSHIP_TYPE_NAME; + /* End1 = Collection; End 2 = Referenceable */ + + public static final String MEMBERSHIP_RATIONALE_PROPERTY_NAME = "membershipRationale"; + + public static final String SET_TYPE_GUID = "3947f08d-7412-4022-81fc-344a20dfbb26"; + public static final String SET_TYPE_NAME = "Set"; /* from Area 1 */ + + public static final String FOLDER_TYPE_GUID = "3c0fa687-8a63-4c8e-8bda-ede9c78be6c7"; + public static final String FOLDER_TYPE_NAME = "Folder"; /* from Area 1 */ + + public static final String ORDER_BY_PROPERTY_NAME = "orderBy"; /* from Folder classification */ + public static final String ORDER_PROPERTY_NAME_PROPERTY_NAME = "orderPropertyName"; /* from Folder classification */ + + public static final String ORDER_BY_TYPE_ENUM_TYPE_GUID = "1d412439-4272-4a7e-a940-1065f889fc56"; + public static final String ORDER_BY_TYPE_ENUM_TYPE_NAME = "OrderBy"; + + public static final String MEMBERSHIP_STATUS_ENUM_TYPE_GUID = "a3bdb2ac-c28e-4e5a-8ab7-76aa01038832"; + public static final String MEMBERSHIP_STATUS_ENUM_TYPE_NAME = "MembershipStatus"; + + public static final String PROPERTY_FACET_TYPE_GUID = "6403a704-aad6-41c2-8e08-b9525c006f85"; + public static final String PROPERTY_FACET_TYPE_NAME = "PropertyFacet"; + /* Referenceable */ + + public static final String SCHEMA_VERSION_PROPERTY_NAME = "schemaVersion"; /* from PropertyFacet entity */ + public static final String PROPERTIES_PROPERTY_NAME = "properties"; /* from PropertyFacet entity */ + + public static final String VENDOR_PROPERTIES_DESCRIPTION_VALUE = "vendorProperties"; + + + public static final String REFERENCEABLE_TO_PROPERTY_FACET_TYPE_GUID = "58c87647-ada9-4c90-a3c3-a40ace46b1f7"; + public static final String REFERENCEABLE_TO_PROPERTY_FACET_TYPE_NAME = "ReferenceableFacet"; + /* End1 = Referenceable; End 2 = PropertyFacet */ + + public static final String LOCATION_TYPE_GUID = "3e09cb2b-5f15-4fd2-b004-fe0146ad8628"; + public static final String LOCATION_TYPE_NAME = "Location"; + /* Referenceable */ + + public static final String FIXED_LOCATION_CLASSIFICATION_TYPE_GUID = "bc111963-80c7-444f-9715-946c03142dd2"; + public static final String FIXED_LOCATION_CLASSIFICATION_TYPE_NAME = "FixedLocation"; + public static final String COORDINATES_PROPERTY_NAME = "coordinates"; + public static final String MAP_PROJECTION_PROPERTY_NAME = "mapProjection"; + public static final String POSTAL_ADDRESS_PROPERTY_NAME = "postalAddress"; + public static final String POSTAL_ADDRESS_PROPERTY_NAME_DEP = "address"; + public static final String TIME_ZONE_PROPERTY_NAME = "timezone"; + + public static final String SECURE_LOCATION_CLASSIFICATION_TYPE_GUID = "e7b563c0-fcdd-4ba7-a046-eecf5c4638b8"; + public static final String SECURE_LOCATION_CLASSIFICATION_TYPE_NAME = "SecureLocation"; + public static final String LEVEL_PROPERTY_NAME = "level"; + + public static final String CYBER_LOCATION_CLASSIFICATION_TYPE_GUID = "f9ec3633-8ac8-480b-aa6d-5e674b9e1b17"; + public static final String CYBER_LOCATION_CLASSIFICATION_TYPE_NAME = "CyberLocation"; + public static final String NETWORK_ADDRESS_PROPERTY_NAME_DEP = "address"; + + public static final String MOBILE_ASSET_CLASSIFICATION_TYPE_GUID = "b25fb90d-8fa2-4aa9-b884-ff0a6351a697"; + public static final String MOBILE_ASSET_CLASSIFICATION_TYPE_NAME = "MobileAsset"; + + public static final String ASSET_LOCATION_TYPE_GUID = "bc236b62-d0e6-4c5c-93a1-3a35c3dba7b1"; /* from Area 0 */ + public static final String ASSET_LOCATION_TYPE_NAME = "AssetLocation"; + /* End1 = Location; End 2 = Asset */ + + public static final String PROFILE_LOCATION_TYPE_GUID = "4d652ef7-99c7-4ec3-a2fd-b10c0a1ab4b4"; /* from Area 1 */ + public static final String PROFILE_LOCATION_TYPE_NAME = "ProfileLocation"; + /* End1 = ActorProfile; End 2 = Location */ + + public static final String ASSOCIATION_TYPE_PROPERTY_NAME = "associationType"; + + public static final String NESTED_LOCATION_TYPE_GUID = "f82a96c2-95a3-4223-88c0-9cbf2882b772"; /* from Area 0 */ + public static final String NESTED_LOCATION_TYPE_NAME = "NestedLocation"; + /* End1 = ParentLocation; End 2 = ChildLocation */ + + public static final String ADJACENT_LOCATION_TYPE_GUID = "017d0518-fc25-4e5e-985e-491d91e61e17"; /* from Area 0 */ + public static final String ADJACENT_LOCATION_TYPE_NAME = "AdjacentLocation"; + /* End1 = Location; End 2 = Location */ + + public static final String IT_INFRASTRUCTURE_TYPE_GUID = "151e6dd1-54a0-4b7f-a072-85caa09d1dda"; + public static final String IT_INFRASTRUCTURE_TYPE_NAME = "ITInfrastructure"; + /* Infrastructure */ + + public static final String HOST_TYPE_GUID = "1abd16db-5b8a-4fd9-aee5-205db3febe99"; + public static final String HOST_TYPE_NAME = "Host"; + /* ITInfrastructure */ + + public static final String BARE_METAL_COMPUTER_TYPE_GUID = "8ef355d4-5cd7-4038-8337-62671b088920"; + public static final String BARE_METAL_COMPUTER_TYPE_NAME = "BareMetalComputer"; + /* Host */ + + public static final String HOST_CLUSTER_TYPE_GUID = "9794f42f-4c9f-4fe6-be84-261f0a7de890"; + public static final String HOST_CLUSTER_TYPE_NAME = "HostCluster"; + /* Host */ + + public static final String HADOOP_CLUSTER_TYPE_GUID = "abc27cf7-e526-4d1b-9c25-7dd60a7993e4"; + public static final String HADOOP_CLUSTER_TYPE_NAME = "HadoopCluster"; + /* HostCluster */ + + public static final String KUBERNETES_CLUSTER_TYPE_GUID = "101f1c93-7f5d-44e2-9ea4-5cf21726ba5c"; + public static final String KUBERNETES_CLUSTER_TYPE_NAME = "KubernetesCluster"; + /* HostCluster */ + + public static final String VIRTUAL_CONTAINER_TYPE_GUID = "e2393236-100f-4ac0-a5e6-ce4e96c521e7"; + public static final String VIRTUAL_CONTAINER_TYPE_NAME = "VirtualContainer"; + /* Virtual container */ + + public static final String DOCKER_CONTAINER_TYPE_GUID = "9882b8aa-eba3-4a30-94c6-43117efd11cc"; + public static final String DOCKER_CONTAINER_TYPE_NAME = "DockerContainer"; + /* VirtualContainer */ + + public static final String VIRTUAL_MACHINE_TYPE_GUID = "28452091-6b27-4f40-8e31-47ce34f58387"; + public static final String VIRTUAL_MACHINE_TYPE_NAME = "VirtualMachine"; + /* Host */ + + public static final String STORAGE_VOLUME_TYPE_GUID = "14145458-f0d0-4955-8899-b8a2874708c9"; + public static final String STORAGE_VOLUME_TYPE_NAME = "StorageVolume"; + /* Referenceable */ + + public static final String ATTACHED_STORAGE_TYPE_GUID = "2cf1e949-7189-4bf2-8ee4-e1318e59abd7"; /* from Area 0 */ + public static final String ATTACHED_STORAGE_TYPE_NAME = "AttachedStorage"; + /* End1 = Host; End2 = StorageVolume */ + + + public static final String OPERATING_PLATFORM_TYPE_GUID = "bd96a997-8d78-42f6-adf7-8239bc98501c"; + public static final String OPERATING_PLATFORM_TYPE_NAME = "OperatingPlatform"; + /* Referenceable */ + + public static final String OPERATING_SYSTEM_PROPERTY_NAME = "operatingSystem"; /* from OperatingPlatform entity */ + public static final String OPERATING_SYSTEM_PATCH_LEVEL_PROPERTY_NAME = "operatingSystemPatchLevel"; /* from OperatingPlatform entity */ + public static final String BYTE_ORDERING_PROPERTY_NAME = "byteOrdering"; /* from OperatingPlatform entity */ + public static final String BYTE_ORDERING_PROPERTY_NAME_DEP = "endianness"; /* from OperatingPlatform entity */ + + public static final String ENDIANNESS_ENUM_TYPE_GUID = "e5612c3a-49bd-4148-8f67-cfdf145d5fd8"; + public static final String ENDIANNESS_ENUM_TYPE_NAME = "Endianness"; /* from Area 1 */ + + public static final String HOST_OPERATING_PLATFORM_TYPE_GUID = "b9179df5-6e23-4581-a8b0-2919e6322b12"; /* from Area 0 */ + public static final String HOST_OPERATING_PLATFORM_TYPE_NAME = "HostOperatingPlatform"; + /* End1 = Host; End2 = OperatingPlatform */ + + public static final String OPERATING_PLATFORM_MANIFEST_TYPE_GUID = "e5bd6acf-932c-4d9c-85ff-941a8e4451db"; /* from Area 0 */ + public static final String OPERATING_PLATFORM_MANIFEST_TYPE_NAME = "OperatingPlatformManifest"; + /* End1 = OperatingPlatform; End2 = Collection */ + + public static final String SOFTWARE_PACKAGE_MANIFEST_TYPE_GUID = "e328ae6e-0b16-4490-9883-c953b4258841"; + public static final String SOFTWARE_PACKAGE_MANIFEST_TYPE_NAME = "SoftwarePackageManifest"; + /* Classification attached to Collection */ + + public static final String HOST_CLUSTER_MEMBER_TYPE_GUID = "1a1c3933-a583-4b0c-9e42-c3691296a8e0"; /* from Area 0 */ + public static final String HOST_CLUSTER_MEMBER_TYPE_NAME = "HostClusterMember"; + /* End1 = HostCluster; End2 = Host (Member) */ + + public static final String DEPLOYED_VIRTUAL_CONTAINER_TYPE_GUID = "4b981d89-e356-4d9b-8f17-b3a8d5a86676"; /* from Area 0 */ + public static final String DEPLOYED_VIRTUAL_CONTAINER_TYPE_NAME = "DeployedVirtualContainer"; + /* End1 = Host; End2 = VirtualContainer (running on host) */ + + public static final String SOFTWARE_SERVER_PLATFORM_TYPE_GUID = "ba7c7884-32ce-4991-9c41-9778f1fec6aa"; + public static final String SOFTWARE_SERVER_PLATFORM_TYPE_NAME = "SoftwareServerPlatform"; + /* ITInfrastructure */ + + public static final String DEPLOYED_IMPLEMENTATION_TYPE_PROPERTY_NAME = "deployedImplementationType"; /* from SoftwareServerPlatform */ + public static final String DEPLOYED_IMPLEMENTATION_TYPE_PROPERTY_NAME_DEP = "type"; /* from SoftwareServerPlatform */ + public static final String PLATFORM_VERSION_PROPERTY_NAME = "platformVersion"; /* from SoftwareServerPlatform */ + + public static final String SOFTWARE_SERVER_PLATFORM_DEPLOYMENT_TYPE_GUID = "b909eb3b-5205-4180-9f63-122a65b30738"; /* from Area 0 */ + public static final String SOFTWARE_SERVER_PLATFORM_DEPLOYMENT_TYPE_NAME = "SoftwareServerPlatformDeployment"; + /* End1 = Host; End2 = SoftwareServerPlatform (running on host) */ + + public static final String DEPLOYMENT_TIME_PROPERTY_NAME = "deploymentTime"; /* from multiple */ + public static final String DEPLOYER_PROPERTY_NAME = "deployer"; /* from multiple */ + public static final String PLATFORM_STATUS_PROPERTY_NAME = "platformStatus"; /* from SoftwareServerPlatform */ + + public static final String OPERATIONAL_STATUS_ENUM_TYPE_GUID = "24e1e33e-9250-4a6c-8b07-05c7adec3a1d"; + public static final String OPERATIONAL_STATUS_ENUM_TYPE_NAME = "OperationalStatus"; /* from Area 1 */ + + public static final String SOFTWARE_SERVER_TYPE_GUID = "896d14c2-7522-4f6c-8519-757711943fe6"; + public static final String SOFTWARE_SERVER_TYPE_NAME = "SoftwareServer"; + /* ITInfrastructure */ + + public static final String SERVER_VERSION_PROPERTY_NAME = "serverVersion"; /* from SoftwareServer entity */ + + + public static final String SERVER_ENDPOINT_TYPE_GUID = "2b8bfab4-8023-4611-9833-82a0dc95f187"; + public static final String SERVER_ENDPOINT_TYPE_NAME = "ServerEndpoint"; + /* End 1 = ITInfrastructure; End 2 = Endpoint */ + + public static final String SERVER_DEPLOYMENT_TYPE_GUID = "d909eb3b-5205-4180-9f63-122a65b30738"; + public static final String SERVER_DEPLOYMENT_TYPE_NAME = "SoftwareServerDeployment"; + /* End 1 = SoftwareServerPlatform; End 2 = SoftwareServer */ + + public static final String SERVER_STATUS_PROPERTY_NAME = "serverStatus"; /* from SoftwareServerDeployment */ + + public static final String ENDPOINT_TYPE_GUID = "dbc20663-d705-4ff0-8424-80c262c6b8e7"; + public static final String ENDPOINT_TYPE_NAME = "Endpoint"; + /* Referenceable */ + + public static final String ENDPOINT_DISPLAY_NAME_PROPERTY_NAME = "name"; /* from Endpoint entity */ + public static final String NETWORK_ADDRESS_PROPERTY_NAME = "networkAddress"; /* from Endpoint entity */ + public static final String PROTOCOL_PROPERTY_NAME = "protocol"; /* from Endpoint entity */ + public static final String ENCRYPTION_METHOD_PROPERTY_NAME = "encryptionMethod"; /* from Endpoint entity */ + + + public static final String SOFTWARE_CAPABILITY_TYPE_GUID = "54055c38-b9ad-4a66-a75b-14dc643d4c69"; + public static final String SOFTWARE_CAPABILITY_TYPE_NAME = "SoftwareCapability"; + /* Referenceable */ + + public static final String SOFTWARE_SERVER_CAPABILITY_TYPE_GUID = "fe30a033-8f86-4d17-8986-e6166fa24177"; + public static final String SOFTWARE_SERVER_CAPABILITY_TYPE_NAME = "SoftwareServerCapability"; + /* SoftwareCapability */ + + public static final String CAPABILITY_TYPE_PROPERTY_NAME = "capabilityType"; /* from SoftwareCapability entity */ + public static final String CAPABILITY_TYPE_PROPERTY_NAME_DEP1 = "type"; /* from SoftwareServerCapability entity */ + public static final String CAPABILITY_TYPE_PROPERTY_NAME_DEP2 = "deployedImplementationType"; /* from SoftwareServerCapability entity */ + public static final String CAPABILITY_VERSION_PROPERTY_NAME = "capabilityVersion"; /* from SoftwareCapability entity */ + public static final String CAPABILITY_VERSION_PROPERTY_NAME_DEP = "version"; /* from SoftwareCapability entity */ + public static final String PATCH_LEVEL_PROPERTY_NAME = "patchLevel"; /* from SoftwareCapability entity */ + + public static final String SUPPORTED_CAPABILITY_TYPE_GUID = "2480aa71-44c5-414d-8b32-9c4340786d77"; + public static final String SUPPORTED_CAPABILITY_TYPE_NAME = "SupportedSoftwareCapability"; + /* End 1 = ITInfrastructure; End 2 = SoftwareCapability */ + + public static final String SERVER_CAPABILITY_STATUS_PROPERTY_NAME = "serverCapabilityStatus"; /* from SoftwareServerSupportedCapability */ + + public static final String SERVER_ASSET_USE_TYPE_GUID = "56315447-88a6-4235-ba91-fead86524ebf"; /* from Area 0 */ + public static final String SERVER_ASSET_USE_TYPE_NAME = "ServerAssetUse"; + /* End1 = SoftwareCapability; End 2 = Asset */ + + public static final String USE_TYPE_PROPERTY_NAME = "useType"; /* from ServerAssetUse relationship */ + public static final String MINIMUM_INSTANCES_PROPERTY_NAME = "minimumInstances"; /* from ServerAssetUse relationship */ + public static final String MAXIMUM_INSTANCES_PROPERTY_NAME = "maximumInstances"; /* from ServerAssetUse relationship */ + + + public static final String SERVER_ASSET_USE_TYPE_TYPE_GUID = "09439481-9489-467c-9ae5-178a6e0b6b5a"; /* from Area 0 */ + public static final String SERVER_ASSET_USE_TYPE_TYPE_NAME = "ServerAssetUseType"; + public static final int SERVER_ASSET_USE_TYPE_OWNS_ORDINAL = 0; + public static final int SERVER_ASSET_USE_TYPE_GOVERNS_ORDINAL = 1; + public static final int SERVER_ASSET_USE_TYPE_MAINTAINS_ORDINAL = 2; + public static final int SERVER_ASSET_USE_TYPE_USES_ORDINAL = 3; + public static final int SERVER_ASSET_USE_TYPE_OTHER_ORDINAL = 99; + + public static final String APPLICATION_TYPE_GUID = "58280f3c-9d63-4eae-9509-3f223872fb25"; + public static final String APPLICATION_TYPE_NAME = "Application"; + /* SoftwareServerCapability */ + + public static final String API_MANAGER_TYPE_GUID = "283a127d-3acd-4d64-b558-1fce9db9a35b"; + public static final String API_MANAGER_TYPE_NAME = "APIManager"; + /* SoftwareServerCapability */ + + public static final String EVENT_BROKER_TYPE_GUID = "309dfc3c-663b-4732-957b-e4a084436314"; + public static final String EVENT_BROKER_TYPE_NAME = "EventBroker"; + /* SoftwareServerCapability */ + + public static final String DATA_MANAGER_TYPE_GUID = "82efa1fa-501f-4ac7-942c-6536c4a1cd61"; + public static final String DATA_MANAGER_TYPE_NAME = "DataManager"; + /* SoftwareServerCapability */ + + public static final String CATALOG_TYPE_GUID = "f4fffcc0-d9eb-4bb9-8aff-0718932f689e"; + public static final String CATALOG_TYPE_NAME = "Catalog"; + /* SoftwareServerCapability */ + + public static final String ENGINE_TYPE_GUID = "3566527f-b1bd-4e7a-873e-a3e04d5f2a14"; + public static final String ENGINE_TYPE_NAME = "Engine"; + /* SoftwareServerCapability */ + + public static final String WORKFLOW_ENGINE_CLASSIFICATION_GUID = "37a6d212-7c4a-4a82-b4e2-601d4358381c"; + public static final String WORKFLOW_ENGINE_CLASSIFICATION_NAME = "WorkflowEngine"; + /* Engine */ + + public static final String REPORTING_ENGINE_CLASSIFICATION_GUID = "e07eefaa-16e0-46cf-ad54-bed47fb15812"; + public static final String REPORTING_ENGINE_CLASSIFICATION_NAME = "ReportingEngine"; + /* Engine */ + + public static final String ANALYTICS_ENGINE_CLASSIFICATION_GUID = "1a0dc6f6-7980-42f5-98bd-51e56543a07e"; + public static final String ANALYTICS_ENGINE_CLASSIFICATION_NAME = "AnalyticsEngine"; + /* Engine */ + + public static final String DATA_MOVEMENT_ENGINE_CLASSIFICATION_GUID = "d2ed6621-9d99-4fe8-843a-b28d816cf888"; + public static final String DATA_MOVEMENT_ENGINE_CLASSIFICATION_NAME = "DataMovementEngine"; + /* Engine */ + + public static final String DATA_VIRTUALIZATION_ENGINE_CLASSIFICATION_GUID = "03e25cd0-03d7-4d96-b28b-eed671824ed6"; + public static final String DATA_VIRTUALIZATION_ENGINE_CLASSIFICATION_NAME = "DataVirtualizationEngine"; + /* Engine */ + + public static final String ASSET_MANAGER_TYPE_GUID = "03170ce7-edf1-4e94-b6ab-2d5cbbf1f13c"; + public static final String ASSET_MANAGER_TYPE_NAME = "AssetManager"; + /* Attaches to Referenceable - preferably SoftwareServer */ + + public static final String USER_PROFILE_MANAGER_TYPE_GUID = "53ef4062-9e0a-4892-9824-8d51d4ad59d3"; + public static final String USER_PROFILE_MANAGER_TYPE_NAME = "UserProfileManager"; + /* Attaches to Referenceable - preferably SoftwareServer */ + + public static final String USER_ACCESS_DIRECTORY_TYPE_GUID = "29c98cf7-32b3-47d2-a411-48c1c9967e6d"; + public static final String USER_ACCESS_DIRECTORY_TYPE_NAME = "UserAccessDirectory"; + /* Attaches to Referenceable - preferably SoftwareServer */ + + public static final String MASTER_DATA_MANAGER_TYPE_GUID = "5bdad12e-57e7-4ff9-b7be-5d869e77d30b"; + public static final String MASTER_DATA_MANAGER_TYPE_NAME = "MasterDataManager"; + /* Attaches to Referenceable - preferably SoftwareServer */ + + public static final String SOFTWARE_SERVICE_TYPE_GUID = "f3f69251-adb1-4042-9d95-70082f95a028"; + public static final String SOFTWARE_SERVICE_TYPE_NAME = "SoftwareService"; + /* SoftwareServerCapability */ + + public static final String APPLICATION_SERVICE_TYPE_GUID = "5b7f340e-7dc9-45c0-a636-c20605147c94"; + public static final String APPLICATION_SERVICE_TYPE_NAME = "ApplicationService"; + /* SoftwareService */ + + public static final String METADATA_INTEGRATION_SERVICE_TYPE_GUID = "92f7fe27-cd2f-441c-a084-156821aa5bca8"; + public static final String METADATA_INTEGRATION_SERVICE_TYPE_NAME = "MetadataIntegrationService"; + /* SoftwareService */ + + public static final String METADATA_ACCESS_SERVICE_TYPE_GUID = "0bc3a16a-e8ed-4ad0-a302-0773365fdef0"; + public static final String METADATA_ACCESS_SERVICE_TYPE_NAME = "MetadataAccessService"; + /* SoftwareService */ + + public static final String ENGINE_HOSTING_SERVICE_TYPE_GUID = "90880f0b-c7a3-4d1d-93cc-0b877f27cd33"; + public static final String ENGINE_HOSTING_SERVICE_TYPE_NAME = "EngineHostingService"; + /* SoftwareService */ + + public static final String USER_VIEW_SERVICE_TYPE_GUID = "1f83fc7c-75bb-491d-980d-ff9a6f80ae02"; + public static final String USER_VIEW_SERVICE_TYPE_NAME = "UserViewService"; + /* SoftwareService */ + + public static final String NETWORK_TYPE_GUID = "e0430f59-f021-411a-9d81-883e1ff3f6f6"; + public static final String NETWORK_TYPE_NAME = "Network"; + /* ITInfrastructure */ + + public static final String NETWORK_GATEWAY_TYPE_GUID = "9bbae94d-e109-4c96-b072-4f97123f04fd"; + public static final String NETWORK_GATEWAY_TYPE_NAME = "NetworkGateway"; + /* SoftwareServerCapability */ + + public static final String HOST_NETWORK_TYPE_GUID = "f2bd7401-c064-41ac-862c-e5bcdc98fa1e"; /* from Area 0 */ + public static final String HOST_NETWORK_TYPE_NAME = "HostNetwork"; + /* End1 = Host; End2 = Network */ + + public static final String NETWORK_GATEWAY_LINK_TYPE_GUID = "5bece460-1fa6-41fb-a29f-fdaf65ec8ce3"; /* from Area 0 */ + public static final String NETWORK_GATEWAY_LINK_TYPE_NAME = "NetworkGatewayLink"; + /* End1 = NetworkGateway; End2 = Network */ + + public static final String CLOUD_PROVIDER_CLASSIFICATION_GUID = "a2bfdd08-d0a8-49db-bc97-7f240628104"; + public static final String CLOUD_PROVIDER_CLASSIFICATION_NAME = "CloudProvider"; + /* Host */ + + public static final String PROVIDER_NAME_PROPERTY_NAME = "providerName"; /* from CloudProvider */ + + public static final String CLOUD_PLATFORM_CLASSIFICATION_GUID = "1b8f8511-e606-4f65-86d3-84891706ad12"; + public static final String CLOUD_PLATFORM_CLASSIFICATION_NAME = "CloudPlatform"; + /* SoftwareServerPlatform */ + + public static final String CLOUD_TENANT_CLASSIFICATION_GUID = "1b8f8522-e606-4f65-86d3-84891706ad12"; + public static final String CLOUD_TENANT_CLASSIFICATION_NAME = "CloudTenant"; + /* SoftwareServer */ + + public static final String TENANT_NAME_PROPERTY_NAME = "TenantName"; /* from CloudTenant */ + public static final String TENANT_TYPE_PROPERTY_NAME = "TenantType"; /* from CloudTenant */ + + public static final String CLOUD_SERVICE_CLASSIFICATION_GUID = "337e7b1a-ad4b-4818-aa3e-0ff3307b2fbe6"; + public static final String CLOUD_SERVICE_CLASSIFICATION_NAME = "CloudService"; + /* SoftwareServerCapability */ + + public static final String OFFERING_NAME_PROPERTY_NAME = "offeringName"; /* from CloudService */ + public static final String SERVICE_TYPE_PROPERTY_NAME = "serviceType"; /* from CloudService */ + + /* ============================================================================================================================*/ + /* Area 1 - Collaboration */ + /* ============================================================================================================================*/ + + public static final String ACTOR_PROFILE_TYPE_GUID = "5a2f38dc-d69d-4a6f-ad26-ac86f118fa35"; + public static final String ACTOR_PROFILE_TYPE_NAME = "ActorProfile"; /* from Area 1 */ + /* Referenceable */ + + public static final String USER_IDENTITY_TYPE_GUID = "fbe95779-1f3c-4ac6-aa9d-24963ff16282"; + public static final String USER_IDENTITY_TYPE_NAME = "UserIdentity"; + /* Referenceable */ + + public static final String PROFILE_IDENTITY_RELATIONSHIP_TYPE_GUID = "01664609-e777-4079-b543-6baffe910ff1"; /* from Area 1 */ + public static final String PROFILE_IDENTITY_RELATIONSHIP_TYPE_NAME = "ProfileIdentity"; + /* End1 = ActorProfile; End 2 = UserIdentity */ + + public static final String ROLE_TYPE_NAME_PROPERTY_NAME = "roleTypeName"; /* from ProfileIdentity relationship */ + public static final String ROLE_GUID_PROPERTY_NAME = "roleGUID"; /* from ProfileIdentity relationship */ + + public static final String CONTACT_DETAILS_TYPE_GUID = "79296df8-645a-4ef7-a011-912d1cdcf75a"; + public static final String CONTACT_DETAILS_TYPE_NAME = "ContactDetails"; + + public static final String CONTACT_TYPE_PROPERTY_NAME = "contactType"; /* from ContactDetail entity */ + public static final String CONTACT_METHOD_TYPE_PROPERTY_NAME = "contactMethodType"; /* from ContactDetail entity */ + public static final String CONTACT_METHOD_SERVICE_PROPERTY_NAME = "contactMethodService"; /* from ContactDetail entity */ + public static final String CONTACT_METHOD_VALUE_PROPERTY_NAME = "contactMethodValue"; /* from ContactDetail entity */ + + public static final String CONTACT_METHOD_TYPE_ENUM_TYPE_GUID = "30e7d8cd-df01-46e8-9247-a24c5650910d"; + public static final String CONTACT_METHOD_TYPE_ENUM_TYPE_NAME = "ContactMethodType"; + + public static final String CONTACT_THROUGH_RELATIONSHIP_TYPE_GUID = "6cb9af43-184e-4dfa-854a-1572bcf0fe75"; /* from Area 1 */ + public static final String CONTACT_THROUGH_RELATIONSHIP_TYPE_NAME = "ContactThrough"; + /* End1 = ActorProfile; End 2 = ContactDetails */ + + public static final String PERSON_TYPE_GUID = "ac406bf8-e53e-49f1-9088-2af28bbbd285"; + public static final String PERSON_TYPE_NAME = "Person"; /* from Area 1 */ + /* ActorProfile */ + + public static final String TITLE_PROPERTY_NAME = "title"; /* from Person entity */ + public static final String INITIALS_PROPERTY_NAME = "initials"; /* from Person entity */ + public static final String GIVEN_NAMES_PROPERTY_NAME = "givenNames"; /* from Person entity */ + public static final String SURNAME_PROPERTY_NAME = "surname"; /* from Person entity */ + public static final String FULL_NAME_PROPERTY_NAME = "fullName"; /* from Person entity */ + public static final String PRONOUNS_PROPERTY_NAME = "pronouns"; /* from Person entity */ + public static final String PREFERRED_LANGUAGE_PROPERTY_NAME = "preferredLanguage"; /* from Person entity */ + public static final String JOB_TITLE_PROPERTY_NAME = "jobTitle"; /* from Person entity */ + public static final String EMPLOYEE_NUMBER_PROPERTY_NAME = "employeeNumber"; /* from Person entity */ + public static final String EMPLOYEE_TYPE_PROPERTY_NAME = "employeeType"; /* from Person entity */ + + public static final String PERSONAL_CONTRIBUTION_RELATIONSHIP_TYPE_GUID = "4a316abe-eeee-4d11-ad5a-4bfb4079b80b"; /* from Area 1 */ + public static final String PERSONAL_CONTRIBUTION_RELATIONSHIP_TYPE_NAME = "PersonalContribution"; + /* End1 = Person; End 2 = ContributionRecord */ + + public static final String CONTRIBUTION_RECORD_TYPE_GUID = "ac406bf8-e53e-49f1-9088-2af28cccd285"; + public static final String CONTRIBUTION_RECORD_TYPE_NAME = "ContributionRecord"; /* from Area 1 */ + /* Referenceable */ + + public static final String KARMA_POINTS_PROPERTY_NAME = "karmaPoints"; /* from ContributionRecord entity */ + + public static final String PERSON_ROLE_TYPE_GUID = "ac406bf8-e53e-49f1-9088-2af28bcbd285"; + public static final String PERSON_ROLE_TYPE_NAME = "PersonRole"; + /* Referenceable */ + + public static final String HEAD_COUNT_PROPERTY_NAME = "headCount"; /* from PersonRole entity */ + + public static final String PERSON_ROLE_APPOINTMENT_RELATIONSHIP_TYPE_GUID = "4a316abe-bcce-4d11-ad5a-4bfb4079b80b"; /* from Area 1 */ + public static final String PERSON_ROLE_APPOINTMENT_RELATIONSHIP_TYPE_NAME = "PersonRoleAppointment"; + /* End1 = Person; End 2 = PersonRole */ + + public static final String PEER_RELATIONSHIP_TYPE_GUID = "4a316abe-bccd-4d11-ad5a-4bfb4079b80b"; /* from Area 1 */ + public static final String PEER_RELATIONSHIP_TYPE_NAME = "Peer"; + /* End1 = Person; End 2 = Person */ + + public static final String TEAM_TYPE_GUID = "36db26d5-aba2-439b-bc15-d62d373c5db6"; + public static final String TEAM_TYPE_NAME = "Team"; /* from Area 1 */ + /* ActorProfile */ + + public static final String TEAM_STRUCTURE_RELATIONSHIP_TYPE_GUID = "5ebc4fb2-b62a-4269-8f18-e9237a2229ca"; /* from Area 1 */ + public static final String TEAM_STRUCTURE_RELATIONSHIP_TYPE_NAME = "TeamStructure"; + /* End1 = Team; End 2 = Team */ + + public static final String DELEGATION_ESCALATION_PROPERTY_NAME = "delegationEscalationAuthority"; /* from TeamStructure relationship */ + + public static final String TEAM_MEMBER_TYPE_GUID = "46db26d5-abb2-538b-bc15-d62d373c5db6"; + public static final String TEAM_MEMBER_TYPE_NAME = "TeamMember"; /* from Area 1 */ + /* PersonRole */ + + public static final String TEAM_MEMBERSHIP_RELATIONSHIP_TYPE_GUID = "1ebc4fb2-b62a-4269-8f18-e9237a2119ca"; /* from Area 1 */ + public static final String TEAM_MEMBERSHIP_RELATIONSHIP_TYPE_NAME = "TeamMembership"; + /* End1 = TeamMember; End 2 = Team */ + + public static final String TEAM_LEADER_TYPE_GUID = "36db26d5-abb2-439b-bc15-d62d373c5db6"; + public static final String TEAM_LEADER_TYPE_NAME = "TeamLeader"; /* from Area 1 */ + /* PersonRole */ + + public static final String TEAM_LEADERSHIP_RELATIONSHIP_TYPE_GUID = "5ebc4fb2-b62a-4269-8f18-e9237a2119ca"; /* from Area 1 */ + public static final String TEAM_LEADERSHIP_RELATIONSHIP_TYPE_NAME = "TeamLeadership"; + /* End1 = TeamLeader; End 2 = Team */ + + public static final String IT_PROFILE_TYPE_GUID = "81394f85-6008-465b-926e-b3fae4668937"; + public static final String IT_PROFILE_TYPE_NAME = "ITProfile"; /* from Area 1 */ + /* ActorProfile */ + + public static final String IT_INFRASTRUCTURE_PROFILE_RELATIONSHIP_TYPE_GUID = "4c579e3d-a4ff-41c1-9931-33e6fc992f2b"; /* from Area 1 */ + public static final String IT_INFRASTRUCTURE_PROFILE_RELATIONSHIP_TYPE_NAME = "ITInfrastructureProfile"; + /* End1 = ITInfrastructure; End 2 = ITProfile */ + + public static final String ASSIGNMENT_SCOPE_RELATIONSHIP_TYPE_GUID = "e3fdafe3-692a-46c6-a595-c538cc189dd9"; /* from Area 1 */ + public static final String ASSIGNMENT_SCOPE_RELATIONSHIP_TYPE_NAME = "AssignmentScope"; + /* End1 = assignedActors - Referenceable; End 2 = assignedScope - Referenceable */ + + public static final String ASSIGNMENT_TYPE_PROPERTY_NAME = "assignmentType"; /* from Area 1 */ + + public static final String PROJECT_TYPE_GUID = "0799569f-0c16-4a1f-86d9-e2e89568f7fd"; + public static final String PROJECT_TYPE_NAME = "Project"; /* from Area 1 */ + /* Referenceable */ + + public static final String CAMPAIGN_CLASSIFICATION_TYPE_NAME = "Campaign"; /* from Area 1 */ + public static final String TASK_CLASSIFICATION_TYPE_NAME = "Task"; /* from Area 1 */ + + public static final String PROJECT_STATUS_PROPERTY_NAME = "projectStatus"; /* from Area 1 */ + public static final String TEAM_ROLE_PROPERTY_NAME = "teamRole"; /* from Area 1 */ + public static final String DEPENDENCY_SUMMARY_PROPERTY_NAME = "dependencySummary"; /* from Area 1 */ + + public static final String PROJECT_TEAM_RELATIONSHIP_TYPE_GUID = "746875af-2e41-4d1f-864b-35265df1d5dc"; + public static final String PROJECT_TEAM_RELATIONSHIP_TYPE_NAME = "ProjectTeam"; /* from Area 1 */ + /* End1 = Project; End 2 = ActorProfile */ + + public static final String PROJECT_MANAGEMENT_RELATIONSHIP_TYPE_GUID = "ac63ac45-a4d0-4fba-b583-92859de77dd8"; + public static final String PROJECT_MANAGEMENT_RELATIONSHIP_TYPE_NAME = "ProjectManagement"; /* from Area 1 */ + /* End1 = Project; End 2 = PersonRole */ + + public static final String PROJECT_HIERARCHY_RELATIONSHIP_TYPE_GUID = "8f1134f6-b9fe-4971-bc57-6e1b8b302b55"; + public static final String PROJECT_HIERARCHY_RELATIONSHIP_TYPE_NAME = "ProjectHierarchy"; /* from Area 1 */ + /* End1 = managingProject; End 2 = managedProject */ + + public static final String PROJECT_DEPENDENCY_RELATIONSHIP_TYPE_GUID = "5b6a56f1-68e2-4e10-85f0-fda47a4263fd"; + public static final String PROJECT_DEPENDENCY_RELATIONSHIP_TYPE_NAME = "ProjectDependency"; /* from Area 1 */ + /* End1 = dependentProject; End 2 = dependsOnProject */ + + public static final String STAKEHOLDER_RELATIONSHIP_TYPE_GUID = "efd8a136-0aea-4668-b91a-30f947e38b82"; + public static final String STAKEHOLDER_RELATIONSHIP_TYPE_NAME = "Stakeholder"; /* from Area 1 */ + /* End1 = commissioned - Referenceable; End 2 = commissionedBy - Referenceable */ + + public static final String STAKEHOLDER_ROLE_PROPERTY_NAME = "stakeholderRole"; /* from Area 1 */ + + public static final String MEETING_TYPE_GUID = "6bf90c79-32f4-47ad-959c-8fff723fe744"; + public static final String MEETING_TYPE_NAME = "Meeting"; /* from Area 1 */ + /* Referenceable */ + + public static final String START_TIME_PROPERTY_NAME = "startTime"; /* from Area 1 */ + public static final String END_TIME_PROPERTY_NAME = "endTime"; /* from Area 1 */ + public static final String OBJECTIVE_PROPERTY_NAME = "objective"; /* from Area 1 */ + public static final String MINUTES_PROPERTY_NAME = "minutes"; /* from Area 1 */ + public static final String MEETING_TYPE_PROPERTY_NAME = "meetingType"; /* from Area 1 */ + + public static final String MEETINGS_RELATIONSHIP_TYPE_GUID = "a05f918e-e7e2-419d-8016-5b37406df63a"; + public static final String MEETINGS_RELATIONSHIP_TYPE_NAME = "Meetings"; /* from Area 1 */ + /* End1 = Meeting; End 2 = Referenceable */ + + public static final String TO_DO_TYPE_GUID = "93dbc58d-c826-4bc2-b36f-195148d46f86"; + public static final String TO_DO_TYPE_NAME = "ToDo"; /* from Area 1 */ + /* Referenceable */ + + public static final String CREATION_TIME_PROPERTY_NAME = "creationTime"; /* from Area 1 */ + public static final String PRIORITY_PROPERTY_NAME = "priority"; /* from Area 1 */ + public static final String DUE_TIME_PROPERTY_NAME = "dueTime"; /* from Area 1 */ + public static final String COMPLETION_TIME_PROPERTY_NAME = "completionTime"; /* from Area 1 */ + public static final String STATUS_PROPERTY_NAME = "status"; /* from Area 1 */ + + public static final String TO_DO_STATUS_ENUM_TYPE_GUID = "7197ea39-334d-403f-a70b-d40231092df7"; /* from Area 0 */ + public static final String TO_DO_STATUS_ENUM_TYPE_NAME = "ToDoStatus"; + public static final int TO_DO_STATUS_ENUM_OPEN_ORDINAL = 0; + public static final int TO_DO_STATUS_ENUM_IN_PROGRESS_ORDINAL = 1; + public static final int TO_DO_STATUS_ENUM_WAITING_ORDINAL = 2; + public static final int TO_DO_STATUS_ENUM_COMPLETE_ORDINAL = 3; + public static final int TO_DO_STATUS_ENUM_ABANDONED_ORDINAL = 4; + + public static final String TO_DO_SOURCE_RELATIONSHIP_TYPE_GUID = "a0b7ba50-4c97-4b76-9a7d-c6a00e1be646"; + public static final String TO_DO_SOURCE_RELATIONSHIP_TYPE_NAME = "ToDoSource"; /* from Area 1 */ + /* End1 = source -Referenceable; End 2 = To Do */ + + public static final String ACTIONS_RELATIONSHIP_TYPE_GUID = "aca1277b-bf1c-42f5-9b3b-fbc2c9047325"; + public static final String ACTIONS_RELATIONSHIP_TYPE_NAME = "Actions"; /* from Area 1 */ + /* End1 = originator - Referenceable; End 2 = To Do */ + + public static final String ACTION_TARGET_RELATIONSHIP_TYPE_GUID = "207e2594-e3e4-4be8-a12c-4c401656e241"; + public static final String ACTION_TARGET_RELATIONSHIP_TYPE_NAME = "ActionTarget"; /* from Area 1 */ + /* End1 = To Do; End 2 = Referenceable */ + + public static final String ACTION_ASSIGNMENT_RELATIONSHIP_TYPE_GUID = "af2b5fab-8f83-4a2b-b749-1e6219f61f79"; + public static final String ACTION_ASSIGNMENT_RELATIONSHIP_TYPE_NAME = "ActionAssignment"; /* from Area 1 */ + /* End1 = PersonRole; End 2 = To Do */ + + public static final String COMMUNITY_TYPE_GUID = "ba846a7b-2955-40bf-952b-2793ceca090a"; + public static final String COMMUNITY_TYPE_NAME = "Community"; /* from Area 1 */ + /* Referenceable */ + + public static final String COMMUNITY_MEMBER_TYPE_GUID = "fbd42379-f6c3-4f09-b6f7-378565cda993"; + public static final String COMMUNITY_MEMBER_TYPE_NAME = "CommunityMember"; /* from Area 1 */ + /* PersonRole */ + + public static final String COMMUNITY_MEMBERSHIP_TYPE_ENUM_TYPE_GUID = "b0ef45bf-d12b-4b6f-add6-59c14648d750"; + public static final String COMMUNITY_MEMBERSHIP_TYPE_ENUM_TYPE_NAME = "CommunityMembershipType"; + + public static final String COMMUNITY_MEMBERSHIP_TYPE_GUID = "7c7da1a3-01b3-473e-972e-606eff0cb112"; + public static final String COMMUNITY_MEMBERSHIP_TYPE_NAME = "CommunityMembership"; + /* End1 = Community; End 2 = CommunityMember */ + + public static final String MISSION_PROPERTY_NAME = "mission"; + public static final String MEMBERSHIP_TYPE_PROPERTY_NAME = "membershipType"; + + public static final String INFORMAL_TAG_TYPE_GUID = "ba846a7b-2955-40bf-952b-2793ceca090a"; + public static final String INFORMAL_TAG_TYPE_NAME = "InformalTag"; /* from Area 1 */ + + public static final String TAG_IS_PUBLIC_PROPERTY_NAME = "isPublic"; /* from InformalTag entity and AttachedTag relationship */ + public static final String TAG_NAME_PROPERTY_NAME = "tagName"; /* from InformalTag entity */ + public static final String TAG_DESCRIPTION_PROPERTY_NAME = "tagDescription"; /* from InformalTag entity */ + public static final String TAG_USER_PROPERTY_NAME = "createdBy"; /* From Audit Header */ + + public static final String REFERENCEABLE_TO_TAG_TYPE_GUID = "4b1641c4-3d1a-4213-86b2-d6968b6c65ab"; + public static final String REFERENCEABLE_TO_TAG_TYPE_NAME = "AttachedTag"; + /* End1 = Referenceable; End 2 = InformalTag */ + /* Also isPublic */ + + public static final String LIKE_TYPE_GUID = "deaa5ca0-47a0-483d-b943-d91c76744e01"; + public static final String LIKE_TYPE_NAME = "Like"; /* from Area 1 */ + + public static final String REFERENCEABLE_TO_LIKE_TYPE_GUID = "e2509715-a606-415d-a995-61d00503dad4"; + public static final String REFERENCEABLE_TO_LIKE_TYPE_NAME = "AttachedLike"; + /* End1 = Referenceable; End 2 = Like */ + + public static final String LIKE_IS_PUBLIC_PROPERTY_NAME = "isPublic"; /* from AttachedLike relationship*/ + + public static final String RATING_TYPE_GUID = "7299d721-d17f-4562-8286-bcd451814478"; + public static final String RATING_TYPE_NAME = "Rating"; /* from Area 1 */ + + public static final String STAR_RATING_ENUM_TYPE_GUID = "77fea3ef-6ec1-4223-8408-38567e9d3c93"; + public static final String STAR_RATING_ENUM_TYPE_NAME = "StarRating"; /* from Area 1 */ + + public static final String STARS_PROPERTY_NAME = "stars"; /* from Rating entity */ + /* StarRating enum */ + public static final String REVIEW_PROPERTY_NAME = "review"; /* from Rating entity */ + + public static final String REFERENCEABLE_TO_RATING_TYPE_GUID = "0aaad9e9-9cc5-4ad8-bc2e-c1099bab6344"; + public static final String REFERENCEABLE_TO_RATING_TYPE_NAME = "AttachedRating"; + /* End1 = Referenceable; End 2 = Rating */ + + public static final String RATING_IS_PUBLIC_PROPERTY_NAME = "isPublic"; /* from AttachedRating relationship */ + + public static final String COMMENT_TYPE_GUID = "1a226073-9c84-40e4-a422-fbddb9b84278"; + public static final String COMMENT_TYPE_NAME = "Comment"; /* from Area 1 */ + /* Referenceable */ + + public static final String COMMENT_TEXT_PROPERTY_NAME = "text"; /* from Comment entity */ + public static final String COMMENT_TYPE_PROPERTY_NAME = "commentType"; /* from Comment entity */ + public static final String COMMENT_TYPE_PROPERTY_NAME_DEP = "type"; /* from Comment entity */ + + public static final String COMMENT_TYPE_ENUM_TYPE_GUID = "06d5032e-192a-4f77-ade1-a4b97926e867"; + public static final String COMMENT_TYPE_ENUM_TYPE_NAME = "CommentType"; /* from Area 1 */ + + public static final String REFERENCEABLE_TO_COMMENT_TYPE_GUID = "0d90501b-bf29-4621-a207-0c8c953bdac9"; + public static final String REFERENCEABLE_TO_COMMENT_TYPE_NAME = "AttachedComment"; + /* End1 = Referenceable; End 2 = Comment */ + + public static final String ANSWER_RELATIONSHIP_TYPE_GUID = "ecf1a3ca-adc5-4747-82cf-10ec590c5c69"; + public static final String ANSWER_RELATIONSHIP_TYPE_NAME = "AcceptedAnswer"; + /* End1 = Comment; End 2 = Comment */ + + public static final String TEXT_PROPERTY_NAME = "text"; /* from NoteEntry entity */ + + public static final String REFERENCEABLE_TO_NOTE_LOG_TYPE_GUID = "4f798c0c-6769-4a2d-b489-d2714d89e0a4"; + public static final String REFERENCEABLE_TO_NOTE_LOG_TYPE_NAME = "AttachedNoteLog"; + /* End1 = Referenceable; End 2 = NoteLog */ + /* And isPublicProperty */ + + public static final String NOTE_LOG_TYPE_GUID = "646727c7-9ad4-46fa-b660-265489ad96c6"; + public static final String NOTE_LOG_TYPE_NAME = "NoteLog"; /* from Area 1 */ + /* Referenceable */ + + public static final String NOTE_LOG_ENTRIES_RELATIONSHIP_TYPE_GUID = "38edecc6-f385-4574-8144-524a44e3e712"; + public static final String NOTE_LOG_ENTRIES_RELATIONSHIP_TYPE_NAME = "AttachedNoteLogEntry"; + /* End1 = NoteLog; End 2 = NoteEntry */ + + + /* + Added warning suppression for SonarCloud since the below constants contain the pattern + ..AUTH..="GUID" + which looks exactly like + myAuth = SECURITY_SECRET + which is reported as a security risk. + */ + @SuppressWarnings("java:S6418") + public static final String NOTE_LOG_AUTHOR_RELATIONSHIP_TYPE_GUID = "8f798c0c-6769-4a2d-b489-12714d89e0a4"; + + public static final String NOTE_LOG_AUTHOR_RELATIONSHIP_TYPE_NAME = "NoteLogAuthorship"; + /* End1 = NoteLogAuthor; End 2 = NoteLog */ + + @SuppressWarnings("java:S6418") + public static final String NOTE_LOG_AUTHOR_TYPE_GUID = "3a84d94c-ac6f-4be1-a72a-07dbec7b1fe3"; + public static final String NOTE_LOG_AUTHOR_TYPE_NAME = "NoteLogAuthor"; /* from Area 1 */ + /* PersonRole */ + + public static final String NOTE_TYPE_GUID = "2a84d94c-ac6f-4be1-a72a-07dcec7b1fe3"; + public static final String NOTE_TYPE_NAME = "NoteEntry"; /* from Area 1 */ + /* Referenceable */ + + /* ============================================================================================================================*/ + /* Area 2 - Assets */ + /* ============================================================================================================================*/ + + public static final String CONNECTION_TYPE_GUID = "114e9f8f-5ff3-4c32-bd37-a7eb42712253"; + public static final String CONNECTION_TYPE_NAME = "Connection"; + /* Referenceable */ + + public static final String SECURED_PROPERTIES_PROPERTY_NAME = "securedProperties"; /* from Connection entity */ + public static final String CONFIGURATION_PROPERTIES_PROPERTY_NAME = "configurationProperties"; /* from Connection entity */ + public static final String USER_ID_PROPERTY_NAME = "userId"; /* from Connection entity */ + public static final String CLEAR_PASSWORD_PROPERTY_NAME = "clearPassword"; /* from Connection entity */ + public static final String ENCRYPTED_PASSWORD_PROPERTY_NAME = "encryptedPassword"; /* from Connection entity */ + + public static final String CONNECTION_ENDPOINT_TYPE_GUID = "887a7132-d6bc-4b92-a483-e80b60c86fb2"; + public static final String CONNECTION_ENDPOINT_TYPE_NAME = "ConnectionEndpoint"; + /* End1 = Endpoint; End 2 = Connection */ + + public static final String CONNECTION_CONNECTOR_TYPE_TYPE_GUID = "e542cfc1-0b4b-42b9-9921-f0a5a88aaf96"; + public static final String CONNECTION_CONNECTOR_TYPE_TYPE_NAME = "ConnectionConnectorType"; + /* End1 = Connection; End 2 = ConnectorType */ + + public static final String CONNECTOR_TYPE_TYPE_GUID = "954421eb-33a6-462d-a8ca-b5709a1bd0d4"; + public static final String CONNECTOR_TYPE_TYPE_NAME = "ConnectorType"; + /* Referenceable */ + + public static final String CONNECTOR_CATEGORY_TYPE_GUID = "fb60761f-7afd-4d3d-9efa-24bc85a7b22e"; + public static final String CONNECTOR_CATEGORY_TYPE_NAME = "ConnectorCategory"; + /* Referenceable */ + + public static final String CONNECTOR_TYPE_DIRECTORY_TYPE_GUID = "9678ef11-ed7e-404b-a041-736df7514339"; + public static final String CONNECTOR_TYPE_DIRECTORY_TYPE_NAME = "ConnectorTypeDirectory"; + /* Classification on Collection */ + + public static final String CONNECTOR_IMPLEMENTATION_CHOICE_TYPE_GUID = "633648f3-c951-4ad7-b975-9fc04e0f3d2e"; + public static final String CONNECTOR_IMPLEMENTATION_CHOICE_TYPE_NAME = "ConnectorImplementationChoice"; + /* End1 = ConnectorCategory; End 2 = ConnectorType */ + + public static final String SUPPORTED_ASSET_TYPE_NAME = "supportedAssetTypeName"; /* from ConnectorType entity */ + public static final String EXPECTED_DATA_FORMAT = "expectedDataFormat"; /* from ConnectorType entity */ + public static final String CONNECTOR_PROVIDER_PROPERTY_NAME = "connectorProviderClassName"; /* from ConnectorType entity */ + public static final String CONNECTOR_FRAMEWORK_NAME = "connectorFrameworkName"; /* from ConnectorType entity */ + public static final String CONNECTOR_FRAMEWORK_NAME_DEFAULT = "Open Connector Framework (OCF)"; + public static final String CONNECTOR_INTERFACE_LANGUAGE = "connectorInterfaceLanguage"; /* from ConnectorType entity */ + public static final String CONNECTOR_INTERFACE_LANGUAGE_DEFAULT = "Java"; + public static final String CONNECTOR_INTERFACES = "connectorInterfaces"; /* from ConnectorType entity */ + public static final String TARGET_TECHNOLOGY_SOURCE = "targetTechnologySource"; /* from ConnectorType and ConnectorCategory entity */ + public static final String TARGET_TECHNOLOGY_NAME = "targetTechnologyName"; /* from ConnectorType and ConnectorCategory entity */ + public static final String TARGET_TECHNOLOGY_INTERFACES = "targetTechnologyInterfaces"; /* from ConnectorType entity */ + public static final String TARGET_TECHNOLOGY_VERSIONS = "targetTechnologyVersions"; /* from ConnectorType entity */ + public static final String RECOGNIZED_ADD_PROPS_PROPERTY_NAME = "recognizedAdditionalProperties"; /* from ConnectorType and ConnectorCategory entity */ + public static final String RECOGNIZED_SEC_PROPS_PROPERTY_NAME = "recognizedSecuredProperties"; /* from ConnectorType and ConnectorCategory entity */ + public static final String RECOGNIZED_CONFIG_PROPS_PROPERTY_NAME = "recognizedConfigurationProperties"; /* from ConnectorType and ConnectorCategory entity */ + + public static final String VIRTUAL_CONNECTION_TYPE_GUID = "82f9c664-e59d-484c-a8f3-17088c23a2f3"; + public static final String VIRTUAL_CONNECTION_TYPE_NAME = "VirtualConnection"; + + public static final String EMBEDDED_CONNECTION_TYPE_GUID = "eb6dfdd2-8c6f-4f0d-a17d-f6ce4799f64f"; + public static final String EMBEDDED_CONNECTION_TYPE_NAME = "EmbeddedConnection"; + /* End1 = VirtualConnection; End 2 = Connection */ + + public static final String POSITION_PROPERTY_NAME = "position"; /* from EmbeddedConnection relationship */ + public static final String ARGUMENTS_PROPERTY_NAME = "arguments"; /* from EmbeddedConnection relationship */ + + public static final String ASSET_TO_CONNECTION_TYPE_GUID = "e777d660-8dbe-453e-8b83-903771f054c0"; + public static final String ASSET_TO_CONNECTION_TYPE_NAME = "ConnectionToAsset"; + /* End1 = Connection; End 2 = Asset */ + + public static final String ASSET_SUMMARY_PROPERTY_NAME = "assetSummary"; /* from ConnectionToAsset relationship */ + + public static final String DATA_STORE_TYPE_GUID = "10752b4a-4b5d-4519-9eae-fdd6d162122f"; /* from Area 2 */ + public static final String DATA_STORE_TYPE_NAME = "DataStore"; + /* Asset */ + + public static final String PATH_NAME_PROPERTY_NAME = "pathName"; /* from DataStore entity */ + public static final String STORE_CREATE_TIME_PROPERTY_NAME = "storeCreateTime"; /* from DataStore entity */ + public static final String STORE_CREATE_TIME_PROPERTY_NAME_DEP = "createTime"; /* from DataStore entity */ + public static final String STORE_UPDATE_TIME_PROPERTY_NAME = "storeUpdateTime"; /* from DataStore entity */ + public static final String STORE_UPDATE_TIME_PROPERTY_NAME_DEP = "updateTime"; /* from DataStore entity */ + + public static final String DATA_STORE_ENCODING_CLASSIFICATION_GUID = "f08e48b5-6b66-40f5-8ff6-c2bfe527330b"; + public static final String DATA_STORE_ENCODING_CLASSIFICATION_NAME = "DataStoreEncoding"; + + public static final String ENCODING_TYPE_PROPERTY_NAME = "encoding"; /* from DataStoreEncoding classification */ + public static final String ENCODING_LANGUAGE_PROPERTY_NAME = "language"; /* from DataStoreEncoding classification */ + public static final String ENCODING_DESCRIPTION_PROPERTY_NAME = "description"; /* from DataStoreEncoding classification */ + public static final String ENCODING_PROPERTIES_PROPERTY_NAME = "properties"; /* from DataStoreEncoding classification */ + + public static final String DATA_FIELD_VALUES_CLASSIFICATION_GUID = "740e76e1-77b4-4426-ad52-d0a4ed15fff9"; + public static final String DATA_FIELD_VALUES_CLASSIFICATION_NAME = "DataFieldValues"; + + public static final String DEFAULT_VALUE_PROPERTY_NAME = "defaultValue"; /* from DataFieldValues classification */ + public static final String SAMPLE_VALUES_PROPERTY_NAME = "sampleValues"; /* from DataFieldValues classification */ + public static final String DATA_PATTERN_PROPERTY_NAME = "dataPattern"; /* from DataFieldValues classification */ + public static final String NAME_PATTERN_PROPERTY_NAME = "namePattern"; /* from DataFieldValues classification */ + + public static final String DATABASE_TYPE_GUID = "0921c83f-b2db-4086-a52c-0d10e52ca078"; /* from Area 2 */ + public static final String DATABASE_TYPE_NAME = "Database"; + /* DataStore */ + + public static final String DATABASE_TYPE_PROPERTY_NAME = "deployedImplementationType"; /* from Database entity */ + public static final String DATABASE_TYPE_PROPERTY_NAME_DEP = "type"; /* from Database entity */ + public static final String DATABASE_VERSION_PROPERTY_NAME = "databaseVersion"; /* from Database entity */ + public static final String DATABASE_VERSION_PROPERTY_NAME_DEP = "version"; /* from Database entity */ + public static final String DATABASE_INSTANCE_PROPERTY_NAME = "instance"; /* from Database entity */ + public static final String DATABASE_IMPORTED_FROM_PROPERTY_NAME = "importedFrom"; /* from Database entity */ + + public static final String FILE_FOLDER_TYPE_GUID = "229ed5cc-de31-45fc-beb4-9919fd247398"; /* from Area 2 */ + public static final String FILE_FOLDER_TYPE_NAME = "FileFolder"; + /* DataStore */ + + public static final String DATA_FOLDER_TYPE_GUID = "9f1fb984-db15-43ee-85fb-f8b0353bfb8b"; /* from Area 2 */ + public static final String DATA_FOLDER_TYPE_NAME = "DataFolder"; + /* FileFolder */ + + public static final String FOLDER_HIERARCHY_TYPE_GUID = "48ac9028-45dd-495d-b3e1-622685b54a01"; /* from Area 2 */ + public static final String FOLDER_HIERARCHY_TYPE_NAME = "FolderHierarchy"; + + public static final String NESTED_FILE_TYPE_GUID = "4cb88900-1446-4eb6-acea-29cd9da45e63"; /* from Area 2 */ + public static final String NESTED_FILE_TYPE_NAME = "NestedFile"; + + public static final String LINKED_FILE_TYPE_GUID = "970a3405-fde1-4039-8249-9aa5f56d5151"; /* from Area 2 */ + public static final String LINKED_FILE_TYPE_NAME = "LinkedFile"; + + public static final String DATA_FILE_TYPE_GUID = "10752b4a-4b5d-4519-9eae-fdd6d162122f"; /* from Area 2 */ + public static final String DATA_FILE_TYPE_NAME = "DataFile"; + /* DataStore */ + + public static final String FILE_TYPE_PROPERTY_NAME = "fileType"; /* from DataFile entity */ + public static final String FILE_NAME_PROPERTY_NAME = "fileName"; /* from DataFile entity */ + + public static final String MEDIA_FILE_TYPE_GUID = "c5ce5499-9582-42ea-936c-9771fbd475f8"; /* from Area 2 */ + public static final String MEDIA_FILE_TYPE_NAME = "MediaFile"; + /* DataFile */ + public static final String DOCUMENT_TYPE_GUID = "b463827c-c0a0-4cfb-a2b2-ddc63746ded4"; /* from Area 2 */ + public static final String DOCUMENT_TYPE_NAME = "Document"; + /* MediaFile */ + public static final String DOCUMENT_STORE_TYPE_GUID = "37156790-feac-4e1a-a42e-88858ae6f8e1"; /* from Area 2 */ + public static final String DOCUMENT_STORE_TYPE_NAME = "DocumentStore"; + /* DataStore */ + public static final String MEDIA_COLLECTION_TYPE_GUID = "0075d603-1627-41c5-8cae-f5458d1247fe"; /* from Area 2 */ + public static final String MEDIA_COLLECTION_TYPE_NAME = "MediaCollection"; + /* DataSet */ + + public static final String LINKED_MEDIA_TYPE_GUID = "cee3a190-fc8d-4e53-908a-f1b9689581e0"; /* from Area 2 */ + public static final String LINKED_MEDIA_TYPE_NAME = "LinkedMedia"; + /* End1 = MediaFile; End 2 = MediaFile */ + + public static final String GROUPED_MEDIA_TYPE_GUID = "7d881574-461d-475c-ab44-077451528cb8"; /* from Area 2 */ + public static final String GROUPED_MEDIA_TYPE_NAME = "GroupedMedia"; + /* End1 = MediaCollection; End 2 = MediaFile */ + + public static final String EMBEDDED_METADATA_PROPERTY_NAME = "embeddedMetadata"; /* from MediaFile entity */ + + public static final String AVRO_FILE_TYPE_GUID = "75293260-3373-4777-af7d-7274d5c0b9a5"; /* from Area 2 */ + public static final String AVRO_FILE_TYPE_NAME = "AvroFile"; + /* DataFile */ + + public static final String CSV_FILE_TYPE_GUID = "2ccb2117-9cee-47ca-8150-9b3a543adcec"; /* from Area 2 */ + public static final String CSV_FILE_TYPE_NAME = "CSVFile"; + /* DataFile */ + + public static final String DELIMITER_CHARACTER_PROPERTY_NAME = "delimiterCharacter"; /* from CSVFile entity */ + public static final String QUOTE_CHARACTER_PROPERTY_NAME = "quoteCharacter"; /* from CSVFile entity */ + + + public static final String JSON_FILE_TYPE_GUID = "baa608fa-510e-42d7-95cd-7c12fa37bb35"; /* from Area 2 */ + public static final String JSON_FILE_TYPE_NAME = "JSONFile"; + /* DataFile */ + + public static final String DEPLOYED_DATABASE_SCHEMA_TYPE_GUID = "eab811ec-556a-45f1-9091-bc7ac8face0f"; /* from Area 2 */ + public static final String DEPLOYED_DATABASE_SCHEMA_TYPE_NAME = "DeployedDatabaseSchema"; + /* DataSet */ + + public static final String DATA_CONTENT_FOR_DATA_SET_TYPE_GUID = "b827683c-2924-4df3-a92d-7be1888e23c0"; /* from Area 2 */ + public static final String DATA_CONTENT_FOR_DATA_SET_TYPE_NAME = "DataContentForDataSet"; + /* End1 = Asset; End 2 = DataSet */ + + public static final String DATABASE_MANAGER_TYPE_GUID = "68b35c1e-6c28-4ac3-94f9-2c3dbcbb79e9"; + public static final String DATABASE_MANAGER_TYPE_NAME = "DatabaseManager"; + /* SoftwareServerCapability */ + + public static final String FILE_SYSTEM_CLASSIFICATION_TYPE_GUID = "cab5ba1d-cfd3-4fca-857d-c07711fc4157"; + public static final String FILE_SYSTEM_CLASSIFICATION_TYPE_NAME = "FileSystem"; + /* SoftwareCapability */ + + public static final String FORMAT_PROPERTY_NAME = "format"; /* from FileSystem */ + public static final String ENCRYPTION_PROPERTY_NAME = "encryption"; /* from FileSystem */ + + public static final String FILE_MANAGER_CLASSIFICATION_TYPE_GUID = "eadec807-02f0-4d6f-911c-261eddd0c2f5"; + public static final String FILE_MANAGER_CLASSIFICATION_TYPE_NAME = "FileManager"; + /* SoftwareCapability */ + + public static final String NOTIFICATION_MANAGER_CLASSIFICATION_GUID = "3e7502a7-396a-4737-a106-378c9c94c1057"; + public static final String NOTIFICATION_MANAGER_CLASSIFICATION_NAME = "NotificationManager"; + /* SoftwareCapability */ + + public static final String ENTERPRISE_ACCESS_LAYER_TYPE_GUID = "39444bf9-638e-4124-a5f9-1b8f3e1b008b"; + public static final String ENTERPRISE_ACCESS_LAYER_TYPE_NAME = "EnterpriseAccessLayer"; + /* SoftwareServerCapability */ + + public static final String TOPIC_ROOT_PROPERTY_NAME = "topicRoot"; /* from EnterpriseAccessLayer */ + public static final String METADATA_COLLECTION_ID_PROPERTY_NAME = "accessedMetadataCollectionId"; /* from EnterpriseAccessLayer */ + + public static final String COHORT_MEMBER_TYPE_GUID = "42063797-a78a-4720-9353-52026c75f667"; + public static final String COHORT_MEMBER_TYPE_NAME = "CohortMember"; + /* SoftwareServerCapability */ + + public static final String PROTOCOL_VERSION_PROPERTY_NAME = "protocolVersion"; /* from CohortMember */ + + public static final String DEPLOYED_API_TYPE_GUID = "7dbb3e63-138f-49f1-97b4-66313871fc14"; /* from Area 2 */ + public static final String DEPLOYED_API_TYPE_NAME = "DeployedAPI"; + /* Asset */ + public static final String API_ENDPOINT_TYPE_GUID = "de5b9501-3ad4-4803-a8b2-e311c72a4336"; /* from Area 2 */ + public static final String API_ENDPOINT_TYPE_NAME = "APIEndpoint"; + /* End1 = DeployedAPI; End 2 = Endpoint */ + + public static final String LOG_FILE_TYPE_GUID = "ff4c8484-9127-464a-97fc-99579d5bc429"; /* from Area 2 */ + public static final String LOG_FILE_TYPE_NAME = "LogFile"; + /* DataFile */ + public static final String LOG_FILE_TYPE_PROPERTY_NAME = "deployedImplementationType"; /* from LogFile entity */ + + public static final String TOPIC_TYPE_GUID = "29100f49-338e-4361-b05d-7e4e8e818325"; /* from Area 2 */ + public static final String TOPIC_TYPE_NAME = "Topic"; + /* DataSet */ + public static final String TOPIC_TYPE_PROPERTY_NAME = "topicType"; /* from Topic entity */ + + public static final String SUBSCRIBER_LIST_TYPE_GUID = "69751093-35f9-42b1-944b-ba6251ff513d"; /* from Area 2 */ + public static final String SUBSCRIBER_LIST_TYPE_NAME = "SubscriberList"; + /* DataSet */ + + public static final String TOPIC_SUBSCRIBERS_TYPE_GUID = "bc91a28c-afb9-41a7-8eb2-fc8b5271fe9e"; /* from Area 2 */ + public static final String TOPIC_SUBSCRIBERS_TYPE_NAME = "TopicSubscribers"; + /* End1 = SubscriberList; End 2 = Topic */ + + public static final String ASSOCIATED_LOG_TYPE_GUID = "0999e2b9-45d6-42c4-9767-4b74b0b48b89"; /* from Area 2 */ + public static final String ASSOCIATED_LOG_TYPE_NAME = "AssociatedLog"; + /* End1 = Referenceable; End 2 = Asset */ + + public static final String INFORMATION_VIEW_TYPE_GUID = "68d7b905-6438-43be-88cf-5de027b4aaaf"; /* from Area 2 */ + public static final String INFORMATION_VIEW_TYPE_NAME = "InformationView"; + /* DataSet */ + + public static final String FORM_TYPE_GUID = "8078e3d1-0c63-4ace-aafa-68498b39ccd6"; /* from Area 2 */ + public static final String FORM_TYPE_NAME = "Form"; + /* DataSet */ + + public static final String DEPLOYED_REPORT_TYPE_GUID = "e9077f4f-955b-4d7b-b1f7-12ee769ff0c3"; /* from Area 2 */ + public static final String DEPLOYED_REPORT_TYPE_NAME = "DeployedReport"; + /* DataSet */ + + public static final String ID_PROPERTY_NAME = "id"; /* from DeployedReport entity */ + public static final String CREATED_TIME_PROPERTY_NAME = "createdTime"; /* from DeployedReport entity */ + public static final String LAST_MODIFIED_TIME_PROPERTY_NAME = "lastModifiedTime"; /* from DeployedReport entity */ + public static final String LAST_MODIFIER_PROPERTY_NAME = "lastModifier"; /* from DeployedReport entity */ + + + public static final String DEPLOYED_SOFTWARE_COMPONENT_TYPE_GUID = "486af62c-dcfd-4859-ab24-eab2e380ecfd"; /* from Area 2 */ + public static final String DEPLOYED_SOFTWARE_COMPONENT_TYPE_NAME = "DeployedSoftwareComponent"; + /* Process */ + public static final String IMPLEMENTATION_LANGUAGE_PROPERTY_NAME = "implementationLanguage"; /* from Topic entity */ + + public static final String PROCESS_HIERARCHY_TYPE_GUID = "70dbbda3-903f-49f7-9782-32b503c43e0e"; /* from Area 2 */ + public static final String PROCESS_HIERARCHY_TYPE_NAME = "ProcessHierarchy"; + /* End1 = Process - parent; End 2 = Process - child */ + + public static final String PROCESS_CONTAINMENT_TYPE_ENUM_TYPE_GUID = "1bb4b908-7983-4802-a2b5-91b095552ee9"; + public static final String PROCESS_CONTAINMENT_TYPE_ENUM_TYPE_NAME = "ProcessContainmentType"; /* from Area 2 */ + + public static final String CONTAINMENT_TYPE_PROPERTY_NAME = "containmentType"; /* from ProcessHierarchy relationship */ + + public static final String PORT_TYPE_GUID = "e3d9FD9F-d5eD-2aed-CC98-0bc21aB6f71C"; /* from Area 2 */ + public static final String PORT_TYPE_NAME = "Port"; + /* Referenceable */ + + public static final String PORT_TYPE_ENUM_TYPE_GUID = "b57Fbce7-42ac-71D1-D6a6-9f62Cb7C6dc3"; + public static final String PORT_TYPE_ENUM_TYPE_NAME = "PortType"; /* from Area 2 */ + + public static final String PORT_TYPE_PROPERTY_NAME = "portType"; /* from Port entity */ + + public static final String PORT_ALIAS_TYPE_GUID = "DFa5aEb1-bAb4-c25B-bDBD-B95Ce6fAB7F5"; /* from Area 2 */ + public static final String PORT_ALIAS_TYPE_NAME = "PortAlias"; + /* Port */ + + public static final String PORT_IMPLEMENTATION_TYPE_GUID = "ADbbdF06-a6A3-4D5F-7fA3-DB4Cb0eDeC0E"; /* from Area 2 */ + public static final String PORT_IMPLEMENTATION_TYPE_NAME = "PortImplementation"; + /* Port */ + + public static final String PROCESS_PORT_TYPE_GUID = "fB4E00CF-37e4-88CE-4a94-233BAdB84DA2"; /* from Area 2 */ + public static final String PROCESS_PORT_TYPE_NAME = "ProcessPort"; + /* End1 = Process; End 2 = Port */ + + public static final String PORT_DELEGATION_TYPE_GUID = "98bB8BA1-dc6A-eb9D-32Cf-F837bEbCbb8E"; /* from Area 2 */ + public static final String PORT_DELEGATION_TYPE_NAME = "PortDelegation"; + /* End1 = Port delegating from; End 2 = Port delegating to */ + + + /* ============================================================================================================================*/ + /* Area 3 - Glossary */ + /* ============================================================================================================================*/ + + public static final String GLOSSARY_TYPE_GUID = "36f66863-9726-4b41-97ee-714fd0dc6fe4"; + public static final String GLOSSARY_TYPE_NAME = "Glossary"; /* from Area 3 */ + /* Referenceable */ + + public static final String LANGUAGE_PROPERTY_NAME = "language"; /* from Glossary entity*/ + public static final String USAGE_PROPERTY_NAME = "usage"; /* from Glossary entity*/ + + public static final String TAXONOMY_CLASSIFICATION_TYPE_GUID = "37116c51-e6c9-4c37-942e-35d48c8c69a0"; + public static final String TAXONOMY_CLASSIFICATION_TYPE_NAME = "Taxonomy"; /* from Area 3 */ + + public static final String ORGANIZING_PRINCIPLE_PROPERTY_NAME = "organizingPrinciple"; /* from Taxonomy classification */ + + public static final String CANONICAL_VOCAB_CLASSIFICATION_TYPE_GUID = "33ad3da2-0910-47be-83f1-daee018a4c05"; + public static final String CANONICAL_VOCAB_CLASSIFICATION_TYPE_NAME = "CanonicalVocabulary"; /* from Area 3 */ + + public static final String SCOPE_PROPERTY_NAME = "scope"; /* from CanonicalVocabulary classification */ + + public static final String EXTERNAL_GLOSSARY_LINK_TYPE_GUID = "183d2935-a950-4d74-b246-eac3664b5a9d"; + public static final String EXTERNAL_GLOSSARY_LINK_TYPE_NAME = "ExternalGlossaryLink"; /* from Area 3 */ + /* ExternalReference */ + + public static final String EXTERNALLY_SOURCED_GLOSSARY_TYPE_GUID = "7786a39c-436b-4538-acc7-d595b5856add"; + public static final String EXTERNALLY_SOURCED_GLOSSARY_TYPE_NAME = "ExternallySourcedGlossary"; /* from Area 3 */ + + public static final String GLOSSARY_CATEGORY_TYPE_GUID = "e507485b-9b5a-44c9-8a28-6967f7ff3672"; + public static final String GLOSSARY_CATEGORY_TYPE_NAME = "GlossaryCategory"; /* from Area 3 */ + /* Referenceable */ + + public static final String ROOT_CATEGORY_CLASSIFICATION_TYPE_GUID = "1d0fec82-7444-4e4c-abd4-4765bb855ce3"; + public static final String ROOT_CATEGORY_CLASSIFICATION_TYPE_NAME = "RootCategory"; + + public static final String CATEGORY_ANCHOR_TYPE_GUID = "c628938e-815e-47db-8d1c-59bb2e84e028"; + public static final String CATEGORY_ANCHOR_TYPE_NAME = "CategoryAnchor"; /* from Area 3 */ + + public static final String CATEGORY_HIERARCHY_TYPE_GUID = "71e4b6fb-3412-4193-aff3-a16eccd87e8e"; + public static final String CATEGORY_HIERARCHY_TYPE_NAME = "CategoryHierarchyLink"; /* from Area 3 */ + + public static final String LIBRARY_CATEGORY_REFERENCE_TYPE_GUID = "3da21cc9-3cdc-4d87-89b5-c501740f00b2e"; + public static final String LIBRARY_CATEGORY_REFERENCE_TYPE_NAME = "LibraryCategoryReference"; /* from Area 3 */ + + public static final String GLOSSARY_TERM_TYPE_GUID = "0db3e6ec-f5ef-4d75-ae38-b7ee6fd6ec0a"; + public static final String GLOSSARY_TERM_TYPE_NAME = "GlossaryTerm"; /* from Area 3 */ + /* Referenceable */ + + public static final String CONTROLLED_GLOSSARY_TERM_TYPE_GUID = "c04e29b2-2d66-48fc-a20d-e59895de6040"; + public static final String CONTROLLED_GLOSSARY_TERM_TYPE_NAME = "ControlledGlossaryTerm"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String EDITING_GLOSSARY_CLASSIFICATION_TYPE_GUID = "173614ba-c582-4ecc-8fcc-cde5fb664548"; + public static final String EDITING_GLOSSARY_CLASSIFICATION_TYPE_NAME = "EditingGlossary"; /* from Area 3 */ + /* Glossary */ + + public static final String STAGING_GLOSSARY_CLASSIFICATION_TYPE_GUID = "361fa044-e703-404c-bb83-9402f9221f54"; + public static final String STAGING_GLOSSARY_CLASSIFICATION_TYPE_NAME = "StagingGlossary"; /* from Area 3 */ + /* Glossary */ + + public static final String SUMMARY_PROPERTY_NAME = "summary"; /* from GlossaryTerm and GovernanceDefinition entity */ + public static final String EXAMPLES_PROPERTY_NAME = "examples"; /* from GlossaryTerm entity */ + public static final String ABBREVIATION_PROPERTY_NAME = "abbreviation"; /* from GlossaryTerm entity */ + public static final String PUBLISH_VERSION_ID_PROPERTY_NAME = "publishVersionIdentifier"; /* from GlossaryTerm entity */ + + public static final String TERM_RELATIONSHIP_STATUS_ENUM_TYPE_GUID = "42282652-7d60-435e-ad3e-7cfe5291bcc7"; + public static final String TERM_RELATIONSHIP_STATUS_ENUM_TYPE_NAME = "TermRelationshipStatus"; /* from Area 3 */ + + public static final String TERM_ANCHOR_TYPE_GUID = "1d43d661-bdc7-4a91-a996-3239b8f82e56"; + public static final String TERM_ANCHOR_TYPE_NAME = "TermAnchor"; /* from Area 3 */ + + public static final String TERM_CATEGORIZATION_TYPE_GUID = "696a81f5-ac60-46c7-b9fd-6979a1e7ad27"; + public static final String TERM_CATEGORIZATION_TYPE_NAME = "TermCategorization"; /* from Area 3 */ + + public static final String LIBRARY_TERM_REFERENCE_TYPE_GUID = "38c346e4-ddd2-42ef-b4aa-55d53c078d22"; + public static final String LIBRARY_TERM_REFERENCE_TYPE_NAME = "LibraryTermReference"; /* from Area 3 */ + + public static final String ACTIVITY_TYPE_ENUM_TYPE_GUID = "af7e403d-9865-4ebb-8c1a-1fd57b4f4bca"; + public static final String ACTIVITY_TYPE_ENUM_TYPE_NAME = "ActivityType"; /* from Area 3 */ + + public static final String ACTIVITY_TYPE_PROPERTY_NAME = "activityType"; /* from Area 3 */ + + public static final String ACTIVITY_DESC_CLASSIFICATION_TYPE_GUID = "317f0e52-1548-41e6-b90c-6ae5e6c53fed"; + public static final String ACTIVITY_DESC_CLASSIFICATION_TYPE_NAME = "ActivityDescription"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String ABSTRACT_CONCEPT_CLASSIFICATION_TYPE_GUID = "9d725a07-4abf-4939-a268-419d200b69c2"; + public static final String ABSTRACT_CONCEPT_CLASSIFICATION_TYPE_NAME = "AbstractConcept"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String DATA_VALUE_CLASSIFICATION_TYPE_GUID = "ab253e31-3d8a-45a7-8592-24329a189b9e"; + public static final String DATA_VALUE_CLASSIFICATION_TYPE_NAME = "DataValue"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String CONTEXT_DEFINITION_CLASSIFICATION_TYPE_GUID = "54f9f41a-3871-4650-825d-59a41de01330e"; + public static final String CONTEXT_DEFINITION_CLASSIFICATION_TYPE_NAME = "ContextDefinition"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String SPINE_OBJECT_CLASSIFICATION_TYPE_GUID = "a41ee152-de1e-4533-8535-2f8b37897cac"; + public static final String SPINE_OBJECT_CLASSIFICATION_TYPE_NAME = "SpineObject"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String SPINE_ATTRIBUTE_CLASSIFICATION_TYPE_GUID = "ccb749ba-34ec-4f71-8755-4d8b383c34c3"; + public static final String SPINE_ATTRIBUTE_CLASSIFICATION_TYPE_NAME = "SpineAttribute"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String OBJECT_IDENTIFIER_CLASSIFICATION_TYPE_GUID = "3d1e4389-27de-44fa-8df4-d57bfaf809ea"; + public static final String OBJECT_IDENTIFIER_CLASSIFICATION_TYPE_NAME = "ObjectIdentifier"; /* from Area 3 */ + /* GlossaryTerm */ + + public static final String GLOSSARY_PROJECT_CLASSIFICATION_TYPE_GUID = "43be51a9-2d19-4044-b399-3ba36af10929"; + public static final String GLOSSARY_PROJECT_CLASSIFICATION_TYPE_NAME = "GlossaryProject"; /* from Area 3 */ + /* GlossaryProject */ + + public static final String REFERENCEABLE_TO_MEANING_TYPE_GUID = "e6670973-645f-441a-bec7-6f5570345b92"; + public static final String REFERENCEABLE_TO_MEANING_TYPE_NAME = "SemanticAssignment"; + /* End1 = Referenceable; End 2 = GlossaryTerm */ + + public static final String TERM_ASSIGNMENT_STATUS_ENUM_TYPE_GUID = "c8fe36ac-369f-4799-af75-46b9c1343ab3"; + public static final String TERM_ASSIGNMENT_STATUS_ENUM_TYPE_NAME = "TermAssignmentStatus"; + + public static final String EXPRESSION_PROPERTY_NAME = "expression"; + public static final String USER_DEFINED_STATUS_PROPERTY_NAME = "userDefinedStatus"; + public static final String CONFIDENCE_PROPERTY_NAME = "confidence"; + public static final String STEWARD_PROPERTY_NAME = "steward"; + public static final String STEWARD_TYPE_NAME_PROPERTY_NAME = "stewardTypeName"; + public static final String STEWARD_PROPERTY_NAME_PROPERTY_NAME = "stewardPropertyName"; + public static final String CREATED_BY_PROPERTY_NAME = "createdBy"; + + + public static final String ELEMENT_SUPPLEMENT_CLASSIFICATION_TYPE_GUID = "58520015-ce6e-47b7-a1fd-864030544819"; + public static final String ELEMENT_SUPPLEMENT_CLASSIFICATION_TYPE_NAME = "ElementSupplement"; /* from Area 3 */ + /* Referencable */ + + public static final String SUPPLEMENTARY_PROPERTIES_TYPE_GUID = "2bb10ba5-7aa2-456a-8b3a-8fdbd75c95cd"; + public static final String SUPPLEMENTARY_PROPERTIES_TYPE_NAME = "SupplementaryProperties"; /* from Area 3 */ + /* End1 = Referenceable; End 2 = GlossaryTerm */ + + + /* ============================================================================================================================*/ + /* Area 4 - Governance */ + /* ============================================================================================================================*/ + + public static final String GOVERNANCE_DOMAIN_TYPE_GUID = "578a3500-9ad3-45fe-8ada-e4e9572c37c8"; + public static final String GOVERNANCE_DOMAIN_TYPE_NAME = "GovernanceDomainDescription"; + /* Referenceable */ + + public static final String GOVERNANCE_DOMAIN_SET_CLASSIFICATION_NAME = "GovernanceDomainSet"; + + public static final String GOVERNANCE_ROLE_TYPE_GUID = "de2d7f2e-1759-44e3-b8a6-8af53e8fb0ee"; + public static final String GOVERNANCE_ROLE_TYPE_NAME = "GovernanceRole"; + /* PersonRole */ + + public static final String GOVERNANCE_OFFICER_TYPE_GUID = "578a3500-9ad3-45fe-8ada-e4e9572c37c8"; + public static final String GOVERNANCE_OFFICER_TYPE_NAME = "GovernanceOfficer"; + /* GovernanceRole */ + + public static final String GOVERNANCE_REPRESENTATIVE_TYPE_GUID = "6046bdf8-a37e-4bc4-b51d-325d8c31a96c"; + public static final String GOVERNANCE_REPRESENTATIVE_TYPE_NAME = "GovernanceRepresentative"; + /* GovernanceRole */ + + public static final String LOCATION_OWNER_TYPE_GUID = "3437fd1d-5098-426c-9b55-c94d1fc5dc0e"; + public static final String LOCATION_OWNER_TYPE_NAME = "LocationOwner"; + /* GovernanceRole */ + + public static final String ASSET_OWNER_TYPE_GUID = "ac406bf8-e53e-49f1-9088-2af28eeee285"; + public static final String ASSET_OWNER_TYPE_NAME = "AssetOwner"; + /* GovernanceRole */ + + public static final String BUSINESS_OWNER_TYPE_GUID = "0e83bb5f-f2f5-4a85-92eb-f71e92a181f5"; + public static final String BUSINESS_OWNER_TYPE_NAME = "BusinessOwner"; + /* GovernanceRole */ + + public static final String SOLUTION_OWNER_TYPE_GUID = "e44d5019-37e5-4965-8b89-2bef412833bf"; + public static final String SOLUTION_OWNER_TYPE_NAME = "SolutionOwner"; + /* GovernanceRole */ + + public static final String COMPONENT_OWNER_TYPE_GUID = "21756af1-06c9-4b06-87d2-3ef911f0a58a"; + public static final String COMPONENT_OWNER_TYPE_NAME = "ComponentOwner"; + /* GovernanceRole */ + + public static final String DATA_ITEM_OWNER_TYPE_GUID = "69836cfd-39b8-460b-8727-b04e19210069"; + public static final String DATA_ITEM_OWNER_TYPE_NAME = "DataItemOwner"; + /* GovernanceRole */ + + public static final String GOVERNANCE_DEFINITION_TYPE_GUID = "578a3500-9ad3-45fe-8ada-e4e9572c37c8"; + public static final String GOVERNANCE_DEFINITION_TYPE_NAME = "GovernanceDefinition"; + /* Referenceable */ + + public static final String GOVERNANCE_DRIVER_TYPE_GUID = "c403c109-7b6b-48cd-8eee-df445b258b33"; + public static final String GOVERNANCE_DRIVER_TYPE_NAME = "GovernanceDriver"; + /* GovernanceDefinition */ + + public static final String GOVERNANCE_STRATEGY_TYPE_GUID = "3c34f121-07a6-4e95-a07d-9b0ef17b7bbf"; + public static final String GOVERNANCE_STRATEGY_TYPE_NAME = "GovernanceStrategy"; + /* GovernanceDriver */ + + public static final String REGULATION_TYPE_GUID = "e3c4293d-8846-4500-b0c0-197d73aba8b0"; + public static final String REGULATION_TYPE_NAME = "Regulation"; + /* GovernanceDriver */ + + public static final String GOVERNANCE_POLICY_TYPE_GUID = "a7defa41-9cfa-4be5-9059-359022bb016d"; + public static final String GOVERNANCE_POLICY_TYPE_NAME = "GovernancePolicy"; + /* GovernanceDefinition */ + + public static final String GOVERNANCE_PRINCIPLE_TYPE_GUID = "3b7d1325-ec2c-44cb-8db0-ce207beb78cf"; + public static final String GOVERNANCE_PRINCIPLE_TYPE_NAME = "GovernancePrinciple"; + /* GovernancePolicy */ + + public static final String GOVERNANCE_OBLIGATION_TYPE_GUID = "0cec20d3-aa29-41b7-96ea-1c544ed32537"; + public static final String GOVERNANCE_OBLIGATION_TYPE_NAME = "GovernanceObligation"; + /* GovernancePolicy */ + + public static final String GOVERNANCE_APPROACH_TYPE_GUID = "2d03ec9d-bd6b-4be9-8e17-95a7ecdbaa67"; + public static final String GOVERNANCE_APPROACH_TYPE_NAME = "GovernanceApproach"; + /* GovernancePolicy */ + + public static final String GOVERNANCE_CONTROL_TYPE_GUID = "c794985e-a10b-4b6c-9dc2-6b2e0a2901d3"; + public static final String GOVERNANCE_CONTROL_TYPE_NAME = "GovernanceControl"; + /* GovernanceDefinition */ + + public static final String TECHNICAL_CONTROL_TYPE_GUID = "d8f6eb5b-36f0-49bd-9b25-bf16f370d1ec"; + public static final String TECHNICAL_CONTROL_TYPE_NAME = "TechnicalControl"; + /* GovernanceControl */ + + public static final String GOVERNANCE_RULE_TYPE_GUID = "8f954380-12ce-4a2d-97c6-9ebe250fecf8"; + public static final String GOVERNANCE_RULE_TYPE_NAME = "GovernanceRule"; + /* TechnicalControl */ + + public static final String NAMING_STANDARD_RULE_TYPE_GUID = "52505b06-98a5-481f-8a32-db9b02afabfc"; + public static final String NAMING_STANDARD_RULE_TYPE_NAME = "NamingStandardRule"; + /* GovernanceRule */ + + public static final String GOVERNANCE_PROCESS_TYPE_GUID = "b68b5d9d-6b79-4f3a-887f-ec0f81c54aea"; + public static final String GOVERNANCE_PROCESS_TYPE_NAME = "GovernanceProcess"; + /* TechnicalControl */ + + public static final String ORGANIZATIONAL_CONTROL_TYPE_GUID = "befa1458-79b8-446a-b813-536700e60fa8"; + public static final String ORGANIZATIONAL_CONTROL_TYPE_NAME = "OrganizationalControl"; + /* GovernanceControl */ + + public static final String GOVERNANCE_RESPONSIBILITY_TYPE_GUID = "89a76b24-deb8-45bf-9304-a578a610326f"; + public static final String GOVERNANCE_RESPONSIBILITY_TYPE_NAME = "GovernanceResponsibility"; + /* OrganizationalControl */ + + public static final String GOVERNANCE_PROCEDURE_TYPE_GUID = "69055d10-51dc-4c2b-b21f-d76fad3f8ef3"; + public static final String GOVERNANCE_PROCEDURE_TYPE_NAME = "GovernanceProcedure"; + /* OrganizationalControl */ + + + public static final String NAMING_STANDARD_RULE_SET_TYPE_GUID = "ba70f506-1f81-4890-bb4f-1cb1d99c939e"; + public static final String NAMING_STANDARD_RULE_SET_TYPE_NAME = "NamingStandardRuleSet"; + /* Collection */ + + public static final String PRIME_WORD_CLASSIFICATION_TYPE_GUID = "3ea1ea66-8923-4662-8628-0bacef3e9c5f"; + public static final String PRIME_WORD_CLASSIFICATION_TYPE_NAME = "PrimeWord"; + + public static final String CLASS_WORD_CLASSIFICATION_TYPE_GUID = "feac4bd9-37d9-4437-82f6-618ce3e2793e"; + public static final String CLASS_WORD_CLASSIFICATION_TYPE_NAME = "ClassWord"; + + public static final String MODIFIER_CLASSIFICATION_TYPE_GUID = "f662c95a-ae3f-4f71-b442-78ab70f2ee47"; + public static final String MODIFIER_CLASSIFICATION_TYPE_NAME = "Modifier"; + + public static final String GOVERNED_BY_TYPE_GUID = "89c3c695-9e8d-4660-9f44-ed971fd55f89"; + public static final String GOVERNED_BY_TYPE_NAME = "GovernedBy"; /* from Area 4 */ + /* End1 = GovernanceDefinition; End 2 = Referenceable */ + + public static final String GOVERNANCE_DEFINITION_SCOPE_TYPE_GUID = "3845b5cc-8c85-462f-b7e6-47472a568793"; + public static final String GOVERNANCE_DEFINITION_SCOPE_TYPE_NAME = "GovernanceDefinitionScope"; /* from Area 4 */ + /* End1 = Referenceable; End 2 = GovernanceDefinition */ + + public static final String GOVERNANCE_RESPONSE_TYPE_GUID = "8845990e-7fd9-4b79-a19d-6c4730dadd6b"; + public static final String GOVERNANCE_RESPONSE_TYPE_NAME = "GovernanceResponse"; /* from Area 4 */ + /* End1 = GovernanceDriver; End 2 = GovernancePolicy */ + + public static final String GOVERNANCE_DRIVER_LINK_TYPE_NAME = "GovernanceDriverLink"; /* from Area 4 */ + /* End1 = GovernanceDriver; End 2 = GovernanceDriver */ + + public static final String GOVERNANCE_POLICY_LINK_TYPE_GUID = "0c42c999-4cac-4da4-afab-0e381f3a818e"; + public static final String GOVERNANCE_POLICY_LINK_TYPE_NAME = "GovernancePolicyLink"; /* from Area 4 */ + /* End1 = GovernancePolicy; End 2 = GovernancePolicy */ + + public static final String GOVERNANCE_IMPLEMENTATION_TYPE_GUID = "787eaf46-7cf2-4096-8d6e-671a0819d57e"; + public static final String GOVERNANCE_IMPLEMENTATION_TYPE_NAME = "GovernanceImplementation"; /* from Area 4 */ + /* End1 = GovernancePolicy; End 2 = GovernanceControl */ + + public static final String GOVERNANCE_CONTROL_LINK_TYPE_GUID = "806933fb-7925-439b-9876-922a960d2ba1"; + public static final String GOVERNANCE_CONTROL_LINK_TYPE_NAME = "GovernanceControlLink"; /* from Area 4 */ + /* End1 = GovernanceControl; End 2 = GovernanceControl */ + + public static final String GOVERNANCE_ROLE_ASSIGNMENT_TYPE_GUID = "cb10c107-b7af-475d-aab0-d78b8297b982"; + public static final String GOVERNANCE_ROLE_ASSIGNMENT_TYPE_NAME = "GovernanceRoleAssignment"; /* from Area 4 */ + /* End1 = Referenceable; End 2 = PersonRole */ + + public static final String GOVERNANCE_RESPONSIBILITY_ASSIGNMENT_TYPE_GUID = "cb15c107-b7af-475d-aab0-d78b8297b982"; + public static final String GOVERNANCE_RESPONSIBILITY_ASSIGNMENT_TYPE_NAME = "GovernanceResponsibilityAssignment"; /* from Area 4 */ + /* End1 = PersonRole; End 2 = GovernanceResponsibility */ + + public static final String DOMAIN_IDENTIFIER_PROPERTY_NAME = "domainIdentifier"; /* from many governance entities */ + public static final String CRITERIA_PROPERTY_NAME = "criteria"; /* from many governance entities */ + + public static final String IMPLICATIONS_PROPERTY_NAME = "implications"; /* from GovernanceDefinition entity */ + public static final String OUTCOMES_PROPERTY_NAME = "outcomes"; /* from GovernanceDefinition entity */ + public static final String RESULTS_PROPERTY_NAME = "results"; /* from GovernanceDefinition entity */ + public static final String BUSINESS_IMPERATIVES_PROPERTY_NAME = "businessImperatives"; /* from GovernanceStrategy entity */ + public static final String JURISDICTION_PROPERTY_NAME = "jurisdiction"; /* from Regulation entity */ + public static final String IMPLEMENTATION_DESCRIPTION_PROPERTY_NAME = "implementationDescription"; /* from GovernanceControl entity */ + public static final String NOTES_PROPERTY_NAME = "notes"; /* from multiple entities */ + public static final String ATTRIBUTE_NAME_PROPERTY_NAME = "attributeName"; /* from ReferenceValueAssignment relationship */ + public static final String RATIONALE_PROPERTY_NAME = "rationale"; /* from GovernanceResponse, GovernanceImplementation relationship */ + + public static final String GOVERNANCE_PROJECT_CLASSIFICATION_TYPE_GUID = "37142317-4125-4046-9514-71dc5031563f"; + public static final String GOVERNANCE_PROJECT_CLASSIFICATION_TYPE_NAME = "GovernanceProject"; + /* Attached to Project */ + + public static final String GOVERNANCE_CLASSIFICATION_LEVEL_TYPE_GUID = "8af91d61-2ae8-4255-992e-14d7f745a556"; + public static final String GOVERNANCE_CLASSIFICATION_LEVEL_TYPE_NAME = "GovernanceClassificationLevel"; + /* Referenceable */ + + public static final String LEVEL_IDENTIFIER_PROPERTY_NAME = "levelIdentifier"; /* from many governance entities and classifications */ + public static final String SEVERITY_IDENTIFIER_PROPERTY_NAME = "severityIdentifier"; /* from Impact classification */ + public static final String BASIS_IDENTIFIER_PROPERTY_NAME = "basisIdentifier"; /* from Retention classification */ + + public static final String GOVERNANCE_CLASSIFICATION_SET_TYPE_GUID = "d92b7f31-c92d-418d-b345-ea45bb3f73f5"; + public static final String GOVERNANCE_CLASSIFICATION_SET_TYPE_NAME = "GovernanceClassificationSet"; + /* Attached to Collection */ + + public static final String GOVERNANCE_STATUS_LEVEL_TYPE_GUID = "a518de03-0f72-4944-9cd5-e05b43ae9c5e"; + public static final String GOVERNANCE_STATUS_LEVEL_TYPE_NAME = "GovernanceStatusLevel"; + /* Referenceable */ + + public static final String STATUS_IDENTIFIER_PROPERTY_NAME = "statusIdentifier"; + + public static final String GOVERNANCE_STATUS_SET_TYPE_GUID = "c13261bb-0cfe-4540-a44a-cca2b14f412b"; + public static final String GOVERNANCE_STATUS_SET_TYPE_NAME = "GovernanceStatusSet"; + /* Attached to Collection */ + + public static final String GOVERNANCE_CLASSIFICATION_STATUS_ENUM_TYPE_GUID = "cc540586-ac7c-41ba-8cc1-4da694a6a8e4"; + public static final String GOVERNANCE_CLASSIFICATION_STATUS_ENUM_TYPE_NAME = "GovernanceClassificationStatus"; + public static final int DISCOVERED_GC_STATUS_ORDINAL = 0; + public static final int PROPOSED_GC_STATUS_ORDINAL = 1; + public static final int IMPORTED_GC_STATUS_ORDINAL = 2; + public static final int VALIDATED_GC_STATUS_ORDINAL = 3; + public static final int DEPRECATED_GC_STATUS_ORDINAL = 4; + public static final int OBSOLETE_GC_STATUS_ORDINAL = 5; + public static final int OTHER_GC_STATUS_ORDINAL = 99; + + public static final String CONFIDENCE_LEVEL_ENUM_TYPE_GUID = "ae846797-d88a-4421-ad9a-318bf7c1fe6f"; + public static final String CONFIDENCE_LEVEL_ENUM_TYPE_NAME = "ConfidenceLevel"; + + public static final String RETENTION_BASIS_ENUM_TYPE_GUID = "de79bf78-ecb0-4fd0-978f-ecc2cb4ff6c7"; + public static final String RETENTION_BASIS_ENUM_TYPE_NAME = "RetentionBasis"; + + public static final String CRITICALITY_LEVEL_ENUM_TYPE_GUID = "22bcbf49-83e1-4432-b008-e09a8f842a1e"; + public static final String CRITICALITY_LEVEL_ENUM_TYPE_NAME = "CriticalityLevel"; + + public static final String IMPACT_SEVERITY_ENUM_TYPE_GUID = "3a6c4ba7-3cc5-48cd-8952-a50a92da016d"; + public static final String IMPACT_SEVERITY_ENUM_TYPE_NAME = "ImpactSeverity"; + + public static final String CONFIDENTIALITY_CLASSIFICATION_TYPE_GUID = "742ddb7d-9a4a-4eb5-8ac2-1d69953bd2b6"; + public static final String CONFIDENTIALITY_CLASSIFICATION_TYPE_NAME = "Confidentiality"; + + public static final String CONFIDENCE_CLASSIFICATION_TYPE_GUID = "25d8f8d5-2998-4983-b9ef-265f58732965"; + public static final String CONFIDENCE_CLASSIFICATION_TYPE_NAME = "Confidence"; + + public static final String CRITICALITY_CLASSIFICATION_TYPE_GUID = "d46d211a-bd22-40d5-b642-87b4954a167e"; + public static final String CRITICALITY_CLASSIFICATION_TYPE_NAME = "Criticality"; + + public static final String IMPACT_CLASSIFICATION_TYPE_GUID = "5b905856-90ec-4944-80c4-0d42bcad484a"; + public static final String IMPACT_CLASSIFICATION_TYPE_NAME = "Impact"; + + public static final String RETENTION_CLASSIFICATION_TYPE_GUID = "83dbcdf2-9445-45d7-bb24-9fa661726553"; + public static final String RETENTION_CLASSIFICATION_TYPE_NAME = "Retention"; + + public static final String GOVERNANCE_CLASSIFICATION_STATUS_PROPERTY_NAME = "status"; + public static final String GOVERNANCE_CLASSIFICATION_CONFIDENCE_PROPERTY_NAME = "confidence"; + public static final String GOVERNANCE_CLASSIFICATION_STEWARD_PROPERTY_NAME = "steward"; + public static final String GOVERNANCE_CLASSIFICATION_SOURCE_PROPERTY_NAME = "source"; + public static final String GOVERNANCE_CLASSIFICATION_NOTES_PROPERTY_NAME = "notes"; + + public static final String CONFIDENTIALITY_LEVEL_PROPERTY_NAME = "level"; + public static final String CRITICALITY_LEVEL_PROPERTY_NAME = "level"; + public static final String RETENTION_BASIS_PROPERTY_NAME = "basis"; + public static final String RETENTION_ASSOCIATED_GUID_PROPERTY_NAME = "associatedGUID"; + public static final String RETENTION_ARCHIVE_AFTER_PROPERTY_NAME = "archiveAfter"; + public static final String RETENTION_DELETE_AFTER_PROPERTY_NAME = "deleteAfter"; + + public static final String SECURITY_GROUP_TYPE_GUID = "042d9b5c-677e-477b-811f-1c39bf716759"; + public static final String SECURITY_GROUP_TYPE_NAME = "SecurityGroup"; + /* TechnicalControl */ + + public static final String SECURITY_GROUP_MEMBERSHIP_CLASSIFICATION_TYPE_GUID = "21a16f1e-9231-4983-b371-a0686d555273"; + public static final String SECURITY_GROUP_MEMBERSHIP_CLASSIFICATION_TYPE_NAME = "SecurityGroupMembership"; + public static final String GROUPS_PROPERTY_NAME = "groups"; + public static final String DISTINGUISHED_NAME_PROPERTY_NAME = "distinguishedName"; + + public static final String SECURITY_TAG_CLASSIFICATION_TYPE_GUID = "a0b07a86-9fd3-40ca-bb9b-fe83c6981deb"; + public static final String SECURITY_TAG_CLASSIFICATION_TYPE_NAME = "SecurityTags"; + public static final String SECURITY_LABELS_PROPERTY_NAME = "securityLabels"; + public static final String SECURITY_PROPERTIES_PROPERTY_NAME = "securityProperties"; + public static final String ACCESS_GROUPS_PROPERTY_NAME = "accessGroups"; + + + public static final String ZONE_TYPE_GUID = "290a192b-42a7-449a-935a-269ca62cfdac"; + public static final String ZONE_TYPE_NAME = "GovernanceZone"; + /* Referenceable */ + + public static final String ZONE_NAME_PROPERTY_NAME = "zoneName"; + + public static final String ZONE_HIERARCHY_TYPE_GUID = "ee6cf469-cb4d-4c3b-a4c7-e2da1236d139"; + public static final String ZONE_HIERARCHY_TYPE_NAME = "ZoneHierarchy"; /* from Area 4 */ + /* End1 = Parent Zone; End 2 = Child Zone */ + + public static final String SUBJECT_AREA_TYPE_GUID = "d28c3839-bc6f-41ad-a882-5667e01fea72"; + public static final String SUBJECT_AREA_TYPE_NAME = "SubjectAreaDefinition"; + /* Referenceable */ + + public static final String SUBJECT_AREA_NAME_PROPERTY_NAME = "subjectAreaName"; + + public static final String SUBJECT_AREA_HIERARCHY_TYPE_GUID = "fd3b7eaf-969c-4c26-9e1e-f31c4c2d1e4b"; + public static final String SUBJECT_AREA_HIERARCHY_TYPE_NAME = "SubjectAreaHierarchy"; /* from Area 4 */ + /* End1 = Parent Subject Area; End 2 = Child Subject Area */ + + public static final String SUBJECT_AREA_CLASSIFICATION_TYPE_GUID = "480e6993-35c5-433a-b50b-0f5c4063fb5d"; + public static final String SUBJECT_AREA_CLASSIFICATION_TYPE_NAME = "SubjectArea"; + /* Referenceable */ + + public static final String ORGANIZATION_TYPE_GUID = "50a61105-35be-4ee3-8b99-bdd958ed0685"; + public static final String ORGANIZATION_TYPE_NAME = "Organization"; /* from Area 4 */ + /* Team */ + + public static final String BUSINESS_CAPABILITY_TYPE_GUID = "7cc6bcb2-b573-4719-9412-cf6c3f4bbb15"; + public static final String BUSINESS_CAPABILITY_TYPE_NAME = "BusinessCapability"; /* from Area 4 */ + /* Referenceable */ + + public static final String ORGANIZATIONAL_CAPABILITY_TYPE_GUID = "47f0ad39-db77-41b0-b406-36b1598e0ba7"; + public static final String ORGANIZATIONAL_CAPABILITY_TYPE_NAME = "OrganizationalCapability"; /* from Area 4 */ + /* End1 = BusinessCapability; End 2 = Team */ + + public static final String BUSINESS_CAPABILITY_CONTROLS_TYPE_GUID = "b5de932a-738c-4c69-b852-09fec2b9c678"; + public static final String BUSINESS_CAPABILITY_CONTROLS_TYPE_NAME = "BusinessCapabilityControls"; /* from Area 4 */ + /* End1 = GovernanceControl; End 2 = BusinessCapability */ + + public static final String ASSET_ORIGIN_CLASSIFICATION_GUID = "e530c566-03d2-470a-be69-6f52bfbd5fb7"; + public static final String ASSET_ORIGIN_CLASSIFICATION_NAME = "AssetOrigin"; + + public static final String ORGANIZATION_PROPERTY_NAME = "organization"; /* from AssetOrigin classification */ + public static final String ORGANIZATION_PROPERTY_NAME_PROPERTY_NAME = "organizationPropertyName"; /* from AssetOrigin classification */ + public static final String BUSINESS_CAPABILITY_PROPERTY_NAME = "businessCapability"; /* from AssetOrigin classification */ + public static final String BUSINESS_CAPABILITY_PROPERTY_NAME_PROPERTY_NAME = "businessCapabilityPropertyName"; /* from AssetOrigin classification */ + public static final String OTHER_ORIGIN_VALUES_PROPERTY_NAME = "otherOriginValues"; /* from AssetOrigin classification */ + + public static final String BUSINESS_CAPABILITY_TYPE_PROPERTY_NAME = "businessCapabilityType"; /* from BusinessCapability entity */ + + public static final String ASSET_ZONES_CLASSIFICATION_GUID = "a1c17a86-9fd3-40ca-bb9b-fe83c6981deb"; + public static final String ASSET_ZONES_CLASSIFICATION_NAME = "AssetZoneMembership"; + + public static final String ZONE_MEMBERSHIP_PROPERTY_NAME = "zoneMembership"; /* from Area 4 */ + + public static final String PROJECT_CHARTER_TYPE_GUID = "f96b5a32-42c1-4a74-8f77-70a81cec783d"; + public static final String PROJECT_CHARTER_TYPE_NAME = "ProjectCharter"; + /* Referenceable */ + + public static final String PROJECT_CHARTER_LINK_TYPE_GUID = "f081808d-545a-41cb-a9aa-c4f074a16c78"; + public static final String PROJECT_CHARTER_LINK_TYPE_NAME = "ProjectCharterLink"; + /* End1 = Project; End 2 = ProjectCharter */ + + public static final String PROJECT_TYPE_PROPERTY_NAME = "projectType"; /* from Area 4 */ + public static final String PURPOSES_PROPERTY_NAME = "purposes"; /* from Area 4 */ + + public static final String ASSET_OWNERSHIP_CLASSIFICATION_GUID = "d531c566-03d2-470a-be69-6f52cabd5fb9"; + public static final String ASSET_OWNERSHIP_CLASSIFICATION_NAME = "AssetOwnership"; + + public static final String OWNERSHIP_CLASSIFICATION_TYPE_GUID = "8139a911-a4bd-432b-a9f4-f6d11c511abe"; + public static final String OWNERSHIP_CLASSIFICATION_TYPE_NAME = "Ownership"; + + public static final String OWNER_PROPERTY_NAME = "owner"; /* from Area 4 */ + public static final String OWNER_TYPE_PROPERTY_NAME = "ownerType"; /* deprecated */ + public static final String OWNER_TYPE_NAME_PROPERTY_NAME = "ownerTypeName"; + public static final String OWNER_PROPERTY_NAME_PROPERTY_NAME = "ownerPropertyName"; + + public static final String OWNER_TYPE_ENUM_TYPE_GUID = "5ce92a70-b86a-4e0d-a9d7-fc961121de97"; + public static final String OWNER_TYPE_ENUM_TYPE_NAME = "OwnerType"; /* deprecated */ + + public static final String ASSET_OWNER_TYPE_ENUM_TYPE_GUID = "9548390c-69f5-4dc6-950d-6feeee257b56"; + public static final String ASSET_OWNER_TYPE_ENUM_TYPE_NAME = "AssetOwnerType"; + + public static final int USER_ID_OWNER_TYPE_ORDINAL = 0; + public static final int PROFILE_ID_OWNER_TYPE_ORDINAL = 1; + public static final int OTHER_OWNER_TYPE_ORDINAL = 99; + + public static final String GOVERNANCE_METRIC_TYPE_GUID = "9ada8e7b-823c-40f7-adf8-f164aabda77e"; + public static final String GOVERNANCE_METRIC_TYPE_NAME = "GovernanceMetric"; + /* Referenceable */ + + public static final String MEASUREMENT_PROPERTY_NAME = "measurement"; /* from Area 4 */ + public static final String TARGET_PROPERTY_NAME = "target"; /* from Area 4 */ + + public static final String GOVERNANCE_RESULTS_TYPE_GUID = "89c3c695-9e8d-4660-9f44-ed971fd55f88"; + public static final String GOVERNANCE_RESULTS_TYPE_NAME = "GovernanceResults"; + /* End1 = GovernanceMetric; End 2 = DataSet */ + + public static final String GOVERNANCE_DEFINITION_METRIC_TYPE_GUID = "e076fbb3-54f5-46b8-8f1e-a7cb7e792673"; + public static final String GOVERNANCE_DEFINITION_METRIC_TYPE_NAME = "GovernanceDefinitionMetric"; + /* End1 = GovernanceDefinition; End 2 = GovernanceMetric */ + + public static final String GOVERNANCE_EXPECTATIONS_CLASSIFICATION_TYPE_GUID = "fcda7261-865d-464d-b279-7d9880aaab39"; + public static final String GOVERNANCE_EXPECTATIONS_CLASSIFICATION_TYPE_NAME = "GovernanceExpectations"; + /* Referenceable */ + + public static final String COUNTS_PROPERTY_NAME = "counts"; /* from Area 4 */ + public static final String VALUES_PROPERTY_NAME = "values"; /* from Area 4 */ + public static final String FLAGS_PROPERTY_NAME = "flags"; /* from Area 4 */ + + + public static final String GOVERNANCE_MEASUREMENTS_CLASSIFICATION_TYPE_GUID = "9d99d962-0214-49ba-83f7-c9b1f9f5bed4"; + public static final String GOVERNANCE_MEASUREMENTS_CLASSIFICATION_TYPE_NAME = "GovernanceMeasurements"; + /* Referenceable */ + + public static final String MEASUREMENT_COUNTS_PROPERTY_NAME = "measurementCounts"; /* from Area 4 */ + public static final String MEASUREMENT_VALUES_PROPERTY_NAME = "measurementValues"; /* from Area 4 */ + public static final String MEASUREMENT_FLAGS_PROPERTY_NAME = "measurementFlags"; /* from Area 4 */ + + public static final String GOVERNANCE_MEASUREMENTS_DATA_SET_CLASSIFICATION_TYPE_GUID = "789f2e89-accd-4489-8eca-dc43b432c022"; + public static final String GOVERNANCE_MEASUREMENTS_DATA_SET_CLASSIFICATION_TYPE_NAME = "GovernanceMeasurementsResultsDataSet"; + /* Referenceable */ + + public static final String EXECUTION_POINT_DEFINITION_TYPE_GUID = "d7f8d1d2-8cec-4fd2-b9fd-c8307cad750d"; + public static final String EXECUTION_POINT_DEFINITION_TYPE_NAME = "ExecutionPointDefinition"; + /* Referenceable */ + + public static final String CONTROL_POINT_DEFINITION_TYPE_GUID = "a376a993-5f1c-4926-b74e-a15a38e1d55ad"; + public static final String CONTROL_POINT_DEFINITION_TYPE_NAME = "ControlPointDefinition"; + /* ExecutionPointDefinition */ + + public static final String VERIFICATION_POINT_DEFINITION_TYPE_GUID = "27db26a1-ff66-4042-9932-ddc728b977b9"; + public static final String VERIFICATION_POINT_DEFINITION_TYPE_NAME = "VerificationPointDefinition"; + /* ExecutionPointDefinition */ + + public static final String ENFORCEMENT_POINT_DEFINITION_TYPE_GUID = "e87ff806-bb9c-4c5d-8106-f38f2dd21037"; + public static final String ENFORCEMENT_POINT_DEFINITION_TYPE_NAME = "EnforcementPointDefinition"; + /* ExecutionPointDefinition */ + + public static final String CONTROL_POINT_CLASSIFICATION_TYPE_GUID = "acf8b73e-3545-435d-ba16-fbfae060dd28"; + public static final String CONTROL_POINT_CLASSIFICATION_TYPE_NAME = "ControlPoint"; + /* Referenceable */ + + public static final String VERIFICATION_POINT_CLASSIFICATION_TYPE_GUID = "12d78c95-3879-466d-883f-b71f6477a741"; + public static final String VERIFICATION_POINT_CLASSIFICATION_TYPE_NAME = "VerificationPoint"; + /* Referenceable */ + + public static final String ENFORCEMENT_POINT_CLASSIFICATION_TYPE_GUID = "f4ce104e-7430-4c30-863d-60f6af6394d9"; + public static final String ENFORCEMENT_POINT_CLASSIFICATION_TYPE_NAME = "EnforcementPoint"; + /* Referenceable */ + + public static final String EXECUTION_POINT_USE_TYPE_GUID = "3eb268f4-9419-4281-a487-d25ccd88eba3"; + public static final String EXECUTION_POINT_USE_TYPE_NAME = "ExecutionPointUse"; + /* End1 = GovernanceDefinition; End 2 = ExecutionPointDefinition */ + + public static final String POLICY_ADMINISTRATION_POINT_CLASSIFICATION_TYPE_GUID = "4f13baa3-31b3-4a85-985e-2abc784900b8"; + public static final String POLICY_ADMINISTRATION_POINT_CLASSIFICATION_TYPE_NAME = "PolicyAdministrationPoint"; + /* Referenceable */ + + public static final String POLICY_DECISION_POINT_CLASSIFICATION_TYPE_GUID = "12d78c95-3879-466d-883f-b71f6477a741"; + public static final String POLICY_DECISION_POINT_CLASSIFICATION_TYPE_NAME = "PolicyDecisionPoint"; + /* Referenceable */ + + public static final String POLICY_ENFORCEMENT_POINT_CLASSIFICATION_TYPE_GUID = "9a68b20b-3f84-4d7d-bc9e-790c4b27e685"; + public static final String POLICY_ENFORCEMENT_POINT_CLASSIFICATION_TYPE_NAME = "PolicyEnforcementPoint"; + /* Referenceable */ + + public static final String POLICY_INFORMATION_POINT_CLASSIFICATION_TYPE_GUID = "2058ab6f-ddbf-45f9-9136-47354544e282"; + public static final String POLICY_INFORMATION_POINT_CLASSIFICATION_TYPE_NAME = "PolicyInformationPoint"; + /* Referenceable */ + + public static final String POLICY_RETRIEVAL_POINT_CLASSIFICATION_TYPE_GUID = "d7367412-7ba6-409f-84db-42b51e859367"; + public static final String POLICY_RETRIEVAL_POINT_CLASSIFICATION_TYPE_NAME = "PolicyRetrievalPoint"; + /* Referenceable */ + + + public static final String POINT_TYPE_PROPERTY_NAME = "pointType"; /* from Area 4 */ + + + public static final String GOVERNANCE_ENGINE_TYPE_GUID = "3fa23d4a-aceb-422f-9301-04ed474c6f74"; + public static final String GOVERNANCE_ENGINE_TYPE_NAME = "GovernanceEngine"; + /* SoftwareServerCapability */ + + public static final String GOVERNANCE_SERVICE_TYPE_GUID = "191d870c-26f4-4310-a021-b8ca8772719d"; + public static final String GOVERNANCE_SERVICE_TYPE_NAME = "GovernanceService"; + /* DeployedConnector */ + + public static final String GOVERNANCE_ACTION_ENGINE_TYPE_GUID = "5d74250a-57ca-4197-9475-8911f620a94e"; + public static final String GOVERNANCE_ACTION_ENGINE_TYPE_NAME = "GovernanceActionEngine"; + /* GovernanceEngine */ + + public static final String GOVERNANCE_ACTION_SERVICE_TYPE_GUID = "ececb378-31ac-4cc3-99b4-1c44e5fbc4d9"; + public static final String GOVERNANCE_ACTION_SERVICE_TYPE_NAME = "GeneralGovernanceActionService"; + /* DeployedConnector */ + + public static final String SUPPORTED_GOVERNANCE_SERVICE_TYPE_GUID = "2726df0e-4f3a-44e1-8433-4ca5301457fd"; + public static final String SUPPORTED_GOVERNANCE_SERVICE_TYPE_NAME = "SupportedGovernanceService"; + /* End1 = GovernanceEngine; End 2 = GovernanceService */ + + public static final String REQUEST_TYPE_PROPERTY_NAME = "requestType"; /* from SupportedGovernanceService relationship */ + public static final String SERVICE_REQUEST_TYPE_PROPERTY_NAME = "serviceRequestType"; /* from SupportedGovernanceService relationship */ + public static final String REQUEST_PARAMETERS_PROPERTY_NAME = "requestParameters"; /* from SupportedGovernanceService relationship */ + + public static final String GOVERNANCE_ACTION_PROCESS_TYPE_GUID = "4d3a2b8d-9e2e-4832-b338-21c74e45b238"; + public static final String GOVERNANCE_ACTION_PROCESS_TYPE_NAME = "GovernanceActionProcess"; + /* Process */ + + public static final String GOVERNANCE_ACTION_TYPE_TYPE_GUID = "92e20083-0393-40c0-a95b-090724a91ddc"; + public static final String GOVERNANCE_ACTION_TYPE_TYPE_NAME = "GovernanceActionType"; + /* Reference */ + + public static final String PRODUCED_GUARDS_PROPERTY_NAME = "producedGuards"; /* from GovernanceActionType entity */ + + public static final String GOVERNANCE_ACTION_FLOW_TYPE_GUID = "5f6ddee5-31ea-4d4f-9c3f-00ad2fcb2aa0"; + public static final String GOVERNANCE_ACTION_FLOW_TYPE_NAME = "GovernanceActionFlow"; + /* End1 = GovernanceActionProcess; End 2 = GovernanceActionType */ + + public static final String GOVERNANCE_ACTION_TYPE_EXECUTOR_TYPE_GUID = "f672245f-35b5-4ca7-b645-014cf61d5b75"; + public static final String GOVERNANCE_ACTION_TYPE_EXECUTOR_TYPE_NAME = "GovernanceActionTypeExecutor"; + /* End1 = GovernanceActionType; End 2 = GovernanceEngine */ + + public static final String NEXT_GOVERNANCE_ACTION_TYPE_TYPE_GUID = "d9567840-9904-43a5-990b-4585c0446e00"; + public static final String NEXT_GOVERNANCE_ACTION_TYPE_TYPE_NAME = "NextGovernanceActionType"; + /* End1 = GovernanceActionType; End 2 = GovernanceActionType */ + + public static final String GUARD_PROPERTY_NAME = "guard"; /* from NextGovernanceActionType relationship */ + public static final String MANDATORY_GUARD_PROPERTY_NAME = "mandatoryGuard"; /* from NextGovernanceActionType relationship */ + public static final String IGNORE_MULTIPLE_TRIGGERS_PROPERTY_NAME = "ignoreMultipleTriggers"; /* from NextGovernanceActionType relationship */ + public static final String WAIT_TIME_PROPERTY_NAME = "waitTime"; /* from NextGovernanceActionType relationship */ + + public static final String GOVERNANCE_ACTION_STATUS_ENUM_TYPE_GUID = "a6e698b0-a4f7-4a39-8c80-db0bb0f972ec"; + public static final String GOVERNANCE_ACTION_STATUS_ENUM_TYPE_NAME = "GovernanceActionStatus"; + public static final int REQUESTED_GA_STATUS_ORDINAL = 0; + public static final int APPROVED_GA_STATUS_ORDINAL = 1; + public static final int WAITING_GA_STATUS_ORDINAL = 2; + public static final int IN_PROGRESS_GA_STATUS_ORDINAL = 4; + public static final int ACTIONED_GA_STATUS_ORDINAL = 10; + public static final int INVALID_GA_STATUS_ORDINAL = 11; + public static final int IGNORED_GA_STATUS_ORDINAL = 12; + public static final int FAILED_GA_STATUS_ORDINAL = 13; + public static final int OTHER_GA_STATUS_ORDINAL = 99; + + public static final String GOVERNANCE_ACTION_TYPE_GUID = "c976d88a-2b11-4b40-b972-c38d41bfc6be"; + public static final String GOVERNANCE_ACTION_TYPE_NAME = "GovernanceAction"; + /* Reference */ + + public static final String EXECUTOR_ENGINE_GUID_PROPERTY_NAME = "executorEngineGUID"; /* from GovernanceAction entity */ + public static final String EXECUTOR_ENGINE_NAME_PROPERTY_NAME = "executorEngineName"; /* from GovernanceAction entity */ + public static final String PROCESS_NAME_PROPERTY_NAME = "processName"; /* from GovernanceAction entity */ + public static final String GOVERNANCE_ACTION_TYPE_GUID_PROPERTY_NAME = "governanceActionTypeGUID"; /* from GovernanceAction entity */ + public static final String GOVERNANCE_ACTION_TYPE_NAME_PROPERTY_NAME = "governanceActionTypeName"; /* from GovernanceAction entity */ + public static final String MANDATORY_GUARDS_PROPERTY_NAME = "mandatoryGuards"; /* from GovernanceAction entity */ + public static final String RECEIVED_GUARDS_PROPERTY_NAME = "receivedGuards"; /* from GovernanceAction entity */ + public static final String START_DATE_PROPERTY_NAME = "startDate"; /* from GovernanceAction and Project entity and RegisteredIntegrationConnector relationship*/ + public static final String PLANNED_END_DATE_PROPERTY_NAME = "plannedEndDate"; /* from Project entity */ + public static final String ACTION_STATUS_PROPERTY_NAME = "actionStatus"; /* from GovernanceAction entity */ + public static final String PROCESSING_ENGINE_USER_ID_PROPERTY_NAME = "processingEngineUserId"; /* from GovernanceAction entity */ + public static final String COMPLETION_DATE_PROPERTY_NAME = "completionDate"; /* from GovernanceAction entity */ + public static final String COMPLETION_GUARDS_PROPERTY_NAME = "completionGuards"; /* from GovernanceAction entity */ + public static final String COMPLETION_MESSAGE_PROPERTY_NAME = "completionMessage"; /* from GovernanceAction entity and TargetForAction relationship*/ + + public static final String ORIGIN_GOVERNANCE_SERVICE_PROPERTY_NAME = "originGovernanceService"; /* from GovernanceActionTypeUse relationship */ + public static final String ORIGIN_GOVERNANCE_ENGINE_PROPERTY_NAME = "originGovernanceEngine"; /* from GovernanceActionTypeUse relationship */ + + public static final String GOVERNANCE_ACTION_REQUEST_SOURCE_TYPE_GUID = "5323a705-4c1f-456a-9741-41fdcb8e93ac"; + public static final String GOVERNANCE_ACTION_REQUEST_SOURCE_TYPE_NAME = "GovernanceActionRequestSource"; + /* End1 = OpenMetadataRoot; End 2 = GovernanceAction */ + + public static final String REQUEST_SOURCE_NAME_PROPERTY_NAME = "requestSourceName"; /* from GovernanceActionRequestSource relationship */ + + public static final String TARGET_FOR_ACTION_TYPE_GUID = "46ec49bf-af66-4575-aab7-06ce895120cd"; + public static final String TARGET_FOR_ACTION_TYPE_NAME = "TargetForAction"; + /* End1 = GovernanceAction; End 2 = Referenceable */ + + public static final String ACTION_TARGET_NAME_PROPERTY_NAME = "actionTargetName"; /* from TargetForAction relationship */ + + public static final String NEXT_GOVERNANCE_ACTION_TYPE_GUID = "4efd16d4-f397-449c-a75d-ebea42fe581b"; + public static final String NEXT_GOVERNANCE_ACTION_TYPE_NAME = "NextGovernanceAction"; + /* End1 = GovernanceAction; End 2 = GovernanceAction */ + + public static final String GOVERNANCE_ACTION_EXECUTOR_TYPE_GUID = "e690ab17-6779-46b4-a8f1-6872d88c1bbb"; + public static final String GOVERNANCE_ACTION_EXECUTOR_TYPE_NAME = "GovernanceActionExecutor"; + /* End1 = GovernanceAction; End 2 = GovernanceEngine */ + + + public static final String INTEGRATION_GROUP_TYPE_GUID = "4d7c43ec-983b-40e4-af78-6fb66c4f5136"; + public static final String INTEGRATION_GROUP_TYPE_NAME = "IntegrationGroup"; + + public static final String INTEGRATION_CONNECTOR_TYPE_GUID = "759da11b-ebb6-4382-bdc9-72adc7c922db"; + public static final String INTEGRATION_CONNECTOR_TYPE_NAME = "IntegrationConnector"; + + public static final String USES_BLOCKING_CALLS_PROPERTY_NAME = "usesBlockingCalls"; /* from IntegrationConnector entity */ + + public static final String REGISTERED_INTEGRATION_CONNECTOR_TYPE_GUID = "7528bcd4-ae4c-47d0-a33f-4aeebbaa92c2"; + public static final String REGISTERED_INTEGRATION_CONNECTOR_TYPE_NAME = "RegisteredIntegrationConnector"; + /* End1 = IntegrationGroup; End 2 = IntegrationConnector */ + + public static final String CONNECTOR_NAME_PROPERTY_NAME = "connectorName"; /* from RegisteredIntegrationConnector relationship */ + public static final String CONNECTOR_USER_ID_PROPERTY_NAME = "connectorUserId";/* from RegisteredIntegrationConnector relationship */ + public static final String METADATA_SOURCE_QUALIFIED_NAME_PROPERTY_NAME = "metadataSourceQualifiedName"; /* from RegisteredIntegrationConnector relationship */ + public static final String STOP_DATE_PROPERTY_NAME = "stopDate"; /* from RegisteredIntegrationConnector relationship */ + public static final String REFRESH_TIME_INTERVAL_PROPERTY_NAME = "refreshTimeInterval"; /* from RegisteredIntegrationConnector relationship */ + public static final String GENERATE_INTEGRATION_REPORT_PROPERTY_NAME = "generateIntegrationReport"; /* from RegisteredIntegrationConnector relationship */ + + public static final String CATALOG_TARGET_RELATIONSHIP_TYPE_GUID = "bc5a5eb1-881b-4055-aa2c-78f314282ac2"; + public static final String CATALOG_TARGET_RELATIONSHIP_TYPE_NAME = "CatalogTarget"; + /* End1 = IntegrationConnector; End 2 = OpenMetadataRoot */ + + public static final String CATALOG_TARGET_NAME_PROPERTY_NAME = "catalogTargetName"; /* from CatalogTarget relationship */ + + public static final String INTEGRATION_REPORT_TYPE_GUID = "b8703d3f-8668-4e6a-bf26-27db1607220d"; + public static final String INTEGRATION_REPORT_TYPE_NAME = "IntegrationReport"; + + public static final String SERVER_NAME_PROPERTY_NAME = "serverName"; /* from IntegrationReport entity */ + public static final String CONNECTOR_ID_PROPERTY_NAME = "connectorId"; /* from IntegrationReport entity */ + public static final String REFRESH_START_DATE_PROPERTY_NAME = "refreshStartDate"; /* from IntegrationReport entity */ + public static final String REFRESH_COMPLETION_DATE_PROPERTY_NAME = "refreshCompletionDate"; /* from IntegrationReport entity */ + public static final String CREATED_ELEMENTS_PROPERTY_NAME = "createdElements"; /* from IntegrationReport entity */ + public static final String UPDATED_ELEMENTS_PROPERTY_NAME = "updatedElements"; /* from IntegrationReport entity */ + public static final String DELETED_ELEMENTS_PROPERTY_NAME = "deletedElements"; /* from IntegrationReport entity */ + + public static final String RELATED_INTEGRATION_REPORT_TYPE_GUID = "83d12156-f8f3-4b4b-b31b-18c140df9aa3"; + public static final String RELATED_INTEGRATION_REPORT_TYPE_NAME = "RelatedIntegrationReport"; + /* End1 = OpenMetadataRoot; End 2 = IntegrationReport */ + + public static final String KNOWN_DUPLICATE_CLASSIFICATION_TYPE_GUID = "e55062b2-907f-44bd-9831-255642285731"; + public static final String KNOWN_DUPLICATE_CLASSIFICATION_TYPE_NAME = "KnownDuplicate"; + /* Referenceable */ + + public static final String PEER_DUPLICATE_LINK_TYPE_GUID = "a94b2929-9e62-4b12-98ab-8ac45691e5bd"; + public static final String PEER_DUPLICATE_LINK_TYPE_NAME = "PeerDuplicateLink"; + /* End1 = Referenceable (Oldest); End 2 = Referenceable (Newest) */ + + public static final String CONSOLIDATED_DUPLICATE_TYPE_GUID = "e40e80d7-5a29-482c-9a88-0dc7251f08de"; + public static final String CONSOLIDATED_DUPLICATE_TYPE_NAME = "ConsolidatedDuplicate"; + + public static final String CONSOLIDATED_DUPLICATE_LINK_TYPE_GUID = "a1fabffd-d6ec-4b2d-bfe4-646f27c07c82"; + public static final String CONSOLIDATED_DUPLICATE_LINK_TYPE_NAME = "ConsolidatedDuplicateLink"; + /* End1 = Referenceable (Detected Duplicate); End 2 = Referenceable (Result) */ + + public static final String INCIDENT_REPORT_STATUS_ENUM_TYPE_GUID = "a9d4f64b-fa24-4eb8-8bf6-308926ef2c14"; + public static final String INCIDENT_REPORT_STATUS_ENUM_TYPE_NAME = "IncidentReportStatus"; + public static final int RAISED_INCIDENT_ORDINAL = 0; + public static final int REVIEWED_INCIDENT_ORDINAL = 1; + public static final int VALIDATED_INCIDENT_ORDINAL = 2; + public static final int RESOLVED_INCIDENT_ORDINAL = 3; + public static final int INVALID_INCIDENT_ORDINAL = 4; + public static final int IGNORED_INCIDENT_ORDINAL = 5; + public static final int OTHER_INCIDENT_ORDINAL = 99; + + public static final String INCIDENT_CLASSIFIER_TYPE_GUID = "361158c0-ade1-4c92-a6a7-64f7ac39b87d"; + public static final String INCIDENT_CLASSIFIER_TYPE_NAME = "IncidentClassifier"; + /* Referenceable */ + + public static final String INCIDENT_CLASSIFIER_SET_TYPE_GUID = "361158c0-ade1-4c92-a6a7-64f7ac39b87d"; + public static final String INCIDENT_CLASSIFIER_SET_TYPE_NAME = "IncidentClassifierSet"; + /* Collection */ + + public static final String CLASSIFIER_LABEL_PROPERTY_NAME = "classifierLabel"; /* from IncidentClassifier entity */ + public static final String CLASSIFIER_IDENTIFIER_PROPERTY_NAME = "classifierIdentifier"; /* from IncidentClassifier entity */ + public static final String CLASSIFIER_NAME_PROPERTY_NAME = "classifierName"; /* from IncidentClassifier entity */ + public static final String CLASSIFIER_DESCRIPTION_PROPERTY_NAME = "classifierDescription"; /* from IncidentClassifier entity */ + + + public static final String INCIDENT_REPORT_TYPE_GUID = "072f252b-dea7-4b88-bb2e-8f741c9ca7f6e"; + public static final String INCIDENT_REPORT_TYPE_NAME = "IncidentReport"; + /* Referenceable */ + + public static final String BACKGROUND_PROPERTY_NAME = "background"; /* from IncidentReport entity */ + public static final String INCIDENT_STATUS_PROPERTY_NAME = "incidentStatus"; /* from IncidentReport entity */ + + public static final String INCIDENT_ORIGINATOR_TYPE_GUID = "e490772e-c2c5-445a-aea6-1aab3499a76c"; + public static final String INCIDENT_ORIGINATOR_TYPE_NAME = "IncidentOriginator"; + /* End1 = Referenceable; End 2 = IncidentReport */ + + public static final String IMPACTED_RESOURCE_TYPE_GUID = "0908e153-e0fd-499c-8a30-5ea8b81395cd"; + public static final String IMPACTED_RESOURCE_TYPE_NAME = "ImpactedResource"; + /* End1 = Referenceable; End 2 = IncidentReport */ + + public static final String SEVERITY_LEVEL_IDENTIFIER_PROPERTY_NAME = "severityLevelIdentifier"; /* from Certification relationship */ + + public static final String INCIDENT_DEPENDENCY_TYPE_GUID = "017be6a8-0037-49d8-af5d-c45c41f25e0b"; + public static final String INCIDENT_DEPENDENCY_TYPE_NAME = "IncidentDependency"; + /* End1 = IncidentReport; End 2 = IncidentReport */ + + public static final String CERTIFICATION_TYPE_TYPE_GUID = "97f9ffc9-e2f7-4557-ac12-925257345eea"; + public static final String CERTIFICATION_TYPE_TYPE_NAME = "CertificationType"; + /* GovernanceDefinition */ + + public static final String DETAILS_PROPERTY_NAME = "details"; /* from CertificationType/LicenseType entity */ + + public static final String CERTIFICATION_OF_REFERENCEABLE_TYPE_GUID = "390559eb-6a0c-4dd7-bc95-b9074caffa7f"; + public static final String CERTIFICATION_OF_REFERENCEABLE_TYPE_NAME = "Certification"; + /* End1 = Referenceable; End 2 = CertificationType */ + + public static final String CERTIFICATE_GUID_PROPERTY_NAME = "certificateGUID"; /* from Certification relationship */ + public static final String START_PROPERTY_NAME = "start"; /* from Certification relationship */ + public static final String END_PROPERTY_NAME = "end"; /* from Certification relationship */ + public static final String CONDITIONS_PROPERTY_NAME = "conditions"; /* from Certification relationship */ + public static final String CERTIFIED_BY_PROPERTY_NAME = "certifiedBy"; /* from Certification relationship */ + public static final String CERTIFIED_BY_TYPE_NAME_PROPERTY_NAME = "certifiedByTypeName"; /* from Certification relationship */ + public static final String CERTIFIED_BY_PROPERTY_NAME_PROPERTY_NAME = "certifiedByPropertyName"; /* from Certification relationship */ + public static final String CUSTODIAN_PROPERTY_NAME = "custodian"; /* from Certification and License relationship */ + public static final String CUSTODIAN_TYPE_NAME_PROPERTY_NAME = "custodianTypeName"; /* from Certification and License relationship */ + public static final String CUSTODIAN_PROPERTY_NAME_PROPERTY_NAME = "custodianPropertyName"; /* from Certification and License relationship */ + public static final String RECIPIENT_PROPERTY_NAME = "recipient"; /* from Certification relationship */ + public static final String RECIPIENT_TYPE_NAME_PROPERTY_NAME = "recipientTypeName"; /* from Certification relationship */ + public static final String RECIPIENT_PROPERTY_NAME_PROPERTY_NAME = "recipientPropertyName"; /* from Certification relationship */ + + public static final String REFERENCEABLE_TO_LICENSE_TYPE_GUID = "35e53b7f-2312-4d66-ae90-2d4cb47901ee"; + public static final String REFERENCEABLE_TO_LICENSE_TYPE_NAME = "License"; + /* End1 = Referenceable; End 2 = LicenseType */ + + public static final String LICENSE_TYPE_TYPE_GUID = "046a049d-5f80-4e5b-b0ae-f3cf6009b513"; + public static final String LICENSE_TYPE_TYPE_NAME = "LicenseType"; + /* GovernanceDefinition */ + + public static final String LICENSE_OF_REFERENCEABLE_TYPE_GUID = "35e53b7f-2312-4d66-ae90-2d4cb47901ee"; + public static final String LICENSE_OF_REFERENCEABLE_TYPE_NAME = "License"; + /* End1 = Referenceable; End 2 = LicenseType */ + + public static final String LICENSE_GUID_PROPERTY_NAME = "licenseGUID"; /* from License relationship */ + public static final String LICENSED_BY_PROPERTY_NAME = "licensedBy"; /* from License relationship */ + public static final String LICENSED_BY_TYPE_NAME_PROPERTY_NAME = "licensedByTypeName"; /* from License relationship */ + public static final String LICENSED_BY_PROPERTY_NAME_PROPERTY_NAME = "licensedByPropertyName"; /* from License relationship */ + public static final String LICENSEE_PROPERTY_NAME = "licensee"; /* from License relationship */ + public static final String LICENSEE_TYPE_NAME_PROPERTY_NAME = "licenseeTypeName"; /* from License relationship */ + public static final String LICENSEE_PROPERTY_NAME_PROPERTY_NAME = "licenseePropertyName"; /* from License relationship */ + + + /* ============================================================================================================================*/ + /* Area 5 - Schemas and Models */ + /* ============================================================================================================================*/ + + public static final String ASSET_TO_SCHEMA_TYPE_TYPE_GUID = "815b004d-73c6-4728-9dd9-536f4fe803cd"; /* from Area 5 */ + public static final String ASSET_TO_SCHEMA_TYPE_TYPE_NAME = "AssetSchemaType"; + /* End1 = Asset; End 2 = SchemaType */ + + public static final String SCHEMA_ELEMENT_TYPE_GUID = "718d4244-8559-49ed-ad5a-10e5c305a656"; /* from Area 5 */ + public static final String SCHEMA_ELEMENT_TYPE_NAME = "SchemaElement"; + /* Referenceable */ + + public static final String SCHEMA_DISPLAY_NAME_PROPERTY_NAME = "displayName"; /* from SchemaElement entity */ + public static final String SCHEMA_DESCRIPTION_PROPERTY_NAME = "description"; /* from SchemaElement entity */ + public static final String IS_DEPRECATED_PROPERTY_NAME = "isDeprecated"; /* from SchemaElement and ValidValueDefinition entity */ + + /* For Schema Type */ + public static final String SCHEMA_TYPE_TYPE_GUID = "5bd4a3e7-d22d-4a3d-a115-066ee8e0754f"; /* from Area 5 */ + public static final String SCHEMA_TYPE_TYPE_NAME = "SchemaType"; + /* SchemaElement */ + + public static final String VERSION_NUMBER_PROPERTY_NAME = "versionNumber"; /* from SchemaType entity */ + public static final String AUTHOR_PROPERTY_NAME = "author"; /* from SchemaType entity */ + public static final String SCHEMA_USAGE_PROPERTY_NAME = "usage"; /* from SchemaType entity */ + public static final String ENCODING_STANDARD_PROPERTY_NAME = "encodingStandard"; /* from SchemaType entity */ + public static final String NAMESPACE_PROPERTY_NAME = "namespace"; /* from SchemaType entity */ + + /* For Complex Schema Type */ + public static final String COMPLEX_SCHEMA_TYPE_TYPE_GUID = "786a6199-0ce8-47bf-b006-9ace1c5510e4"; /* from Area 5 */ + public static final String COMPLEX_SCHEMA_TYPE_TYPE_NAME = "ComplexSchemaType"; + /* SchemaType */ + + public static final String STRUCT_SCHEMA_TYPE_TYPE_GUID = "a13b409f-fd67-4506-8d94-14dfafd250a4"; /* from Area 5 */ + public static final String STRUCT_SCHEMA_TYPE_TYPE_NAME = "StructSchemaType"; + /* ComplexSchemaType */ + + public static final String TYPE_TO_ATTRIBUTE_RELATIONSHIP_TYPE_GUID = "86b176a2-015c-44a6-8106-54d5d69ba661"; /* from Area 5 */ + public static final String TYPE_TO_ATTRIBUTE_RELATIONSHIP_TYPE_NAME = "AttributeForSchema"; + /* End1 = ComplexSchemaType; End 2 = SchemaAttribute */ + + /* For Literal Schema Type */ + public static final String LITERAL_SCHEMA_TYPE_TYPE_GUID = "520ebb91-c4eb-4d46-a3b1-974875cdcf0d"; /* from Area 5 */ + public static final String LITERAL_SCHEMA_TYPE_TYPE_NAME = "LiteralSchemaType"; + /* SchemaType */ + + /* For External Schema Type */ + public static final String EXTERNAL_SCHEMA_TYPE_TYPE_GUID = "78de00ea-3d69-47ff-a6d6-767587526624"; /* from Area 5 */ + public static final String EXTERNAL_SCHEMA_TYPE_TYPE_NAME = "ExternalSchemaType"; + /* SchemaType */ + + public static final String LINKED_EXTERNAL_SCHEMA_TYPE_RELATIONSHIP_TYPE_GUID = "9a5d78c2-1716-4783-bfc6-c300a9e2d092"; /* from Area 5 */ + public static final String LINKED_EXTERNAL_SCHEMA_TYPE_RELATIONSHIP_TYPE_NAME = "LinkedExternalSchemaType"; + /* End1 = SchemaElement; End 2 = SchemaType */ + + /* For Schema Type Choice */ + public static final String SCHEMA_TYPE_CHOICE_TYPE_GUID = "5caf954a-3e33-4cbd-b17d-8b8613bd2db8"; /* from Area 5 */ + public static final String SCHEMA_TYPE_CHOICE_TYPE_NAME = "SchemaTypeChoice"; + /* SchemaType */ + + public static final String SCHEMA_TYPE_OPTION_RELATIONSHIP_TYPE_GUID = "eb4f1f98-c649-4560-8a46-da17c02764a9"; /* from Area 5 */ + public static final String SCHEMA_TYPE_OPTION_RELATIONSHIP_TYPE_NAME = "SchemaTypeOption"; + /* End1 = SchemaTypeChoice; End 2 = SchemaType */ + + /* For Schema Type Choice */ + public static final String SIMPLE_SCHEMA_TYPE_TYPE_GUID = "b5ec6e07-6419-4225-9dc4-fb55aba255c6"; /* from Area 5 */ + public static final String SIMPLE_SCHEMA_TYPE_TYPE_NAME = "SimpleSchemaType"; + /* SchemaType */ + + /* For Primitive Schema Type */ + public static final String PRIMITIVE_SCHEMA_TYPE_TYPE_GUID = "f0f75fba-9136-4082-8352-0ad74f3c36ed"; /* from Area 5 */ + public static final String PRIMITIVE_SCHEMA_TYPE_TYPE_NAME = "PrimitiveSchemaType"; + /* SimpleSchemaType */ + + /* For Enum Schema Type */ + public static final String ENUM_SCHEMA_TYPE_TYPE_GUID = "24b092ac-42e9-43dc-aeca-eb034ce307d9"; /* from Area 5 */ + public static final String ENUM_SCHEMA_TYPE_TYPE_NAME = "EnumSchemaType"; + /* SimpleSchemaType */ + + public static final String DATA_TYPE_PROPERTY_NAME = "dataType"; /* from SimpleSchemaType and LiteralSchemaType entity */ + public static final String FIXED_VALUE_PROPERTY_NAME = "fixedValue"; /* from LiteralSchemaType entity */ + + /* For Map Schema Type */ + public static final String MAP_SCHEMA_TYPE_TYPE_GUID = "bd4c85d0-d471-4cd2-a193-33b0387a19fd"; /* from Area 5 */ + public static final String MAP_SCHEMA_TYPE_TYPE_NAME = "MapSchemaType"; + /* SchemaType */ + + public static final String MAP_TO_RELATIONSHIP_TYPE_GUID = "8b9856b3-451e-45fc-afc7-fddefd81a73a"; /* from Area 5 */ + public static final String MAP_TO_RELATIONSHIP_TYPE_NAME = "MapToElementType"; + /* End1 = MapSchemaType; End 2 = SchemaType */ + + public static final String MAP_FROM_RELATIONSHIP_TYPE_GUID = "6189d444-2da4-4cd7-9332-e48a1c340b44"; /* from Area 5 */ + public static final String MAP_FROM_RELATIONSHIP_TYPE_NAME = "MapFromElementType"; + /* End1 = MapSchemaType; End 2 = SchemaType */ + + /* For Bounded Schema Type (Deprecated) */ + public static final String BOUNDED_SCHEMA_TYPE_TYPE_GUID = "77133161-37a9-43f5-aaa3-fd6d7ff92fdb"; /* from Area 5 */ + public static final String BOUNDED_SCHEMA_TYPE_TYPE_NAME = "BoundedSchemaType"; + + public static final String MAX_ELEMENTS_PROPERTY_NAME = "maximumElements"; /* from BoundedSchemaType entity */ + + public static final String BOUNDED_ELEMENT_RELATIONSHIP_TYPE_GUID = "3e844049-e59b-45dd-8e62-cde1add59f9e"; /* from Area 5 */ + public static final String BOUNDED_ELEMENT_RELATIONSHIP_TYPE_NAME = "BoundedSchemaElementType"; + /* End1 = BoundedSchemaType; End 2 = SchemaType */ + + /* For Schema Attribute */ + public static final String SCHEMA_ATTRIBUTE_TYPE_GUID = "1a5e159b-913a-43b1-95fe-04433b25fca9"; /* from Area 5 */ + public static final String SCHEMA_ATTRIBUTE_TYPE_NAME = "SchemaAttribute"; + /* SchemaElement */ + + public static final String ELEMENT_POSITION_PROPERTY_NAME = "position"; /* from SchemaAttribute entity */ + public static final String CARDINALITY_PROPERTY_NAME = "cardinality"; /* from SchemaAttribute entity */ + public static final String MAX_CARDINALITY_PROPERTY_NAME = "maxCardinality"; /* from SchemaAttribute entity */ + public static final String MIN_CARDINALITY_PROPERTY_NAME = "minCardinality"; /* from SchemaAttribute entity */ + public static final String DEFAULT_VALUE_OVERRIDE_PROPERTY_NAME = "defaultValueOverride"; /* from SchemaAttribute entity */ + public static final String ALLOWS_DUPLICATES_PROPERTY_NAME = "allowsDuplicateValues"; /* from SchemaAttribute entity */ + public static final String ORDERED_VALUES_PROPERTY_NAME = "orderedValues"; /* from SchemaAttribute entity */ + public static final String NATIVE_CLASS_PROPERTY_NAME = "nativeClass"; /* from SchemaAttribute entity */ + public static final String ALIASES_PROPERTY_NAME = "aliases"; /* from SchemaAttribute entity */ + public static final String SORT_ORDER_PROPERTY_NAME = "sortOrder"; /* from SchemaAttribute entity */ + public static final String MIN_LENGTH_PROPERTY_NAME = "minimumLength"; /* from SchemaAttribute entity */ + public static final String LENGTH_PROPERTY_NAME = "length"; /* from SchemaAttribute entity */ + public static final String SIGNIFICANT_DIGITS_PROPERTY_NAME = "significantDigits"; /* from SchemaAttribute entity */ + public static final String PRECISION_PROPERTY_NAME = "precision"; /* from SchemaAttribute entity */ + public static final String IS_NULLABLE_PROPERTY_NAME = "isNullable"; /* from SchemaAttribute entity */ + + public static final String ATTRIBUTE_TO_TYPE_RELATIONSHIP_TYPE_GUID = "2d955049-e59b-45dd-8e62-cde1add59f9e"; /* from Area 5 */ + public static final String ATTRIBUTE_TO_TYPE_RELATIONSHIP_TYPE_NAME = "SchemaAttributeType"; + /* End1 = SchemaAttribute; End 2 = SchemaType */ + + public static final String DATA_ITEM_SORT_ORDER_TYPE_GUID = "aaa4df8f-1aca-4de8-9abd-1ef2aadba300"; /* from Area 5 */ + public static final String DATA_ITEM_SORT_ORDER_TYPE_NAME = "DataItemSortOrder"; + + public static final String NESTED_ATTRIBUTE_RELATIONSHIP_TYPE_GUID = "0ffb9d87-7074-45da-a9b0-ae0859611133"; /* from Area 5 */ + public static final String NESTED_ATTRIBUTE_RELATIONSHIP_TYPE_NAME = "NestedSchemaAttribute"; + /* End1 = SchemaAttribute; End 2 = SchemaAttribute */ + + public static final String TYPE_EMBEDDED_ATTRIBUTE_CLASSIFICATION_TYPE_GUID = "e2bb76bb-774a-43ff-9045-3a05f663d5d9"; /* from Area 5 */ + public static final String TYPE_EMBEDDED_ATTRIBUTE_CLASSIFICATION_TYPE_NAME = "TypeEmbeddedAttribute"; + /* Linked to SchemaAttribute */ + public static final String TYPE_NAME_PROPERTY_NAME = "schemaTypeName"; /* from TypeEmbeddedAttribute classification */ + + /* For Schema Link */ + public static final String SCHEMA_LINK_TYPE_GUID = "67e08705-2d2a-4df6-9239-1818161a41e0"; /* from Area 5 */ + public static final String SCHEMA_LINK_TYPE_NAME = "SchemaLinkElement"; + /* SchemaElement */ + + public static final String LINK_NAME_PROPERTY_NAME = "linkName"; /* from SchemaAttribute entity */ + public static final String LINK_PROPERTIES_PROPERTY_NAME = "linkProperties"; /* from SchemaAttribute entity */ + + public static final String LINK_TO_TYPE_RELATIONSHIP_TYPE_GUID = "292125f7-5660-4533-a48a-478c5611922e"; /* from Area 5 */ + public static final String LINK_TO_TYPE_RELATIONSHIP_TYPE_NAME = "LinkedType"; + /* End1 = SchemaLinkElement; End 2 = SchemaType */ + + public static final String ATTRIBUTE_TO_LINK_RELATIONSHIP_TYPE_GUID = "db9583c5-4690-41e5-a580-b4e30a0242d3"; /* from Area 5 */ + public static final String ATTRIBUTE_TO_LINK_RELATIONSHIP_TYPE_NAME = "SchemaLinkToType"; + /* End1 = SchemaAttribute; End 2 = SchemaLinkElement */ + + public static final String SCHEMA_QUERY_TARGET_RELATIONSHIP_TYPE_GUID = "1c2622b7-ac21-413c-89e1-6f61f348cd19"; /* from Area 5 */ + public static final String SCHEMA_QUERY_TARGET_RELATIONSHIP_TYPE_NAME = "DerivedSchemaTypeQueryTarget"; + /* End1 = SchemaElement; End 2 = SchemaElement (target) */ + + public static final String QUERY_ID_PROPERTY_NAME = "queryId"; /* from DerivedSchemaTypeQueryTarget relationship */ + public static final String QUERY_PROPERTY_NAME = "query"; /* from DerivedSchemaTypeQueryTarget relationship */ + + /* - Known Subtypes ------------------------------------------------------- */ + + public static final String ARRAY_SCHEMA_TYPE_TYPE_GUID = "ba8d29d2-a8a4-41f3-b29f-91ad924dd944"; /* from Area 5 */ + public static final String ARRAY_SCHEMA_TYPE_TYPE_NAME = "ArraySchemaType"; + /* BoundedSchemaType */ + + public static final String SET_SCHEMA_TYPE_TYPE_GUID = "b2605d2d-10cd-443c-b3e8-abf15fb051f0"; /* from Area 5 */ + public static final String SET_SCHEMA_TYPE_TYPE_NAME = "SetSchemaType"; + /* BoundedSchemaType */ + + public static final String PORT_SCHEMA_RELATIONSHIP_TYPE_GUID = "B216fA00-8281-F9CC-9911-Ae6377f2b457"; /* from Area 5 */ + public static final String PORT_SCHEMA_RELATIONSHIP_TYPE_NAME = "PortSchema"; + /* End1 = Port; End 2 = SchemaType */ + + public static final String TABULAR_SCHEMA_TYPE_TYPE_GUID = "248975ec-8019-4b8a-9caf-084c8b724233"; /* from Area 5 */ + public static final String TABULAR_SCHEMA_TYPE_TYPE_NAME = "TabularSchemaType"; + /* ComplexSchemaType */ + + public static final String TABULAR_COLUMN_TYPE_GUID = "d81a0425-4e9b-4f31-bc1c-e18c3566da10"; /* from Area 5 */ + public static final String TABULAR_COLUMN_TYPE_NAME = "TabularColumn"; + /* PrimitiveSchemaType */ + + public static final String TABULAR_FILE_COLUMN_TYPE_GUID = "af6265e7-5f58-4a9c-9ae7-8d4284be62bd"; /* from Area 5 */ + public static final String TABULAR_FILE_COLUMN_TYPE_NAME = "TabularFileColumn"; + /* TabularColumn */ + + public static final String DOCUMENT_SCHEMA_TYPE_TYPE_GUID = "33da99cd-8d04-490c-9457-c58908da7794"; /* from Area 5 */ + public static final String DOCUMENT_SCHEMA_TYPE_TYPE_NAME = "DocumentSchemaType"; + /* ComplexSchemaType */ + + public static final String DOCUMENT_SCHEMA_ATTRIBUTE_TYPE_GUID = "b5cefb7e-b198-485f-a1d7-8e661012499b"; /* from Area 5 */ + public static final String DOCUMENT_SCHEMA_ATTRIBUTE_TYPE_NAME = "DocumentSchemaAttribute"; + /* SchemaAttribute */ + + public static final String SIMPLE_DOCUMENT_TYPE_TYPE_GUID = "42cfccbf-cc68-4980-8c31-0faf1ee002d3"; /* from Area 5 */ + public static final String SIMPLE_DOCUMENT_TYPE_TYPE_NAME = "SimpleDocumentType"; + /* PrimitiveSchemaType */ + + public static final String STRUCT_DOCUMENT_TYPE_TYPE_GUID = "f6245c25-8f73-45eb-8fb5-fa17a5f27649"; /* from Area 5 */ + public static final String STRUCT_DOCUMENT_TYPE_TYPE_NAME = "StructDocumentType"; + /* StructSchemaType */ + + public static final String MAP_DOCUMENT_TYPE_TYPE_GUID = "b0f09598-ceb6-415b-befc-563ecadd5727"; /* from Area 5 */ + public static final String MAP_DOCUMENT_TYPE_TYPE_NAME = "MapDocumentType"; + /* MapSchemaType */ + + public static final String OBJECT_SCHEMA_TYPE_TYPE_GUID = "6920fda1-7c07-47c7-84f1-9fb044ae153e"; /* from Area 5 */ + public static final String OBJECT_SCHEMA_TYPE_TYPE_NAME = "ObjectSchemaType"; + /* ComplexSchemaType */ + + public static final String OBJECT_SCHEMA_ATTRIBUTE_TYPE_GUID = "ccb408c0-582e-4a3a-a926-7082d53bb669"; /* from Area 5 */ + public static final String OBJECT_SCHEMA_ATTRIBUTE_TYPE_NAME = "ObjectSchemaAttribute"; + /* SchemaAttribute */ + + public static final String GRAPH_SCHEMA_TYPE_TYPE_GUID = "983c5e72-801b-4e42-bc51-f109527f2317"; /* from Area 5 */ + public static final String GRAPH_SCHEMA_TYPE_TYPE_NAME = "GraphSchemaType"; + /* ComplexSchemaType */ + + public static final String GRAPH_VERTEX_TYPE_GUID = "1252ce12-540c-4724-ad70-f70940956de0"; /* from Area 5 */ + public static final String GRAPH_VERTEX_TYPE_NAME = "GraphVertex"; + /* SchemaAttribute */ + + public static final String GRAPH_EDGE_TYPE_GUID = "d4104eb3-4f2d-4d83-aca7-e58dd8d5e0b1"; /* from Area 5 */ + public static final String GRAPH_EDGE_TYPE_NAME = "GraphEdge"; + /* SchemaAttribute */ + + /* For Graph Edge/Vertex */ + public static final String GRAPH_EDGE_LINK_RELATIONSHIP_TYPE_GUID = "503b4221-71c8-4ba9-8f3d-6a035b27971c"; /* from Area 5 */ + public static final String GRAPH_EDGE_LINK_RELATIONSHIP_TYPE_NAME = "GraphEdgeLink"; + /* End1 = GraphEdge; End 2 = GraphVertex */ + + public static final String RELATIONAL_DB_SCHEMA_TYPE_TYPE_GUID = "f20f5f45-1afb-41c1-9a09-34d8812626a4"; /* from Area 5 */ + public static final String RELATIONAL_DB_SCHEMA_TYPE_TYPE_NAME = "RelationalDBSchemaType"; + /* ComplexSchemaType */ + + public static final String RELATIONAL_TABLE_TYPE_TYPE_GUID = "1321bcc0-dc6a-48ed-9ca6-0c6f934b0b98"; /* from Area 5 */ + public static final String RELATIONAL_TABLE_TYPE_TYPE_NAME = "RelationalTableType"; + /* TabularSchemaType */ + + public static final String RELATIONAL_TABLE_TYPE_GUID = "ce7e72b8-396a-4013-8688-f9d973067425"; /* from Area 5 */ + public static final String RELATIONAL_TABLE_TYPE_NAME = "RelationalTable"; + /* SchemaAttribute */ + + public static final String CALCULATED_VALUE_CLASSIFICATION_TYPE_GUID = "4814bec8-482d-463d-8376-160b0358e139"; + public static final String CALCULATED_VALUE_CLASSIFICATION_TYPE_NAME = "CalculatedValue"; + /* Linked to SchemaType */ + + public static final String RELATIONAL_COLUMN_TYPE_GUID = "aa8d5470-6dbc-4648-9e2f-045e5df9d2f9"; /* from Area 5 */ + public static final String RELATIONAL_COLUMN_TYPE_NAME = "RelationalColumn"; + /* TabularColumn */ + + public static final String PRIMARY_KEY_CLASSIFICATION_TYPE_GUID = "b239d832-50bd-471b-b17a-15a335fc7f40"; + public static final String PRIMARY_KEY_CLASSIFICATION_TYPE_NAME = "PrimaryKey"; + /* Linked to RelationalColumn */ + public static final String PRIMARY_KEY_PATTERN_PROPERTY_NAME = "keyPattern"; /* from PrimaryKey classification */ + public static final String PRIMARY_KEY_NAME_PROPERTY_NAME = "name"; /* from PrimaryKey classification */ + + public static final String FOREIGN_KEY_RELATIONSHIP_TYPE_GUID = "3cd4e0e7-fdbf-47a6-ae88-d4b3205e0c07"; /* from Area 5 */ + public static final String FOREIGN_KEY_RELATIONSHIP_TYPE_NAME = "ForeignKey"; + /* End1 = RelationalColumn; End 2 = RelationalColumn */ + public static final String FOREIGN_KEY_NAME_PROPERTY_NAME = "name"; /* from ForeignKey relationship */ + public static final String FOREIGN_KEY_DESCRIPTION_PROPERTY_NAME = "description"; /* from ForeignKey relationship */ + public static final String FOREIGN_KEY_CONFIDENCE_PROPERTY_NAME = "confidence"; /* from ForeignKey relationship */ + public static final String FOREIGN_KEY_STEWARD_PROPERTY_NAME = "steward"; /* from ForeignKey relationship */ + public static final String FOREIGN_KEY_SOURCE_PROPERTY_NAME = "source"; /* from ForeignKey relationship */ + + /* For Event Types */ + public static final String EVENT_TYPE_LIST_TYPE_GUID = "77ccda3d-c4c6-464c-a424-4b2cb27ac06c"; /* from Area 5 */ + public static final String EVENT_TYPE_LIST_TYPE_NAME = "EventTypeList"; + /* ComplexSchemaType */ + + public static final String EVENT_TYPE_TYPE_GUID = "8bc88aba-d7e4-4334-957f-cfe8e8eadc32"; /* from Area 5 */ + public static final String EVENT_TYPE_TYPE_NAME = "EventType"; + /* ComplexSchemaType */ + + public static final String EVENT_SCHEMA_ATTRIBUTE_TYPE_GUID = "5be4ee8f-4d0c-45cd-a411-22a468950342"; /* from Area 5 */ + public static final String EVENT_SCHEMA_ATTRIBUTE_TYPE_NAME = "EventSchemaAttribute"; + /* SchemaAttribute */ + + public static final String EVENT_SET_TYPE_GUID = "bead9aa4-214a-4596-8036-aa78395bbfb1"; /* from Area 5 */ + public static final String EVENT_SET_TYPE_NAME = "EventSet"; + /* Collection */ + + /* For API Schema Type */ + public static final String API_SCHEMA_TYPE_TYPE_GUID = "b46cddb3-9864-4c5d-8a49-266b3fc95cb8"; /* from Area 5 */ + public static final String API_SCHEMA_TYPE_TYPE_NAME = "APISchemaType"; + /* SchemaType */ + public static final String API_OPERATION_TYPE_GUID = "f1c0af19-2729-4fac-996e-a7badff3c21c"; /* from Area 5 */ + public static final String API_OPERATION_TYPE_NAME = "APIOperation"; + /* SchemaType */ + public static final String API_PARAMETER_LIST_TYPE_GUID = "ba167b12-969f-49d3-8bea-d04228d9a44b"; /* from Area 5 */ + public static final String API_PARAMETER_LIST_TYPE_NAME = "APIParameterList"; + /* ComplexSchemaType */ + + public static final String ENCODING_PROPERTY_NAME = "encoding"; /* from APIParameter and APIParameterList entities */ + public static final String REQUIRED_PROPERTY_NAME = "required"; /* from APIParameterList entity */ + public static final String PARAMETER_TYPE_PROPERTY_NAME = "parameterType"; /* from APIParameter entity */ + + public static final String API_PARAMETER_TYPE_GUID = "10277b13-509c-480e-9829-bc16d0eafc53"; /* from Area 5 */ + public static final String API_PARAMETER_TYPE_NAME = "APIParameter"; + /* SchemaAttribute */ + + public static final String API_OPERATIONS_RELATIONSHIP_TYPE_GUID = "03737169-ceb5-45f0-84f0-21c5929945af"; /* from Area 5 */ + public static final String API_OPERATIONS_RELATIONSHIP_TYPE_NAME = "APIOperations"; + /* End1 = APISchemaType; End 2 = APIOperation */ + public static final String API_HEADER_RELATIONSHIP_TYPE_GUID = "e8fb46d1-5f75-481b-aa66-f43ad44e2cc6"; /* from Area 5 */ + public static final String API_HEADER_RELATIONSHIP_TYPE_NAME = "APIHeader"; + /* End1 = APIOperation; End 2 = SchemaType */ + public static final String API_REQUEST_RELATIONSHIP_TYPE_GUID = "4ab3b466-31bd-48ea-8aa2-75623476f2e2"; /* from Area 5 */ + public static final String API_REQUEST_RELATIONSHIP_TYPE_NAME = "APIRequest"; + /* End1 = APIOperation; End 2 = SchemaType */ + public static final String API_RESPONSE_RELATIONSHIP_TYPE_GUID = "e8001de2-1bb1-442b-a66f-9addc3641eae"; /* from Area 5 */ + public static final String API_RESPONSE_RELATIONSHIP_TYPE_NAME = "APIResponse"; + /* End1 = APIOperation; End 2 = SchemaType */ + + public static final String REFERENCEABLE_TO_REFERENCE_VALUE_TYPE_GUID = "111e6d2e-94e9-43ed-b4ed-f0d220668cbf"; + public static final String REFERENCEABLE_TO_REFERENCE_VALUE_TYPE_NAME = "ReferenceValueAssignment"; + /* End1 = Referenceable; End 2 = ValidValueDefinition */ + + public static final String DISPLAY_DATA_SCHEMA_TYPE_TYPE_GUID = "2f5796f5-3fac-4501-9d0d-207aa8620d16"; /* from Area 5 */ + public static final String DISPLAY_DATA_SCHEMA_TYPE_TYPE_NAME = "DisplayDataSchemaType"; + /* ComplexSchemaType */ + + public static final String DISPLAY_DATA_CONTAINER_TYPE_GUID = "f2a4ff99-1954-48c0-8081-92d1a4dfd910"; /* from Area 5 */ + public static final String DISPLAY_DATA_CONTAINER_TYPE_NAME = "DisplayDataContainer"; + /* SchemaAttribute */ + + public static final String DISPLAY_DATA_FIELD_TYPE_GUID = "46f9ea33-996e-4c62-a67d-803df75ef9d4"; /* from Area 5 */ + public static final String DISPLAY_DATA_FIELD_TYPE_NAME = "DisplayDataField"; + /* SchemaAttribute */ + + public static final String INPUT_FIELD_PROPERTY_NAME = "inputField"; /* from DisplayDataField entity */ + + public static final String QUERY_SCHEMA_TYPE_TYPE_GUID = "4d11bdbb-5d4a-488b-9f16-bf1e34d34dd9"; /* from Area 5 */ + public static final String QUERY_SCHEMA_TYPE_TYPE_NAME = "QuerySchemaType"; + /* ComplexSchemaType */ + + public static final String QUERY_DATA_CONTAINER_TYPE_GUID = "0eb92215-52b1-4fac-92e7-ff02ff385a68"; /* from Area 5 */ + public static final String QUERY_DATA_CONTAINER_TYPE_NAME = "QueryDataContainer"; + /* SchemaAttribute */ + + public static final String QUERY_DATA_FIELD_TYPE_GUID = "0eb92215-52b1-4fac-92e7-ff02ff385a68"; /* from Area 5 */ + public static final String QUERY_DATA_FIELD_TYPE_NAME = "QueryDataField"; + /* SchemaAttribute */ + + public static final String VALID_VALUE_DEFINITION_TYPE_GUID = "09b2133a-f045-42cc-bb00-ee602b74c618"; /* from Area 5 */ + public static final String VALID_VALUE_DEFINITION_TYPE_NAME = "ValidValueDefinition"; + /* Referenceable */ + + public static final String VALID_VALUE_DISPLAY_NAME_PROPERTY_NAME = "name"; /* from ValidValueDefinition entity */ + public static final String VALID_VALUE_DESCRIPTION_PROPERTY_NAME = "description"; /* from ValidValueDefinition entity */ + public static final String VALID_VALUE_SCOPE_PROPERTY_NAME = "scope"; /* from ValidValueDefinition entity */ + public static final String PREFERRED_VALUE_PROPERTY_NAME = "preferredValue"; /* from ValidValueDefinition entity */ + + public static final String VALID_VALUE_SET_TYPE_GUID = "7de10805-7c44-40e3-a410-ffc51306801b"; /* from Area 5 */ + public static final String VALID_VALUE_SET_TYPE_NAME = "ValidValuesSet"; + /* ValidValueDefinition */ + + public static final String REFERENCE_DATA_CLASSIFICATION_TYPE_GUID = "55e5ae33-39c6-4834-9d05-ef0ae4e0163b"; /* from Area 5 */ + public static final String REFERENCE_DATA_CLASSIFICATION_TYPE_NAME = "ReferenceData"; + /* Linked to Asset */ + + public static final String INSTANCE_METADATA_CLASSIFICATION_TYPE_GUID = "e6d5c097-a5e9-4bc4-a614-2506276059af"; /* from Area 5 */ + public static final String INSTANCE_METADATA_CLASSIFICATION_TYPE_NAME = "InstanceMetadata"; + /* Linked to SchemaElement */ + + public static final String INSTANCE_METADATA_TYPE_NAME_PROPERTY_NAME = "typeName"; /* from InstanceMetadata classification */ + + public static final String VALID_VALUES_ASSIGNMENT_RELATIONSHIP_TYPE_GUID = "c5d48b73-eadd-47db-ab64-3be99b2fb32d"; /* from Area 5 */ + public static final String VALID_VALUES_ASSIGNMENT_RELATIONSHIP_TYPE_NAME = "ValidValuesAssignment"; + /* End1 = Referenceable; End 2 = ValidValuesDefinition */ + + public static final String IS_STRICT_REQUIREMENT_PROPERTY_NAME = "strictRequirement"; /* from ValidValuesAssignment relationship */ + public static final String IS_DEFAULT_VALUE_PROPERTY_NAME = "isDefaultValue"; /* from ValidValuesMember relationship */ + + public static final String VALID_VALUES_MEMBER_RELATIONSHIP_TYPE_GUID = "6337c9cd-8e5a-461b-97f9-5151bcb97a9e"; /* from Area 5 */ + public static final String VALID_VALUES_MEMBER_RELATIONSHIP_TYPE_NAME = "ValidValueMember"; + /* End1 = ValidValuesSet; End 2 = ValidValuesDefinition */ + + public static final String VALID_VALUES_IMPL_RELATIONSHIP_TYPE_GUID = "d9a39553-6a47-4477-a217-844300c07cf2"; /* from Area 5 */ + public static final String VALID_VALUES_IMPL_RELATIONSHIP_TYPE_NAME = "ValidValuesImplementation"; + /* End1 = ValidValuesDefinition; End 2 = Asset */ + + public static final String SYMBOLIC_NAME_PROPERTY_NAME = "symbolicName"; /* from ValidValuesImplementation relationship */ + public static final String IMPLEMENTATION_VALUE_PROPERTY_NAME = "implementationValue"; /* from ValidValuesImplementation relationship */ + public static final String ADDITIONAL_VALUES_PROPERTY_NAME = "additionalValues"; /* from ValidValuesImplementation relationship */ + + public static final String VALID_VALUES_MAP_RELATIONSHIP_TYPE_GUID = "203ce62c-3cbf-4542-bf82-81820cba718f"; /* from Area 5 */ + public static final String VALID_VALUES_MAP_RELATIONSHIP_TYPE_NAME = "ValidValuesMapping"; + /* End1 = ValidValuesDefinition; End 2 = ValidValuesDefinition */ + + public static final String ASSOCIATION_DESCRIPTION_PROPERTY_NAME = "associationDescription"; /* from ValidValuesMapping relationship */ + + public static final String REFERENCE_VALUE_ASSIGNMENT_RELATIONSHIP_TYPE_GUID = "111e6d2e-94e9-43ed-b4ed-f0d220668cbf"; /* from Area 5 */ + public static final String REFERENCE_VALUE_ASSIGNMENT_RELATIONSHIP_TYPE_NAME = "ReferenceValueAssignment"; + /* End1 = Referenceable; End 2 = ValidValuesDefinition */ + + + + /* ============================================================================================================================*/ + /* Area 6 - Discovery */ + /* ============================================================================================================================*/ + + public static final String DISCOVERY_ENGINE_TYPE_GUID = "be650674-790b-487a-a619-0a9002488055"; + public static final String DISCOVERY_ENGINE_TYPE_NAME = "OpenDiscoveryEngine"; + /* GovernanceEngine */ + + public static final String DISCOVERY_SERVICE_TYPE_GUID = "2f278dfc-4640-4714-b34b-303e84e4fc40"; + public static final String DISCOVERY_SERVICE_TYPE_NAME = "OpenDiscoveryService"; + /* GovernanceService */ + + public static final String DISCOVERY_PIPELINE_TYPE_GUID = "081abe00-740e-4143-b0d5-a1f55450fc22"; + public static final String DISCOVERY_PIPELINE_TYPE_NAME = "OpenDiscoveryPipeline"; + /* GovernanceService */ + + public static final String CONNECTION_TO_ASSET_TYPE_GUID = "e777d660-8dbe-453e-8b83-903771f054c0"; + public static final String CONNECTION_TO_ASSET_TYPE_NAME = "ConnectionToAsset"; + /* End1 = Connection; End 2 = Asset */ + + public static final String DISCOVERY_ANALYSIS_REPORT_TYPE_GUID = "acc7cbc8-09c3-472b-87dd-f78459323dcb"; + public static final String DISCOVERY_ANALYSIS_REPORT_TYPE_NAME = "OpenDiscoveryAnalysisReport"; + /* Referenceable */ + + public static final String EXECUTION_DATE_PROPERTY_NAME = "executionDate"; /* from OpenDiscoveryAnalysisReport entity */ + public static final String ANALYSIS_PARAMS_PROPERTY_NAME = "analysisParameters"; /* from OpenDiscoveryAnalysisReport entity */ + public static final String ANALYSIS_STEP_PROPERTY_NAME = "discoveryRequestStep"; /* from OpenDiscoveryAnalysisReport entity */ + public static final String DISCOVERY_SERVICE_STATUS_PROPERTY_NAME = "discoveryServiceStatus"; /* from OpenDiscoveryAnalysisReport entity */ + + public static final String DISCOVERY_REQUEST_STATUS_ENUM_TYPE_GUID = "b2fdeddd-24eb-4e9c-a2a4-2693828d4a69"; + public static final String DISCOVERY_REQUEST_STATUS_ENUM_TYPE_NAME = "DiscoveryServiceRequestStatus"; + + public static final String REPORT_TO_ASSET_TYPE_GUID = "7eded424-f176-4258-9ae6-138a46b2845f"; /* from Area 6 */ + public static final String REPORT_TO_ASSET_TYPE_NAME = "AssetDiscoveryReport"; + /* End1 = Asset; End 2 = OpenDiscoveryAnalysisReport */ + + public static final String REPORT_TO_ENGINE_TYPE_GUID = "2c318c3a-5dc2-42cd-a933-0087d852f67f"; /* from Area 6 */ + public static final String REPORT_TO_ENGINE_TYPE_NAME = "DiscoveryEngineReport"; + /* End1 = OpenDiscoveryEngine; End 2 = OpenDiscoveryAnalysisReport */ + + public static final String REPORT_TO_SERVICE_TYPE_GUID = "1744d72b-903d-4273-9229-de20372a17e2"; /* from Area 6 */ + public static final String REPORT_TO_SERVICE_TYPE_NAME = "DiscoveryInvocationReport"; + /* End1 = OpenDiscoveryService; End 2 = OpenDiscoveryAnalysisReport */ + + public static final String REPORT_TO_ANNOTATIONS_TYPE_GUID = "51d386a3-3857-42e3-a3df-14a6cad08b93"; /* from Area 6 */ + public static final String REPORT_TO_ANNOTATIONS_TYPE_NAME = "DiscoveredAnnotation"; + /* End1 = Annotation; End 2 = OpenDiscoveryAnalysisReport */ + + + public static final String ANNOTATION_TYPE_GUID = "6cea5b53-558c-48f1-8191-11d48db29fb4"; + public static final String ANNOTATION_TYPE_NAME = "Annotation"; + + public static final String ANNOTATION_TYPE_PROPERTY_NAME = "annotationType"; /* from Annotation entity */ + public static final String CONFIDENCE_LEVEL_PROPERTY_NAME = "confidenceLevel"; /* from Annotation entity */ + public static final String EXPLANATION_PROPERTY_NAME = "explanation"; /* from Annotation entity */ + public static final String JSON_PROPERTIES_PROPERTY_NAME = "jsonProperties"; /* from Annotation entity */ + + public static final String ANNOTATION_TO_EXTENSION_TYPE_GUID = "605aaa6d-682e-405c-964b-ca6aaa94be1b"; /* from Area 6 */ + public static final String ANNOTATION_TO_EXTENSION_TYPE_NAME = "Annotation"; + /* End1 = (extended)Annotation; End 2 = Annotation(Extension) */ + + /* For AnnotationReview entity */ + public static final String ANNOTATION_REVIEW_TYPE_GUID = "b893d6fc-642a-454b-beaf-809ee4dd876a"; + public static final String ANNOTATION_REVIEW_TYPE_NAME = "AnnotationReview"; + + public static final String REVIEW_DATE_PROPERTY_NAME = "reviewDate"; /* from AnnotationReview entity */ + public static final String COMMENT_PROPERTY_NAME = "comment"; /* from AnnotationReview entity */ + + /* For AnnotationReviewLink relationship */ + public static final String ANNOTATION_REVIEW_LINK_TYPE_GUID = "5d3c2fb7-fa04-4d77-83cb-fd9216a07769"; + public static final String ANNOTATION_REVIEW_LINK_TYPE_NAME = "AnnotationReviewLink"; + /* End1 = Annotation; End 2 = AnnotationReview */ + + public static final String ANNOTATION_STATUS_PROPERTY_NAME = "annotationStatus"; /* from AnnotationReviewLink relationship */ + /* Enum Type AnnotationStatus */ + + /* For SchemaAnalysisAnnotation entity */ + public static final String SCHEMA_ANALYSIS_ANNOTATION_TYPE_GUID = "3c5aa68b-d562-4b04-b189-c7b7f0bf2ced"; + public static final String SCHEMA_ANALYSIS_ANNOTATION_TYPE_NAME = "SchemaAnalysisAnnotation"; + + public static final String SCHEMA_NAME_PROPERTY_NAME = "schemaName"; /* from SchemaAnalysisAnnotation entity */ + public static final String SCHEMA_TYPE_PROPERTY_NAME = "schemaType"; /* from SchemaAnalysisAnnotation entity */ + + /* For DataField entity */ + public static final String DATA_FIELD_TYPE_GUID = "3c5bbc8b-d562-4b04-b189-c7b7f0bf2cea"; + public static final String DATA_FIELD_TYPE_NAME = "DataField"; + + public static final String DATA_FIELD_NAME_PROPERTY_NAME = "dataFieldName"; /* from DataField entity */ + public static final String DATA_FIELD_TYPE_PROPERTY_NAME = "dataFieldType"; /* from DataField entity */ + public static final String DATA_FIELD_DESCRIPTION_PROPERTY_NAME = "dataFieldDescription"; /* from DataField entity */ + public static final String DATA_FIELD_ALIASES_PROPERTY_NAME = "dataFieldAliases"; /* from DataField entity */ + public static final String DATA_FIELD_SORT_ORDER_PROPERTY_NAME = "dataFieldName"; /* from DataField entity */ + + /* For DiscoveredDataField relationship */ + public static final String DISCOVERED_DATA_FIELD_TYPE_GUID = "60f2d263-e24d-4f20-8c0d-b5e22222cd54"; + public static final String DISCOVERED_DATA_FIELD_TYPE_NAME = "DiscoveredDataField"; + /* End1 = SchemaAnalysisAnnotation; End 2 = DataField */ + + /* For DiscoveredDataField relationship */ + public static final String DISCOVERED_NESTED_DATA_FIELD_TYPE_GUID = "60f2d263-e24d-4f20-8c0d-b5e12356cd54"; + public static final String DISCOVERED_NESTED_DATA_FIELD_TYPE_NAME = "DiscoveredNestedDataField"; + /* End1 = (parent)DataField; End 2 = DataField */ + + public static final String DATA_FIELD_POSITION_PROPERTY_NAME = "dataFieldPosition"; /* from DiscoveredDataField and + DiscoveredNestedDataField relationship */ + + /* For DataFieldAnnotation entity */ + public static final String DATA_FIELD_ANNOTATION_TYPE_GUID = "72ed6de6-79d9-4e7d-aefc-b969382fc4b0"; + public static final String DATA_FIELD_ANNOTATION_TYPE_NAME = "DataFieldAnnotation"; + /* Annotation */ + + /* For DataFieldAnalysis relationship */ + public static final String DATA_FIELD_ANALYSIS_TYPE_GUID = "833e849d-eda2-40bb-9e6b-c3ca0b56d581"; + public static final String DATA_FIELD_ANALYSIS_TYPE_NAME = "DataFieldAnalysis"; + /* End1 = DataFieldAnnotation; End 2 = DataField */ + + /* For ClassificationAnnotation entity */ + public static final String CLASSIFICATION_ANNOTATION_TYPE_GUID = "23e8287f-5c7e-4e03-8bd3-471fc7fc029c"; + public static final String CLASSIFICATION_ANNOTATION_TYPE_NAME = "ClassificationAnnotation"; + /* DataFieldAnnotation */ + + public static final String CANDIDATE_CLASSIFICATIONS_PROPERTY_NAME = "candidateClassifications"; /* from ClassificationAnnotation entity */ + + /* For DataProfileAnnotation entity */ + public static final String DATA_PROFILE_ANNOTATION_TYPE_GUID = "bff1f694-afd0-4829-ab11-50a9fbaf2f5f"; + public static final String DATA_PROFILE_ANNOTATION_TYPE_NAME = "DataProfileAnnotation"; + /* DataFieldAnnotation */ + + public static final String INFERRED_DATA_TYPE_PROPERTY_NAME = "inferredDataType"; /* from DataProfileAnnotation entity */ + public static final String INFERRED_FORMAT_PROPERTY_NAME = "inferredFormat"; /* from DataProfileAnnotation entity */ + public static final String INFERRED_LENGTH_PROPERTY_NAME = "inferredLength"; /* from DataProfileAnnotation entity */ + public static final String INFERRED_PRECISION_PROPERTY_NAME = "inferredPrecision"; /* from DataProfileAnnotation entity */ + public static final String INFERRED_SCALE_PROPERTY_NAME = "inferredScale"; /* from DataProfileAnnotation entity */ + public static final String PROFILE_PROPERTIES_PROPERTY_NAME = "profileProperties"; /* from DataProfileAnnotation entity */ + public static final String PROFILE_FLAGS_PROPERTY_NAME = "profileFlags"; /* from DataProfileAnnotation entity */ + public static final String PROFILE_COUNTS_PROPERTY_NAME = "profileCounts"; /* from DataProfileAnnotation entity */ + public static final String VALUE_LIST_PROPERTY_NAME = "valueList"; /* from DataProfileAnnotation entity */ + public static final String VALUE_COUNT_PROPERTY_NAME = "valueCount"; /* from DataProfileAnnotation entity */ + public static final String VALUE_RANGE_FROM_PROPERTY_NAME = "valueRangeTo"; /* from DataProfileAnnotation entity */ + public static final String VALUE_RANGE_TO_PROPERTY_NAME = "valueRangeTo"; /* from DataProfileAnnotation entity */ + public static final String AVERAGE_VALUE_PROPERTY_NAME = "averageValue"; /* from DataProfileAnnotation entity */ + + /* For DataProfileLogAnnotation entity */ + public static final String DATA_PROFILE_LOG_ANNOTATION_TYPE_GUID = "368e6fb3-7323-4f81-a723-5182491594bd"; + public static final String DATA_PROFILE_LOG_ANNOTATION_TYPE_NAME = "DataProfileLogAnnotation"; + /* DataFieldAnnotation */ + + /* For DiscoveredDataField relationship */ + public static final String DATA_PROFILE_LOG_FILE_TYPE_GUID = "75026fac-f9e5-4da8-9ad1-e9c68d47f577"; + public static final String DATA_PROFILE_LOG_FILE_TYPE_NAME = "DataProfileLogFile"; + /* End1 = DataProfileLogAnnotation; End 2 = LogFile */ + + /* For DataClassAnnotation entity */ + public static final String DATA_CLASS_ANNOTATION_TYPE_GUID = "0c8a3673-04ef-406f-899d-e88de67f6176"; + public static final String DATA_CLASS_ANNOTATION_TYPE_NAME = "DataClassAnnotation"; + /* DataFieldAnnotation */ + + public static final String CANDIDATE_DATA_CLASS_GUIDS_PROPERTY_NAME = "candidateDataClassGUIDs"; /* from DataClassAnnotation entity */ + public static final String MATCHING_VALUES_PROPERTY_NAME = "matchingValues"; /* from DataClassAnnotation entity */ + public static final String NON_MATCHING_VALUES_PROPERTY_NAME = "nonMatchingValues"; /* from DataClassAnnotation entity */ + + /* For SemanticAnnotation entity */ + public static final String SEMANTIC_ANNOTATION_TYPE_GUID = "0b494819-28be-4604-b238-3af20963eea6"; + public static final String SEMANTIC_ANNOTATION_TYPE_NAME = "SemanticAnnotation"; + /* Annotation */ + + public static final String INFORMAL_TERM_PROPERTY_NAME = "informalTerm"; /* from SemanticAnnotation entity */ + public static final String CANDIDATE_GLOSSARY_TERM_GUIDS_PROPERTY_NAME = "candidateGlossaryTermGUIDs"; /* from SemanticAnnotation entity */ + public static final String INFORMAL_TOPIC_PROPERTY_NAME = "informalTopic"; /* from SemanticAnnotation entity */ + public static final String CANDIDATE_GLOSSARY_CATEGORY_GUIDS_PROPERTY_NAME = "candidateGlossaryCategoryGUIDs"; /* from SemanticAnnotation entity */ + + /* For QualityAnnotation entity */ + public static final String QUALITY_ANNOTATION_TYPE_GUID = "72e6473d-4ce0-4609-80a4-e6e949a7f520"; + public static final String QUALITY_ANNOTATION_TYPE_NAME = "QualityAnnotation"; + /* DataFieldAnnotation */ + + public static final String QUALITY_DIMENSION_PROPERTY_NAME = "qualityDimension"; /* from QualityAnnotation entity */ + public static final String QUALITY_SCORE_PROPERTY_NAME = "qualityScore"; /* from QualityAnnotation entity */ + + /* For RelationshipAdviceAnnotation entity */ + public static final String RELATIONSHIP_ADVICE_ANNOTATION_TYPE_GUID = "740f07dc-4ee8-4c2a-baba-efb55c73eb68"; + public static final String RELATIONSHIP_ADVICE_ANNOTATION_TYPE_NAME = "RelationshipAdviceAnnotation"; + /* DataFieldAnnotation */ + + public static final String RELATED_ENTITY_GUID_PROPERTY_NAME = "relatedEntityGUID"; /* from RelationshipAdviceAnnotation entity */ + public static final String RELATIONSHIP_TYPE_NAME_PROPERTY_NAME = "relationshipTypeName"; /* from RelationshipAdviceAnnotation entity */ + public static final String RELATIONSHIP_PROPERTIES_PROPERTY_NAME = "relationshipProperties"; /* from RelationshipAdviceAnnotation entity */ + + + + /* For SuspectDuplicateAnnotation entity */ + public static final String SUSPECT_DUPLICATE_ANNOTATION_TYPE_GUID = "f703a621-4078-4c07-ab22-e7c334b94235"; + public static final String SUSPECT_DUPLICATE_ANNOTATION_TYPE_NAME = "SuspectDuplicateAnnotation"; + /* plus Annotation */ + + public static final String DUPLICATE_ANCHOR_GUIDS_PROPERTY_NAME = "duplicateAnchorGUIDs"; /* from SuspectDuplicateAnnotation entity */ + public static final String MATCHING_PROPERTY_NAMES_PROPERTY_NAME = "matchingPropertyNames"; /* from SuspectDuplicateAnnotation entity */ + public static final String MATCHING_CLASSIFICATION_NAMES_PROPERTY_NAME = "matchingClassificationNames"; /* from SuspectDuplicateAnnotation entity */ + public static final String MATCHING_ATTACHMENT_GUIDS_PROPERTY_NAME = "matchingAttachmentGUIDS"; /* from SuspectDuplicateAnnotation entity */ + public static final String MATCHING_RELATIONSHIP_GUIDS_PROPERTY_NAME = "matchingRelationshipGUIDs"; /* from SuspectDuplicateAnnotation entity */ + + /* For DivergentDuplicateAnnotation entity */ + public static final String DIVERGENT_DUPLICATE_ANNOTATION_TYPE_GUID = "251e443c-dee0-47fa-8a73-1a9d511915a0"; + public static final String DIVERGENT_DUPLICATE_ANNOTATION_TYPE_NAME = "DivergentDuplicateAnnotation"; + /* plus Annotation */ + + /* For DivergentValueAnnotation entity */ + public static final String DIVERGENT_VALUE_ANNOTATION_TYPE_GUID = "b86cdded-1078-4e42-b6ba-a718c2c67f62"; + public static final String DIVERGENT_VALUE_ANNOTATION_TYPE_NAME = "DivergentValueAnnotation"; + /* plus DivergentDuplicateAnnotation */ + + /* For DivergentClassificationAnnotation entity */ + public static final String DIVERGENT_CLASSIFICATION_ANNOTATION_TYPE_GUID = "8efd6257-a53e-451d-abfc-8e4899c38b1f"; + public static final String DIVERGENT_CLASSIFICATION_ANNOTATION_TYPE_NAME = "DivergentClassificationAnnotation"; + /* plus DivergentDuplicateAnnotation */ + + /* For DivergentRelationshipAnnotation entity */ + public static final String DIVERGENT_RELATIONSHIP_ANNOTATION_TYPE_GUID = "b6c6938a-fdc9-438f-893c-0b5b1d4a5bb3"; + public static final String DIVERGENT_RELATIONSHIP_ANNOTATION_TYPE_NAME = "DivergentRelationshipAnnotation"; + /* plus DivergentDuplicateAnnotation */ + + /* For DivergentAttachmentAnnotation entity */ + public static final String DIVERGENT_ATTACHMENT_ANNOTATION_TYPE_GUID = "f3ed48bc-b0ea-4e1f-a8ab-75f9f3cf87a6"; + public static final String DIVERGENT_ATTACHMENT_ANNOTATION_TYPE_NAME = "DivergentAttachmentAnnotation"; + /* plus DivergentDuplicateAnnotation */ + + /* For DivergentAttachmentValueAnnotation entity */ + public static final String DIVERGENT_ATTACHMENT_VALUE_ANNOTATION_TYPE_GUID = "e22a1ffe-bd90-4faf-b6a1-13fafb7948a2"; + public static final String DIVERGENT_ATTACHMENT_VALUE_ANNOTATION_TYPE_NAME = "DivergentAttachmentValueAnnotation"; + /* plus DivergentAttachmentAnnotation */ + + /* For DivergentAttachmentClassificationAnnotation entity */ + public static final String DIVERGENT_ATTACHMENT_CLASS_ANNOTATION_TYPE_GUID = "a2a5cb74-f8e0-470f-be71-26b7e32166a6"; + public static final String DIVERGENT_ATTACHMENT_CLASS_ANNOTATION_TYPE_NAME = "DivergentAttachmentClassificationAnnotation"; + /* plus DivergentAttachmentAnnotation */ + + /* For DivergentAttachmentRelationshipAnnotation entity */ + public static final String DIVERGENT_ATTACHMENT_REL_ANNOTATION_TYPE_GUID = "5613677a-865f-474e-8044-4167fa5a31b9"; + public static final String DIVERGENT_ATTACHMENT_REL_ANNOTATION_TYPE_NAME = "DivergentAttachmentRelationshipAnnotation"; + /* plus DivergentAttachmentAnnotation */ + + /* for divergent annotations */ + public static final String DUPLICATE_ANCHOR_GUID_PROPERTY_NAME = "duplicateAnchorGUID"; + // public static final String ATTACHMENT_GUID_PROPERTY_NAME = "attachmentGUID"; + public static final String DUPLICATE_ATTACHMENT_GUID_PROPERTY_NAME = "duplicateAttachmentGUID"; + public static final String DIVERGENT_PROPERTY_NAMES_PROPERTY_NAME = "divergentPropertyNames"; + public static final String DIVERGENT_CLASSIFICATION_NAME_PROPERTY_NAME = "divergentClassificationName"; + public static final String DIVERGENT_CLASSIFICATION_PROPERTY_NAMES_PROPERTY_NAME = "divergentClassificationPropertyNames"; + public static final String DIVERGENT_RELATIONSHIP_GUID_PROPERTY_NAME = "divergentRelationshipGUID"; + public static final String DIVERGENT_RELATIONSHIP_PROPERTY_NAMES_PROPERTY_NAME = "divergentRelationshipPropertyNames"; + + /* For DataSourceMeasurementAnnotation entity */ + public static final String DATA_SOURCE_MEASUREMENT_ANNOTATION_TYPE_GUID = "c85bea73-d7af-46d7-8a7e-cb745910b1d"; + public static final String DATA_SOURCE_MEASUREMENT_ANNOTATION_TYPE_NAME = "DataSourceMeasurementAnnotation"; + /* plus Annotation */ + + public static final String DATA_SOURCE_PROPERTIES_PROPERTY_NAME = "dataSourceProperties"; /* from DataSourceMeasurementAnnotation entity */ + + /* For DataSourcePhysicalStatusAnnotation entity */ + public static final String DS_PHYSICAL_STATUS_ANNOTATION_TYPE_GUID = "e9ba276e-6d9f-4999-a5a9-9ddaaabfae23"; + public static final String DS_PHYSICAL_STATUS_ANNOTATION_TYPE_NAME = "DataSourcePhysicalStatusAnnotation"; + /* plus DataSourceMeasurementAnnotation */ + + public static final String SOURCE_CREATE_TIME_PROPERTY_NAME = "sourceCreateTime"; /* from DataSourcePhysicalStatusAnnotation entity */ + public static final String SOURCE_CREATE_TIME_PROPERTY_NAME_DEP = "createTime"; /* from DataSourcePhysicalStatusAnnotation entity */ + public static final String SOURCE_UPDATE_TIME_PROPERTY_NAME = "sourceUpdateTime"; /* from DataSourcePhysicalStatusAnnotation entity */ + public static final String SOURCE_UPDATE_TIME_PROPERTY_NAME_DEP = "updateTime"; /* from DataSourcePhysicalStatusAnnotation entity */ + + public static final String DS_PHYSICAL_SIZE_PROPERTY_NAME = "size"; /* from DataSourcePhysicalStatusAnnotation entity */ + public static final String DS_PHYSICAL_ENCODING_PROPERTY_NAME = "encoding"; /* from DataSourcePhysicalStatusAnnotation entity */ + + /* For Request For Action Annotation entity */ + public static final String REQUEST_FOR_ACTION_ANNOTATION_TYPE_GUID = "f45765a9-f3ae-4686-983f-602c348e020d"; + public static final String REQUEST_FOR_ACTION_ANNOTATION_TYPE_NAME = "RequestForActionAnnotation"; + /* plus DataFieldAnnotation */ + + public static final String DISCOVERY_ACTIVITY_PROPERTY_NAME = "discoveryActivity"; /* from RequestForActionAnnotation entity */ + public static final String ACTION_REQUESTED_PROPERTY_NAME = "actionRequested"; /* from RequestForActionAnnotation entity */ + public static final String ACTION_PROPERTIES_PROPERTY_NAME = "actionProperties"; /* from RequestForActionAnnotation entity */ + + /* For Discovery Activity relationship */ + public static final String DISCOVERY_ACTIVITY_TYPE_GUID = "6cea5b53-558c-48f1-8191-11d48db29fb4"; + public static final String DISCOVERY_ACTIVITY_TYPE_NAME = "DiscoveryActivity"; + /* End1 = RequestForActionAnnotation; End 2 = RequestForAction */ + + /* ============================================================================================================================*/ + /* Area 7 - Lineage */ + /* ============================================================================================================================*/ + + public static final String DIGITAL_SERVICE_TYPE_GUID = "f671e1fc-b204-4ee6-a4e2-da1633ecf50e"; + public static final String DIGITAL_SERVICE_TYPE_NAME = "DigitalService"; + + public static final String DIGITAL_PRODUCT_CLASSIFICATION_TYPE_GUID = "4aaaa7ca-6b4b-4c4b-997f-d5dfd42917b0"; + public static final String DIGITAL_PRODUCT_CLASSIFICATION_TYPE_NAME = "DigitalProduct"; + public static final String PRODUCT_NAME_PROPERTY_NAME = "productName"; + public static final String PRODUCT_TYPE_PROPERTY_NAME = "productType"; + public static final String INTRODUCTION_DATE_PROPERTY_NAME = "introductionDate"; + public static final String MATURITY_PROPERTY_NAME = "maturity"; + public static final String SERVICE_LIFE_PROPERTY_NAME = "serviceLife"; + public static final String CURRENT_VERSION_PROPERTY_NAME = "currentVersion"; + public static final String NEXT_VERSION_PROPERTY_NAME = "nextVersion"; + public static final String WITHDRAW_DATE_PROPERTY_NAME = "withdrawDate"; + + public static final String DIGITAL_SERVICE_DEPENDENCY_RELATIONSHIP_TYPE_GUID = "e8303911-ba1c-4640-974e-c4d57ee1b310"; + public static final String DIGITAL_SERVICE_DEPENDENCY_RELATIONSHIP_TYPE_NAME = "DigitalServiceDependency"; + + public static final String DIGITAL_SERVICE_PRODUCT_RELATIONSHIP_TYPE_GUID = "51465a59-c785-406d-929c-def34596e9af"; + public static final String DIGITAL_SERVICE_PRODUCT_RELATIONSHIP_TYPE_NAME = "DigitalServiceProduct"; + + public static final String IMPLEMENTED_BY_RELATIONSHIP_TYPE_GUID = "28f63c94-aaef-4c84-98f7-d77aa605272e"; + public static final String IMPLEMENTED_BY_RELATIONSHIP_TYPE_NAME = "ImplementedBy"; + /* End1 = Referenceable; End 2 = Referenceable */ + + public static final String DESIGN_STEP_PROPERTY_NAME = "designStep"; + public static final String ROLE_PROPERTY_NAME = "role"; + public static final String TRANSFORMATION_PROPERTY_NAME = "transformation"; + + public static final String SOLUTION_PORT_SCHEMA_RELATIONSHIP_TYPE_GUID = "bf02c703-57a2-4ab7-b6db-f49b57b05985"; + public static final String SOLUTION_PORT_SCHEMA_RELATIONSHIP_TYPE_NAME = "SolutionPortSchema"; + /* End1 = SolutionPort; End 2 = SchemaType */ + + public static final String DATA_FLOW_TYPE_GUID = "d2490c0c-06cc-458a-add2-33cf2f5dd724"; + public static final String DATA_FLOW_TYPE_NAME = "DataFlow"; + /* End1 = Referenceable - supplier; End 2 = Referenceable - consumer */ + + public static final String CONTROL_FLOW_TYPE_GUID = "35450726-1c32-4d41-b928-22db6d1ae2f4"; + public static final String CONTROL_FLOW_TYPE_NAME = "ControlFlow"; + /* End1 = Referenceable - currentStep; End 2 = Referenceable - nextStep */ + + public static final String PROCESS_CALL_TYPE_GUID = "af904501-6347-4f52-8378-da50e8d74828"; + public static final String PROCESS_CALL_TYPE_NAME = "ProcessCall"; + /* End1 = Referenceable - calls; End 2 = Referenceable - calledBy */ + + public static final String BUSINESS_SIGNIFICANCE_CLASSIFICATION_TYPE_GUID = "085febdd-f129-4f4b-99aa-01f3e6294e9f"; + public static final String BUSINESS_SIGNIFICANCE_CLASSIFICATION_TYPE_NAME = "BusinessSignificance"; + /* Linked to Referenceable */ + + public static final String BUSINESS_CAPABILITY_GUID_PROPERTY_NAME = "businessCapabilityGUID"; /* from BusinessSignificant entity */ + + + public static final String LINEAGE_MAPPING_TYPE_GUID = "a5991bB2-660D-A3a1-2955-fAcDA2d5F4Ff"; + public static final String LINEAGE_MAPPING_TYPE_NAME = "LineageMapping"; + /* End1 = Referenceable - sourceElement; End 2 = Referenceable - targetElement */ + + public static final String INCOMPLETE_CLASSIFICATION_TYPE_GUID = "078432fb-a889-4a51-8ebe-9797becea9f1"; + public static final String INCOMPLETE_CLASSIFICATION_TYPE_NAME = "Incomplete"; + + public static final String PROCESSING_STATE_CLASSIFICATION_TYPE_GUID = "261fb0aa-b884-4ee8-87ea-a60510e9751d"; + public static final String PROCESSING_STATE_CLASSIFICATION_TYPE_NAME = "ProcessingState"; +} diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementConverter.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementConverter.java index 4dc0599acb0..ca9a1819d0f 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementConverter.java +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementConverter.java @@ -6,6 +6,7 @@ import org.odpi.openmetadata.frameworks.governanceaction.properties.OpenMetadataElement; import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElement; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityDetail; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityProxy; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceProperties; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.Relationship; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSRepositoryHelper; @@ -58,14 +59,11 @@ public B getNewBean(Class beanClass, */ B returnBean = beanClass.getDeclaredConstructor().newInstance(); - if (returnBean instanceof RelatedMetadataElement) + if (returnBean instanceof RelatedMetadataElement bean) { - RelatedMetadataElement bean = (RelatedMetadataElement) returnBean; - fillElementControlHeader(bean, relationship); bean.setRelationshipGUID(relationship.getGUID()); - bean.setRelationshipType(super.getElementType(relationship)); InstanceProperties instanceProperties = relationship.getProperties(); @@ -76,6 +74,15 @@ public B getNewBean(Class beanClass, bean.setRelationshipProperties(mapElementProperties(instanceProperties)); } + EntityProxy startingProxy = relationship.getEntityOneProxy(); + + if (startingProxy.getGUID().equals(entity.getGUID())) + { + startingProxy = relationship.getEntityTwoProxy(); + } + + bean.setStartingElement(super.getElementStub(beanClass, startingProxy, methodName)); + OpenMetadataElement relatedBean = new OpenMetadataElement(); super.fillOpenMetadataElement(relatedBean, entity); diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementsConverter.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementsConverter.java index c421c16fe13..35d5115a199 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementsConverter.java +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/converters/RelatedElementsConverter.java @@ -3,6 +3,7 @@ package org.odpi.openmetadata.frameworkservices.gaf.converters; import org.odpi.openmetadata.frameworks.connectors.ffdc.PropertyServerException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; import org.odpi.openmetadata.frameworks.governanceaction.properties.RelatedMetadataElements; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.EntityProxy; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.instances.InstanceProperties; @@ -75,12 +76,20 @@ public B getNewRelationshipBean(Class beanClass, } EntityProxy entityProxy = relationship.getEntityOneProxy(); + ElementStub elementStub = new ElementStub(); bean.setElementGUIDAtEnd1(entityProxy.getGUID()); + fillElementControlHeader(elementStub, entityProxy); + elementStub.setUniqueName(getQualifiedName(entityProxy.getUniqueProperties())); + bean.setElementAtEnd1(elementStub); entityProxy = relationship.getEntityTwoProxy(); + elementStub = new ElementStub(); bean.setElementGUIDAtEnd2(entityProxy.getGUID()); + fillElementControlHeader(elementStub, entityProxy); + elementStub.setUniqueName(getQualifiedName(entityProxy.getUniqueProperties())); + bean.setElementAtEnd2(elementStub); if (repositoryHelper.getTypeDefByName(serviceName, relationship.getType().getTypeDefName()) instanceof RelationshipDef relationshipDef) { diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/handlers/MetadataElementHandler.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/handlers/MetadataElementHandler.java index 4b1ec8a74a0..50ac53284c9 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/handlers/MetadataElementHandler.java +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/handlers/MetadataElementHandler.java @@ -289,6 +289,7 @@ public String getMetadataElementGUIDByUniqueName(String userId, */ public List findMetadataElementsWithString(String userId, String searchString, + String typeName, boolean forLineage, boolean forDuplicateProcessing, List serviceSupportedZones, @@ -304,11 +305,24 @@ public List findMetadataElementsWithString(String userId, invalidParameterHandler.validateUserId(userId, methodName); invalidParameterHandler.validateSearchString(searchString, searchStringParameterName, methodName); + String searchTypeName = OpenMetadataAPIMapper.OPEN_METADATA_ROOT_TYPE_NAME; + + if (typeName != null) + { + searchTypeName = typeName; + } + + String searchTypeGUID = invalidParameterHandler.validateTypeName(searchTypeName, + OpenMetadataAPIMapper.OPEN_METADATA_ROOT_TYPE_NAME, + serviceName, + methodName, + repositoryHelper); + return this.findBeans(userId, searchString, searchStringParameterName, - OpenMetadataAPIMapper.OPEN_METADATA_ROOT_TYPE_GUID, - OpenMetadataAPIMapper.OPEN_METADATA_ROOT_TYPE_NAME, + searchTypeGUID, + searchTypeName, forLineage, forDuplicateProcessing, serviceSupportedZones, diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/server/OpenMetadataStoreRESTServices.java b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/server/OpenMetadataStoreRESTServices.java index bdc31fb5ca0..f36449de4e4 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/server/OpenMetadataStoreRESTServices.java +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/gaf-metadata-server/src/main/java/org/odpi/openmetadata/frameworkservices/gaf/server/OpenMetadataStoreRESTServices.java @@ -365,6 +365,7 @@ public OpenMetadataElementsResponse findMetadataElementsWithString(String response.setElementList(handler.findMetadataElementsWithString(userId, requestBody.getSearchString(), + requestBody.getTypeName(), forLineage, forDuplicateProcessing, instanceHandler.getSupportedZones(userId, serverName, serviceURLMarker, methodName), diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/OpenMetadataStore.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/OpenMetadataStore.java index e841d1d78e5..8ff949e75e9 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/OpenMetadataStore.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/OpenMetadataStore.java @@ -166,6 +166,43 @@ public List findMetadataElementsWithString(String searchSt } + /** + * Retrieve the metadata elements of the requested type that contain the requested string. + * + * @param searchString name to retrieve + * @param typeName name of the type to limit the results to (may be null to mean all types) + * @param forLineage the retrieved elements are for lineage processing so include archived elements + * @param forDuplicateProcessing the retrieved elements are for duplicate processing so do not combine results from known duplicates. + * @param effectiveTime only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now. + * @param startFrom paging start point + * @param pageSize maximum results that can be returned + * + * @return list of matching metadata elements (or null if no elements match the name) + * @throws InvalidParameterException the qualified name is null + * @throws UserNotAuthorizedException the governance action service is not able to access the element + * @throws PropertyServerException there is a problem accessing the metadata store + */ + public List findMetadataElementsWithString(String searchString, + String typeName, + boolean forLineage, + boolean forDuplicateProcessing, + Date effectiveTime, + int startFrom, + int pageSize) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException + { + return openMetadataClient.findMetadataElementsWithString(userId, + searchString, + typeName, + forLineage, + forDuplicateProcessing, + effectiveTime, + startFrom, + pageSize); + } + + /** * Retrieve the metadata elements connected to the supplied element. * diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/MetadataElementInterface.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/MetadataElementInterface.java index 37e4a93ada2..c2c37cfc963 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/MetadataElementInterface.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/MetadataElementInterface.java @@ -124,6 +124,35 @@ List findMetadataElementsWithString(String userId, PropertyServerException; + /** + * Retrieve the metadata elements of the requested type that contain the requested string. + * + * @param userId caller's userId + * @param searchString name to retrieve + * @param typeName name of the type to limit the results to + * @param forLineage the retrieved elements are for lineage processing so include archived elements + * @param forDuplicateProcessing the retrieved elements are for duplicate processing so do not combine results from known duplicates. + * @param effectiveTime only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now. + * @param startFrom paging start point + * @param pageSize maximum results that can be returned + * + * @return list of matching metadata elements (or null if no elements match the name) + * @throws InvalidParameterException the qualified name is null + * @throws UserNotAuthorizedException the governance action service is not able to access the element + * @throws PropertyServerException there is a problem accessing the metadata store + */ + List findMetadataElementsWithString(String userId, + String searchString, + String typeName, + boolean forLineage, + boolean forDuplicateProcessing, + Date effectiveTime, + int startFrom, + int pageSize) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException; + + /** * Retrieve the metadata elements connected to the supplied element. * @@ -330,11 +359,11 @@ String createMetadataElementInStore(String userId, /** * Update the properties of a specific metadata element. The properties must match the type definition associated with the * metadata element when it was created. However, it is possible to update a few properties, or replace all them by - * the value used in the replaceProperties flag. + * the value used in the replaceAllProperties flag. * * @param userId caller's userId * @param metadataElementGUID unique identifier of the metadata element to update - * @param replaceProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update * the individual properties specified on the request. * @param forLineage the retrieved elements are for lineage processing so include archived elements * @param forDuplicateProcessing the retrieved element is for duplicate processing so do not combine results from known duplicates. @@ -347,7 +376,7 @@ String createMetadataElementInStore(String userId, */ void updateMetadataElementInStore(String userId, String metadataElementGUID, - boolean replaceProperties, + boolean replaceAllProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/OpenMetadataClient.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/OpenMetadataClient.java index 9a59756c86c..743b76b89e3 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/OpenMetadataClient.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/client/OpenMetadataClient.java @@ -152,6 +152,36 @@ public abstract List findMetadataElementsWithString(String PropertyServerException; + /** + * Retrieve the metadata elements of the requested type that contain the requested string. + * + * @param userId caller's userId + * @param searchString name to retrieve + * @param typeName name of the type to limit the results to + * @param forLineage the retrieved elements are for lineage processing so include archived elements + * @param forDuplicateProcessing the retrieved elements are for duplicate processing so do not combine results from known duplicates. + * @param effectiveTime only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now. + * @param startFrom paging start point + * @param pageSize maximum results that can be returned + * + * @return list of matching metadata elements (or null if no elements match the name) + * @throws InvalidParameterException the qualified name is null + * @throws UserNotAuthorizedException the governance action service is not able to access the element + * @throws PropertyServerException there is a problem accessing the metadata store + */ + @Override + public abstract List findMetadataElementsWithString(String userId, + String searchString, + String typeName, + boolean forLineage, + boolean forDuplicateProcessing, + Date effectiveTime, + int startFrom, + int pageSize) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException; + + /** * Retrieve the metadata elements connected to the supplied element. * @@ -326,7 +356,7 @@ public abstract String createMetadataElementInStore(String userId, * * @param userId caller's userId * @param metadataElementGUID unique identifier of the metadata element to update - * @param replaceProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update + * @param replaceAllProperties flag to indicate whether to completely replace the existing properties with the new properties, or just update * the individual properties specified on the request. * @param forLineage the query is to support lineage retrieval * @param forDuplicateProcessing the query is for duplicate processing and so must not deduplicate @@ -340,7 +370,7 @@ public abstract String createMetadataElementInStore(String userId, @Override public abstract void updateMetadataElementInStore(String userId, String metadataElementGUID, - boolean replaceProperties, + boolean replaceAllProperties, boolean forLineage, boolean forDuplicateProcessing, ElementProperties properties, diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElement.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElement.java index 4376748b715..5f599e39dca 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElement.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElement.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.*; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementControlHeader; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementType; import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; @@ -22,8 +23,8 @@ public class RelatedMetadataElement extends ElementControlHeader { private static final long serialVersionUID = 1L; + private ElementStub startingElement = null; private String relationshipGUID = null; - private ElementType relationshipType = null; private Date effectiveFromTime = null; private Date effectiveToTime = null; private ElementProperties relationshipProperties = null; @@ -50,7 +51,6 @@ public RelatedMetadataElement(RelatedMetadataElement template) if (template != null) { - relationshipType = template.getRelationshipType(); relationshipGUID = template.getRelationshipGUID(); effectiveFromTime = template.getEffectiveFromTime(); effectiveToTime = template.getEffectiveToTime(); @@ -60,6 +60,27 @@ public RelatedMetadataElement(RelatedMetadataElement template) } + /** + * Return details of the starting element used to navigate to the desired element. + * + * @return element stub + */ + public ElementStub getStartingElement() + { + return startingElement; + } + + + /** + * Set up details of the starting element used to navigate to the desired element. + * + * @param startingElement element stub + */ + public void setStartingElement(ElementStub startingElement) + { + this.startingElement = startingElement; + } + /** * Return the unique id for the relationship . @@ -89,7 +110,8 @@ public void setRelationshipGUID(String guid) * * @return element type properties */ - public ElementType getRelationshipType() { return relationshipType; } + @Deprecated + public ElementType getRelationshipType() { return super.getType(); } /** @@ -98,9 +120,10 @@ public void setRelationshipGUID(String guid) * * @param relationshipType element type properties */ + @Deprecated public void setRelationshipType(ElementType relationshipType) { - this.relationshipType = relationshipType; + super.setType(relationshipType); } @@ -195,8 +218,8 @@ public void setElement(OpenMetadataElement element) public String toString() { return "RelatedMetadataElement{" + - "relationshipGUID='" + relationshipGUID + '\'' + - ", relationshipType=" + relationshipType + + "startingElement='" + startingElement + '\'' + + ", relationshipGUID='" + relationshipGUID + '\'' + ", effectiveFromTime=" + effectiveFromTime + ", effectiveToTime=" + effectiveToTime + ", relationshipProperties=" + relationshipProperties + @@ -233,7 +256,7 @@ public boolean equals(Object objectToCompare) } RelatedMetadataElement that = (RelatedMetadataElement) objectToCompare; return Objects.equals(relationshipGUID, that.relationshipGUID) && - Objects.equals(relationshipType, that.relationshipType) && + Objects.equals(startingElement, that.startingElement) && Objects.equals(effectiveFromTime, that.effectiveFromTime) && Objects.equals(effectiveToTime, that.effectiveToTime) && Objects.equals(relationshipProperties, that.relationshipProperties) && @@ -249,7 +272,7 @@ public boolean equals(Object objectToCompare) @Override public int hashCode() { - return Objects.hash(super.hashCode(), relationshipGUID, relationshipType, effectiveFromTime, + return Objects.hash(super.hashCode(), startingElement, relationshipGUID, effectiveFromTime, effectiveToTime, relationshipProperties, element); } } \ No newline at end of file diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElements.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElements.java index 7ee4056dee5..b75a842747a 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElements.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/properties/RelatedMetadataElements.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementControlHeader; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementStub; import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementType; import org.odpi.openmetadata.frameworks.governanceaction.search.ElementProperties; @@ -32,8 +33,10 @@ public class RelatedMetadataElements extends ElementControlHeader private ElementProperties relationshipProperties = null; private String labelAtEnd1 = null; private String elementGUIDAtEnd1 = null; + private ElementStub elementAtEnd1 = null; private String labelAtEnd2 = null; private String elementGUIDAtEnd2 = null; + private ElementStub elementAtEnd2 = null; /** @@ -258,6 +261,50 @@ public void setLabelAtEnd2(String labelAtEnd2) } + /** + * Return details of the element at end 1 of this relationship. + * + * @return element stub + */ + public ElementStub getElementAtEnd1() + { + return elementAtEnd1; + } + + + /** + * Set up details of the element at end 1 of this relationship. + * + * @param elementAtEnd1 element stub + */ + public void setElementAtEnd1(ElementStub elementAtEnd1) + { + this.elementAtEnd1 = elementAtEnd1; + } + + + /** + * Return details of the element at end 2 of this relationship. + * + * @return element stub + */ + public ElementStub getElementAtEnd2() + { + return elementAtEnd2; + } + + + /** + * Set up details of the element at end 2 of this relationship. + * + * @param elementAtEnd2 element stub + */ + public void setElementAtEnd2(ElementStub elementAtEnd2) + { + this.elementAtEnd2 = elementAtEnd2; + } + + /** * Standard toString method. * @@ -274,8 +321,10 @@ public String toString() ", relationshipProperties=" + relationshipProperties + ", labelAtEnd1='" + labelAtEnd1 + '\'' + ", elementGUIDAtEnd1='" + elementGUIDAtEnd1 + '\'' + + ", elementAtEnd1='" + elementAtEnd1 + '\'' + ", labelAtEnd2='" + labelAtEnd2 + '\'' + ", elementGUIDAtEnd2='" + elementGUIDAtEnd2 + '\'' + + ", elementAtEnd2='" + elementAtEnd2 + '\'' + ", status=" + getStatus() + ", type=" + getType() + ", origin=" + getOrigin() + @@ -313,8 +362,10 @@ public boolean equals(Object objectToCompare) Objects.equals(effectiveToTime, that.effectiveToTime) && Objects.equals(relationshipProperties, that.relationshipProperties) && Objects.equals(elementGUIDAtEnd1, that.elementGUIDAtEnd1) && + Objects.equals(elementAtEnd1, that.elementAtEnd1) && Objects.equals(labelAtEnd1, that.labelAtEnd1) && Objects.equals(elementGUIDAtEnd2, that.elementGUIDAtEnd2) && + Objects.equals(elementAtEnd2, that.elementAtEnd2) && Objects.equals(labelAtEnd2, that.labelAtEnd2); } @@ -328,6 +379,6 @@ public boolean equals(Object objectToCompare) public int hashCode() { return Objects.hash(super.hashCode(), relationshipGUID, relationshipType, effectiveFromTime, effectiveToTime, - relationshipProperties, elementGUIDAtEnd1, elementGUIDAtEnd1); + relationshipProperties, elementGUIDAtEnd1, elementGUIDAtEnd1, elementAtEnd1, elementAtEnd1); } } \ No newline at end of file diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyHelper.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyHelper.java index a489178892b..92d7a0f459a 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyHelper.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyHelper.java @@ -3,6 +3,7 @@ package org.odpi.openmetadata.frameworks.governanceaction.search; import org.odpi.openmetadata.frameworks.connectors.ffdc.InvalidParameterException; +import org.odpi.openmetadata.frameworks.connectors.properties.beans.ElementControlHeader; import org.odpi.openmetadata.frameworks.governanceaction.ffdc.GAFErrorCode; import org.odpi.openmetadata.frameworks.governanceaction.ffdc.GAFRuntimeException; @@ -62,6 +63,40 @@ public void validateMandatoryName(String name, } + /** + * Test the type of the element to determine if it matches the desired type. This method works for all categories of elements, + * ie entities, relationships and classifications. + * + * @param elementControlHeader header of the element to test + * @param expectedType expected type - nul means any type + * @return boolean result + */ + public boolean isTypeOf(ElementControlHeader elementControlHeader, + String expectedType) + { + if (expectedType == null) + { + return true; + } + + if ((elementControlHeader != null) && (elementControlHeader.getType() != null)) + { + List typeList = elementControlHeader.getType().getSuperTypeNames(); + + if (typeList == null) + { + typeList = new ArrayList<>(); + } + + typeList.add(expectedType); + + return typeList.contains(expectedType); + } + + return false; + } + + /** * Add the supplied primitive property to an element properties object. If the element property object * supplied is null, a new element properties object is created. @@ -188,9 +223,14 @@ public ElementProperties addDateProperty(ElementProperties properties, String propertyName, Date propertyValue) { - Long longValue = propertyValue.getTime(); + if (propertyValue != null) + { + Long longValue = propertyValue.getTime(); - return addPrimitivePropertyToInstance(properties, propertyName, longValue, PrimitiveTypeCategory.OM_PRIMITIVE_TYPE_DATE); + return addPrimitivePropertyToInstance(properties, propertyName, longValue, PrimitiveTypeCategory.OM_PRIMITIVE_TYPE_DATE); + } + + return properties; } @@ -666,6 +706,395 @@ public ElementProperties addStringPropertyMap(ElementProperties properties, } + /** + * Return the requested property or null if property is not found. If the property is found, it is removed from + * the InstanceProperties structure. If the property is not a string property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return string property value or null + */ + public String removeStringProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + String retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getStringProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + /** + * Retrieve the ordinal value from an enum property. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return symbolic name + */ + public String removeEnumProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + String retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getEnumPropertySymbolicName(sourceName, propertyName, properties, methodName); + this.removeProperty(propertyName, properties); + } + + return retrievedProperty; + } + + + /** + * Locates and extracts a property from an instance that is of type map and then converts its values into a Java map. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a map property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties values of the property + * @param methodName method of caller + * @return map property value or null + */ + public Map removeStringMapFromProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + Map retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getStringMapFromProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + + + /** + * Return the requested property or 0 if property is not found. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not an int property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return string property value or null + */ + public int removeIntProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + int retrievedProperty = 0; + + if (properties != null) + { + retrievedProperty = this.getIntProperty(sourceName, propertyName, properties, methodName); + + this.removeProperty(propertyName, properties); + } + + return retrievedProperty; + } + + + + /** + * Return the requested property or null if property is not found. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a date property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return string property value or null + */ + public Date removeDateProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + Date retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getDateProperty(sourceName, propertyName, properties, methodName); + + this.removeProperty(propertyName, properties); + } + + return retrievedProperty; + } + + + + /** + * Return the requested property or false if property is not found. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a boolean property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return string property value or null + */ + public boolean removeBooleanProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + boolean retrievedProperty = false; + + if (properties != null) + { + retrievedProperty = this.getBooleanProperty(sourceName, propertyName, properties, methodName); + + this.removeProperty(propertyName, properties); + } + + return retrievedProperty; + } + + + /** + * Return the requested property or 0 if property is not found. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a long property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return string property value or null + */ + public long removeLongProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + long retrievedProperty = 0; + + if (properties != null) + { + retrievedProperty = this.getLongProperty(sourceName, propertyName, properties, methodName); + + this.removeProperty(propertyName, properties); + } + + return retrievedProperty; + } + + + /** + * Locates and extracts a string array property and extracts its values. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not an array property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties all the properties of the instance + * @param methodName method of caller + * @return array property value or null + */ + public List removeStringArrayProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + List retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getStringArrayProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + + /** + * Locates and extracts a property from an instance that is of type map and then converts its values into a Java map. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a map property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties values of the property + * @param methodName method of caller + * @return map property value or null + */ + public Map removeMapFromProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + Map retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getMapFromProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + + + /** + * Locates and extracts a property from an instance that is of type map and then converts its values into a Java map. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a map property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties values of the property + * @param methodName method of caller + * @return map property value or null + */ + public Map removeLongMapFromProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + Map retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getLongMapFromProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + + + /** + * Locates and extracts a property from an instance that is of type map and then converts its values into a Java map. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a map property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties values of the property + * @param methodName method of caller + * @return map property value or null + */ + public Map removeIntegerMapFromProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + Map retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getIntegerMapFromProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + + /** + * Locates and extracts a property from an instance that is of type map and then converts its values into a Java map. + * If the property is found, it is removed from the InstanceProperties structure. + * If the property is not a map property then a logic exception is thrown. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties values of the property + * @param methodName method of caller + * @return map property value or null + */ + public Map removeBooleanMapFromProperty(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + Map retrievedProperty = null; + + if (properties != null) + { + retrievedProperty = this.getBooleanMapFromProperty(sourceName, propertyName, properties, methodName); + + if (retrievedProperty != null) + { + this.removeProperty(propertyName, properties); + } + } + + return retrievedProperty; + } + + + /** + * Remove the named property from the instance properties object. + * + * @param propertyName name of property to remove + * @param properties instance properties object to work on + */ + protected void removeProperty(String propertyName, ElementProperties properties) + { + if (properties != null) + { + Map instancePropertyValueMap = properties.getPropertyValueMap(); + + if (instancePropertyValueMap != null) + { + instancePropertyValueMap.remove(propertyName); + properties.setPropertyValueMap(instancePropertyValueMap); + } + } + } + /** * Locates and extracts a property from an instance that is of type map and then converts its values into a Java map. @@ -865,7 +1294,32 @@ public Map getMapFromProperty(String sourceName, return null; } - + + + /** + * Retrieve the ordinal value from an enum property. + * + * @param sourceName source of call + * @param propertyName name of requested property + * @param properties properties from the instance. + * @param methodName method of caller + * @return int ordinal or -1 if not found + */ + public String getEnumPropertySymbolicName(String sourceName, + String propertyName, + ElementProperties properties, + String methodName) + { + PropertyValue instancePropertyValue = properties.getPropertyValue(propertyName); + + if (instancePropertyValue instanceof EnumTypePropertyValue enumTypePropertyValue) + { + return enumTypePropertyValue.getSymbolicName(); + } + + return null; + } + /** * Convert an element properties object into a map. @@ -954,6 +1408,91 @@ public String getStringProperty(String sourceName, } + /** + * Locates and extracts a string array property and extracts its values. + * + * @param sourceName source of call + * @param propertyName name of requested map property + * @param properties all the properties of the instance + * @param callingMethodName method of caller + * @return array property value or null + */ + public List getStringArrayProperty(String sourceName, + String propertyName, + ElementProperties properties, + String callingMethodName) + { + final String thisMethodName = "getStringArrayProperty"; + + if (properties != null) + { + PropertyValue instancePropertyValue = properties.getPropertyValue(propertyName); + + if (instancePropertyValue != null) + { + /* + * The property exists in the supplied properties. It should be of category ARRAY. + * If it is then it can be cast to an ArrayPropertyValue in order to extract the + * array size and the values. + */ + + try + { + if (instancePropertyValue instanceof ArrayTypePropertyValue arrayPropertyValue) + { + if (arrayPropertyValue.getArrayCount() > 0) + { + /* + * There are values to extract + */ + return getPropertiesAsArray(arrayPropertyValue.getArrayValues()); + } + } + } + catch (Exception error) + { + throwHelperLogicError(sourceName, callingMethodName, thisMethodName); + } + } + } + + return null; + } + + + /** + * Convert the values in the instance properties into a String Array. It assumes all the elements are primitives. + * + * @param elementProperties instance properties containing the values. They should all be primitive Strings. + * @return list of strings + */ + private List getPropertiesAsArray(ElementProperties elementProperties) + { + if (elementProperties != null) + { + Map instancePropertyValues = elementProperties.getPropertyValueMap(); + List resultingArray = new ArrayList<>(); + + for (String arrayOrdinalName : instancePropertyValues.keySet()) + { + if (arrayOrdinalName != null) + { + int arrayOrdinalNumber = Integer.decode(arrayOrdinalName); + PropertyValue actualPropertyValue = elementProperties.getPropertyValue(arrayOrdinalName); + + if (actualPropertyValue instanceof PrimitiveTypePropertyValue primitiveTypePropertyValue) + { + resultingArray.add(arrayOrdinalNumber, primitiveTypePropertyValue.getPrimitiveValue().toString()); + } + } + } + + return resultingArray; + } + + return null; + } + /** * Return the requested property or 0 if property is not found. If the property is not @@ -1005,7 +1544,7 @@ public int getIntProperty(String sourceName, /** * Return the requested property or 0 if property is not found. If the property is not - * an long property then a logic exception is thrown. + * a long property then a logic exception is thrown. * * @param sourceName source of call * @param propertyName name of requested property diff --git a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyValue.java b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyValue.java index 9f52fe463e9..2e3d5748004 100644 --- a/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyValue.java +++ b/open-metadata-implementation/frameworks/governance-action-framework/src/main/java/org/odpi/openmetadata/frameworks/governanceaction/search/PropertyValue.java @@ -4,8 +4,6 @@ import com.fasterxml.jackson.annotation.*; -import java.io.Serial; -import java.io.Serializable; import java.util.*; import java.util.function.Function; import java.util.stream.Stream; @@ -30,11 +28,8 @@ @JsonSubTypes.Type(value = PrimitiveTypePropertyValue.class, name = "PrimitiveTypePropertyValue"), @JsonSubTypes.Type(value = StructTypePropertyValue.class, name = "StructTypePropertyValue") }) -public abstract class PropertyValue implements Serializable +public abstract class PropertyValue { - @Serial - private static final long serialVersionUID = 1L; - /* * Common type information that is this is augmented by the subclasses */ diff --git a/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassification.java b/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassification.java index 6fd6560bbe4..8a286b7e6bc 100644 --- a/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassification.java +++ b/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassification.java @@ -51,6 +51,17 @@ public ElementClassification(ElementClassification template) } + /** + * Copy/clone constructor + * + * @param template template to copy + */ + public ElementClassification(ElementClassificationHeader template) + { + super(template); + } + + /** * Set up the name of the classification. This name is the type name defined in a ClassificationDef type definition. * diff --git a/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassificationHeader.java b/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassificationHeader.java index 6795a6b7593..c2d1dea4104 100644 --- a/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassificationHeader.java +++ b/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementClassificationHeader.java @@ -60,6 +60,17 @@ public ElementClassificationHeader(ElementClassificationHeader template) } + /** + * Copy/clone constructor + * + * @param template template to copy + */ + public ElementClassificationHeader(ElementControlHeader template) + { + super(template); + } + + /** * Return whether the classification was added explicitly to this asset or propagated from another entity. * diff --git a/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementHeader.java b/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementHeader.java index 3ce44fb1d6f..571b6c18453 100644 --- a/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementHeader.java +++ b/open-metadata-implementation/frameworks/open-connector-framework/src/main/java/org/odpi/openmetadata/frameworks/connectors/properties/beans/ElementHeader.java @@ -68,6 +68,17 @@ public ElementHeader(ElementHeader template) } + /** + * Copy/clone constructor. + * + * @param template element to copy + */ + public ElementHeader(ElementControlHeader template) + { + super(template); + } + + /** * Return the unique id for the properties object. Null means no guid is assigned. * diff --git a/open-metadata-implementation/frameworks/open-integration-framework/src/main/java/org/odpi/openmetadata/frameworks/integration/context/OpenMetadataAccess.java b/open-metadata-implementation/frameworks/open-integration-framework/src/main/java/org/odpi/openmetadata/frameworks/integration/context/OpenMetadataAccess.java index b8bcc4767aa..7fe73eb7672 100644 --- a/open-metadata-implementation/frameworks/open-integration-framework/src/main/java/org/odpi/openmetadata/frameworks/integration/context/OpenMetadataAccess.java +++ b/open-metadata-implementation/frameworks/open-integration-framework/src/main/java/org/odpi/openmetadata/frameworks/integration/context/OpenMetadataAccess.java @@ -176,6 +176,43 @@ public List findMetadataElementsWithString(String searchSt } + /** + * Retrieve the metadata elements of the requested type that contain the requested string. + * + * @param searchString name to retrieve + * @param typeName name of the type to limit the results to (may be null to mean all types) + * @param forLineage the retrieved elements are for lineage processing so include archived elements + * @param forDuplicateProcessing the retrieved elements are for duplicate processing so do not combine results from known duplicates. + * @param effectiveTime only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now. + * @param startFrom paging start point + * @param pageSize maximum results that can be returned + * + * @return list of matching metadata elements (or null if no elements match the name) + * @throws InvalidParameterException the qualified name is null + * @throws UserNotAuthorizedException the governance action service is not able to access the element + * @throws PropertyServerException there is a problem accessing the metadata store + */ + public List findMetadataElementsWithString(String searchString, + String typeName, + boolean forLineage, + boolean forDuplicateProcessing, + Date effectiveTime, + int startFrom, + int pageSize) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException + { + return openMetadataStore.findMetadataElementsWithString(userId, + searchString, + typeName, + forLineage, + forDuplicateProcessing, + effectiveTime, + startFrom, + pageSize); + } + + /** * Retrieve the metadata elements connected to the supplied element. * diff --git a/open-metadata-implementation/integration-services/catalog-integrator/catalog-integrator-api/src/main/java/org/odpi/openmetadata/integrationservices/catalog/connector/OpenMetadataExchangeService.java b/open-metadata-implementation/integration-services/catalog-integrator/catalog-integrator-api/src/main/java/org/odpi/openmetadata/integrationservices/catalog/connector/OpenMetadataExchangeService.java index 6c4c7cdee6d..bb2a81ccf17 100644 --- a/open-metadata-implementation/integration-services/catalog-integrator/catalog-integrator-api/src/main/java/org/odpi/openmetadata/integrationservices/catalog/connector/OpenMetadataExchangeService.java +++ b/open-metadata-implementation/integration-services/catalog-integrator/catalog-integrator-api/src/main/java/org/odpi/openmetadata/integrationservices/catalog/connector/OpenMetadataExchangeService.java @@ -253,6 +253,41 @@ public List findMetadataElementsWithString(String searchSt } + /** + * Retrieve the metadata elements of the requested type that contain the requested string. + * + * @param searchString name to retrieve + * @param typeName name of the type to limit the results to (may be null to mean all types) + * @param effectiveTime only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now. + * @param startFrom paging start point + * @param pageSize maximum results that can be returned + * + * @return list of matching metadata elements (or null if no elements match the name) + * + * @throws InvalidParameterException the qualified name is null + * @throws UserNotAuthorizedException the governance action service is not able to access the element + * @throws PropertyServerException there is a problem accessing the metadata store + */ + public List findMetadataElementsWithString(String searchString, + String typeName, + Date effectiveTime, + int startFrom, + int pageSize) throws InvalidParameterException, + UserNotAuthorizedException, + PropertyServerException + { + return openMetadataStoreClient.findMetadataElementsWithString(userId, + searchString, + typeName, + forLineage, + forDuplicateProcessing, + effectiveTime, + startFrom, + pageSize); + } + + + /** * Retrieve the metadata elements connected to the supplied element. * diff --git a/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive.java b/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive.java index bbc89f829ce..5cafb310c40 100644 --- a/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive.java +++ b/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive.java @@ -7,6 +7,7 @@ import org.odpi.openmetadata.repositoryservices.archiveutilities.OMRSArchiveHelper; import org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchive; import org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchiveType; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.ClassificationDef; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.EntityDef; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefAttribute; import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefPatch; @@ -39,7 +40,7 @@ public class OpenMetadataTypesArchive private static final String archiveName = "Open Metadata Types"; private static final String archiveDescription = "Standard types for open metadata repositories."; private static final OpenMetadataArchiveType archiveType = OpenMetadataArchiveType.CONTENT_PACK; - private static final String archiveVersion = "4.3"; + private static final String archiveVersion = "4.4"; private static final String originatorName = "Egeria"; private static final String originatorLicense = "Apache-2.0"; private static final Date creationDate = new Date(1588261366992L); @@ -147,7 +148,7 @@ public OpenMetadataArchive getOpenMetadataArchive() */ public void getOriginalTypes() { - OpenMetadataTypesArchive4_2 previousTypes = new OpenMetadataTypesArchive4_2(archiveBuilder); + OpenMetadataTypesArchive4_3 previousTypes = new OpenMetadataTypesArchive4_3(archiveBuilder); /* * Pull the types from previous releases. @@ -157,15 +158,9 @@ public void getOriginalTypes() /* * Add the type updates */ - update0010Base(); - update0017ExternalIdentifiers(); - update0035Hosts(); - update0112People(); + update0021Collections(); + update0130Projects(); update0210DataStores(); - update0212APIs(); - update0224Databases(); - update0215SoftwareComponents(); - update0223Events(); } @@ -173,18 +168,18 @@ public void getOriginalTypes() * ------------------------------------------------------------------------------------------------------- */ - private void update0010Base() + private void update0021Collections() { - this.archiveBuilder.addTypeDefPatch(updateDataSet()); + this.archiveBuilder.addTypeDefPatch(updateCollection()); + this.archiveBuilder.addClassificationDef(getRootCollectionClassification()); } - - private TypeDefPatch updateDataSet() + private TypeDefPatch updateCollection() { /* * Create the Patch */ - final String typeName = "DataSet"; + final String typeName = "Collection"; TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); @@ -197,8 +192,8 @@ private TypeDefPatch updateDataSet() List properties = new ArrayList<>(); TypeDefAttribute property; - final String attribute1Name = "deployedImplementationType"; - final String attribute1Description = "Name of the technology used to implement this data set."; + final String attribute1Name = "collectionType"; + final String attribute1Description = "Descriptive name of the concept that this collection represents."; final String attribute1DescriptionGUID = null; property = archiveHelper.getStringTypeDefAttribute(attribute1Name, @@ -211,128 +206,50 @@ private TypeDefPatch updateDataSet() return typeDefPatch; } - - - /* - * ------------------------------------------------------------------------------------------------------- - */ - - private void update0017ExternalIdentifiers() - { - this.archiveBuilder.addTypeDefPatch(updateExternalId()); - } - - - private TypeDefPatch updateExternalId() + private ClassificationDef getRootCollectionClassification() { - /* - * Create the Patch - */ - final String typeName = "ExternalId"; - - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); - - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); - - /* - * Build the attributes - */ - List properties = new ArrayList<>(); - TypeDefAttribute property; - - final String attribute1Name = "externalInstanceCreatedBy"; - final String attribute1Description = "The username of the person or process that created the instance in the external system."; - final String attribute1DescriptionGUID = null; - final String attribute2Name = "externalInstanceCreationTime"; - final String attribute2Description = "The date/time when the instance in the external system was created."; - final String attribute2DescriptionGUID = null; - final String attribute3Name = "externalInstanceLastUpdatedBy"; - final String attribute3Description = "The username of the person or process that last updated the instance in the external system."; - final String attribute3DescriptionGUID = null; - final String attribute4Name = "externalInstanceLastUpdateTime"; - final String attribute4Description = "The date/time when the instance in the external system was last updated."; - final String attribute4DescriptionGUID = null; - final String attribute5Name = "externalInstanceVersion"; - final String attribute5Description = "The latest version of the element in the external system."; - final String attribute5DescriptionGUID = null; - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); - properties.add(property); - property = archiveHelper.getDateTypeDefAttribute(attribute2Name, - attribute2Description, - attribute2DescriptionGUID); - properties.add(property); - property = archiveHelper.getStringTypeDefAttribute(attribute3Name, - attribute3Description, - attribute3DescriptionGUID); - properties.add(property); - property = archiveHelper.getDateTypeDefAttribute(attribute4Name, - attribute4Description, - attribute4DescriptionGUID); - properties.add(property); - property = archiveHelper.getLongTypeDefAttribute(attribute5Name, - attribute5Description, - attribute5DescriptionGUID); - properties.add(property); + final String guid = "9fdb6d71-fd69-4c40-81f3-5eab1c44d1f4"; + final String name = "RootCollection"; + final String description = "This collection is the root collection in a collection hierarchy."; + final String descriptionGUID = null; - typeDefPatch.setPropertyDefinitions(properties); + final String linkedToEntity = "Collection"; - return typeDefPatch; + return archiveHelper.getClassificationDef(guid, + name, + null, + description, + descriptionGUID, + this.archiveBuilder.getEntityDef(linkedToEntity), + false); } - - /* * ------------------------------------------------------------------------------------------------------- */ - private void update0035Hosts() + private void update0130Projects() { - this.archiveBuilder.addTypeDefPatch(updateHostClusterMemberRelationship()); + this.archiveBuilder.addClassificationDef(getPersonalProjectClassification()); } - private TypeDefPatch updateHostClusterMemberRelationship() + private ClassificationDef getPersonalProjectClassification() { - /* - * Create the Patch - */ - final String typeName = "HostClusterMember"; - - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); - - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); - - /* - * Build the attributes - */ - List properties = new ArrayList<>(); - TypeDefAttribute property; - - final String attribute1Name = "memberRole"; - final String attribute1Description = "The role of the member in the host cluster. This value is typically defined by the technology of the host cluster."; - final String attribute1DescriptionGUID = null; - final String attribute2Name = "additionalProperties"; - final String attribute2Description = "Additional properties that define the configuration and properties of the member."; - final String attribute2DescriptionGUID = null; - - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); - properties.add(property); - property = archiveHelper.getMapStringStringTypeDefAttribute(attribute2Name, - attribute2Description, - attribute2DescriptionGUID); - properties.add(property); + final String guid = "3d7b8500-cebd-4f18-b85c-a459bec3e3ef"; + final String name = "PersonalProject"; + final String description = "This is an informal project that has been created by an individual to help them organize their work."; + final String descriptionGUID = null; - typeDefPatch.setPropertyDefinitions(properties); + final String linkedToEntity = "Project"; - return typeDefPatch; + return archiveHelper.getClassificationDef(guid, + name, + null, + description, + descriptionGUID, + this.archiveBuilder.getEntityDef(linkedToEntity), + false); } @@ -340,23 +257,28 @@ private TypeDefPatch updateHostClusterMemberRelationship() * ------------------------------------------------------------------------------------------------------- */ - private void update0112People() + private void update0210DataStores() { - this.archiveBuilder.addTypeDefPatch(updatePerson()); + this.archiveBuilder.addClassificationDef(getDataScopeClassification()); } - private TypeDefPatch updatePerson() + private ClassificationDef getDataScopeClassification() { - /* - * Create the Patch - */ - final String typeName = "Person"; + final String guid = "22f996d0-c4b7-433a-af0b-6a3e9478e488"; + final String name = "DataScope"; + final String description = "Defines the scope of the data held in the associated data resource."; + final String descriptionGUID = null; - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + final String linkedToEntity = "Referenceable"; - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); + ClassificationDef classificationDef = archiveHelper.getClassificationDef(guid, + name, + null, + description, + descriptionGUID, + this.archiveBuilder.getEntityDef(linkedToEntity), + false); /* * Build the attributes @@ -364,229 +286,67 @@ private TypeDefPatch updatePerson() List properties = new ArrayList<>(); TypeDefAttribute property; - final String attribute1Name = "residentCountry"; - final String attribute1Description = "Country that is the person's primary residence."; + final String attribute1Name = "minimumLongitude"; + final String attribute1Description = "If the data is bound by an area, this is the longitude for bottom-left corner of the bounding box (BBOX) for the area covered by the data."; final String attribute1DescriptionGUID = null; - final String attribute2Name = "timeZone"; - final String attribute2Description = "Principle time zone where this person is located."; + final String attribute2Name = "minimumLatitude"; + final String attribute2Description = "If the data is bound by an area, this is the latitude for the bottom-left corner of the bounding box (BBOX) for the area covered by the data."; final String attribute2DescriptionGUID = null; - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); + final String attribute3Name = "maxLongitude"; + final String attribute3Description = "If the data is bound by an area, this is the longitude for top-right corner of the bounding box (BBOX) for the area covered by the data.."; + final String attribute3DescriptionGUID = null; + final String attribute4Name = "maxLatitude"; + final String attribute4Description = "If the data is bound by an area, this is the latitude for top-right corner of the bounding box (BBOX) for the area covered by the data."; + final String attribute4DescriptionGUID = null; + final String attribute5Name = "minHeight"; + final String attribute5Description = "If the height above ground is relevant, this is the lowest height that the data covers."; + final String attribute5DescriptionGUID = null; + final String attribute6Name = "maxHeight"; + final String attribute6Description = "If the height above ground is relevant, this is the highest height that the data covers."; + final String attribute6DescriptionGUID = null; + final String attribute7Name = "startTime"; + final String attribute7Description = "If the data is bound by time, this is the start time."; + final String attribute7DescriptionGUID = null; + final String attribute8Name = "endTime"; + final String attribute8Description = "If the data is bound by time, this is the end time."; + final String attribute8DescriptionGUID = null; + + property = archiveHelper.getFloatTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); properties.add(property); - property = archiveHelper.getStringTypeDefAttribute(attribute2Name, - attribute2Description, - attribute2DescriptionGUID); + property = archiveHelper.getFloatTypeDefAttribute(attribute2Name, + attribute2Description, + attribute2DescriptionGUID); properties.add(property); - - typeDefPatch.setPropertyDefinitions(properties); - - return typeDefPatch; - } - - - - /* - * ------------------------------------------------------------------------------------------------------- - */ - - private void update0210DataStores() - { - this.archiveBuilder.addTypeDefPatch(updateDataStore()); - } - - - private TypeDefPatch updateDataStore() - { - /* - * Create the Patch - */ - final String typeName = "DataStore"; - - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); - - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); - - /* - * Build the attributes - */ - List properties = new ArrayList<>(); - TypeDefAttribute property; - - final String attribute1Name = "deployedImplementationType"; - final String attribute1Description = "Name of the technology used to implement this data store."; - final String attribute1DescriptionGUID = null; - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); + property = archiveHelper.getFloatTypeDefAttribute(attribute3Name, + attribute3Description, + attribute3DescriptionGUID); properties.add(property); - - typeDefPatch.setPropertyDefinitions(properties); - - return typeDefPatch; - } - - - /* - * ------------------------------------------------------------------------------------------------------- - */ - - private void update0212APIs() - { - this.archiveBuilder.addTypeDefPatch(updateDeployedAPI()); - } - - - private TypeDefPatch updateDeployedAPI() - { - /* - * Create the Patch - */ - final String typeName = "DeployedAPI"; - - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); - - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); - - /* - * Build the attributes - */ - List properties = new ArrayList<>(); - TypeDefAttribute property; - - final String attribute1Name = "deployedImplementationType"; - final String attribute1Description = "Name of the technology used to implement this API."; - final String attribute1DescriptionGUID = null; - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); + property = archiveHelper.getFloatTypeDefAttribute(attribute4Name, + attribute4Description, + attribute4DescriptionGUID); properties.add(property); - - typeDefPatch.setPropertyDefinitions(properties); - - return typeDefPatch; - } - - - /* - * ------------------------------------------------------------------------------------------------------- - */ - - private void update0215SoftwareComponents() - { - this.archiveBuilder.addTypeDefPatch(updateDeployedSoftwareComponent()); - } - - - private TypeDefPatch updateDeployedSoftwareComponent() - { - /* - * Create the Patch - */ - final String typeName = "DeployedSoftwareComponent"; - - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); - - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); - - /* - * Build the attributes - */ - List properties = new ArrayList<>(); - TypeDefAttribute property; - - final String attribute1Name = "deployedImplementationType"; - final String attribute1Description = "Name of the technology used to implement this component."; - final String attribute1DescriptionGUID = null; - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); + property = archiveHelper.getFloatTypeDefAttribute(attribute5Name, + attribute5Description, + attribute5DescriptionGUID); properties.add(property); - - typeDefPatch.setPropertyDefinitions(properties); - - return typeDefPatch; - } - - - - /* - * ------------------------------------------------------------------------------------------------------- - */ - - private void update0223Events() - { - this.archiveBuilder.addTypeDefPatch(updateDataFeed()); - } - - - private TypeDefPatch updateDataFeed() - { - /* - * Create the Patch - */ - final String typeName = "DataFeed"; - - TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); - - typeDefPatch.setUpdatedBy(originatorName); - typeDefPatch.setUpdateTime(creationDate); - - /* - * Build the attributes - */ - List properties = new ArrayList<>(); - TypeDefAttribute property; - - final String attribute1Name = "deployedImplementationType"; - final String attribute1Description = "Name of the technology used to implement this data feed."; - final String attribute1DescriptionGUID = null; - - property = archiveHelper.getStringTypeDefAttribute(attribute1Name, - attribute1Description, - attribute1DescriptionGUID); + property = archiveHelper.getFloatTypeDefAttribute(attribute6Name, + attribute6Description, + attribute6DescriptionGUID); + properties.add(property); + property = archiveHelper.getDateTypeDefAttribute(attribute7Name, + attribute7Description, + attribute7DescriptionGUID); + properties.add(property); + property = archiveHelper.getDateTypeDefAttribute(attribute8Name, + attribute8Description, + attribute8DescriptionGUID); properties.add(property); - typeDefPatch.setPropertyDefinitions(properties); - - return typeDefPatch; - } - - - - /* - * ------------------------------------------------------------------------------------------------------- - */ - - private void update0224Databases() - { - this.archiveBuilder.addEntityDef(addRelationalDatabaseEntity()); - } - - - - private EntityDef addRelationalDatabaseEntity() - { - final String guid = "6a28e242-4eca-4664-81cb-e2096d769568"; - - final String name = "RelationalDatabase"; - final String description = "A database that follows the relational schema (tables and columns) and can be accessed through Java Database Connectivity (JDBC)."; - final String descriptionGUID = null; - - final String superTypeName = "Database"; + classificationDef.setPropertiesDefinition(properties); - return archiveHelper.getDefaultEntityDef(guid, - name, - this.archiveBuilder.getEntityDef(superTypeName), - description, - descriptionGUID); + return classificationDef; } diff --git a/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive4_3.java b/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive4_3.java new file mode 100644 index 00000000000..7c53fc108c6 --- /dev/null +++ b/open-metadata-resources/open-metadata-archives/open-metadata-types/src/main/java/org/odpi/openmetadata/opentypes/OpenMetadataTypesArchive4_3.java @@ -0,0 +1,597 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* Copyright Contributors to the ODPi Egeria project. */ +package org.odpi.openmetadata.opentypes; + + +import org.odpi.openmetadata.repositoryservices.archiveutilities.OMRSArchiveBuilder; +import org.odpi.openmetadata.repositoryservices.archiveutilities.OMRSArchiveHelper; +import org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchive; +import org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchiveType; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.EntityDef; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefAttribute; +import org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.properties.typedefs.TypeDefPatch; +import org.odpi.openmetadata.repositoryservices.ffdc.OMRSErrorCode; +import org.odpi.openmetadata.repositoryservices.ffdc.exception.OMRSLogicErrorException; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * OpenMetadataTypesArchive builds an open metadata archive containing all the standard open metadata types. + * These types have hardcoded dates and guids so that however many times this archive is rebuilt, it will + * produce the same content. + *

+ * Details of the open metadata types are documented on the wiki: + * The Open Metadata Type System + *

+ *

+ * There are 8 areas, each covering a different topic area of metadata. The module breaks down the process of creating + * the models into the areas and then the individual models to simplify the maintenance of this class + *

+ */ +public class OpenMetadataTypesArchive4_3 +{ + /* + * This is the header information for the archive. + */ + private static final String archiveGUID = "bce3b0a0-662a-4f87-b8dc-844078a11a6e"; + private static final String archiveName = "Open Metadata Types"; + private static final String archiveDescription = "Standard types for open metadata repositories."; + private static final OpenMetadataArchiveType archiveType = OpenMetadataArchiveType.CONTENT_PACK; + private static final String archiveVersion = "4.3"; + private static final String originatorName = "Egeria"; + private static final String originatorLicense = "Apache-2.0"; + private static final Date creationDate = new Date(1588261366992L); + + /* + * Specific values for initializing TypeDefs + */ + private static final long versionNumber = 1L; + private static final String versionName = "1.0"; + + + private final OMRSArchiveBuilder archiveBuilder; + private final OMRSArchiveHelper archiveHelper; + + /** + * Default constructor sets up the archive builder. This in turn sets up the header for the archive. + */ + public OpenMetadataTypesArchive4_3() + { + this.archiveBuilder = new OMRSArchiveBuilder(archiveGUID, + archiveName, + archiveDescription, + archiveType, + archiveVersion, + originatorName, + originatorLicense, + creationDate, + null); + + this.archiveHelper = new OMRSArchiveHelper(archiveBuilder, + archiveGUID, + originatorName, + creationDate, + versionNumber, + versionName); + } + + + /** + * Chained constructor sets up the archive builder. This in turn sets up the header for the archive. + * + * @param archiveBuilder accumulator for types + */ + public OpenMetadataTypesArchive4_3(OMRSArchiveBuilder archiveBuilder) + { + this.archiveBuilder = archiveBuilder; + + this.archiveHelper = new OMRSArchiveHelper(archiveBuilder, + archiveGUID, + originatorName, + creationDate, + versionNumber, + versionName); + } + + + /** + * Return the unique identifier for this archive. + * + * @return String guid + */ + public String getArchiveGUID() + { + return archiveGUID; + } + + + /** + * Returns the open metadata type archive containing all the standard open metadata types. + * + * @return populated open metadata archive object + */ + public OpenMetadataArchive getOpenMetadataArchive() + { + final String methodName = "getOpenMetadataArchive"; + + if (this.archiveBuilder != null) + { + /* + * Build the type archive. + */ + this.getOriginalTypes(); + + /* + * The completed archive is ready to be packaged up and returned + */ + return this.archiveBuilder.getOpenMetadataArchive(); + } + else + { + /* + * This is a logic error since it means the creation of the archive builder threw an exception + * in the constructor and so this object should not be used. + */ + throw new OMRSLogicErrorException(OMRSErrorCode.ARCHIVE_UNAVAILABLE.getMessageDefinition(), + this.getClass().getName(), + methodName); + } + } + + + /** + * Add the types from this archive to the archive builder supplied in the + * constructor. + */ + public void getOriginalTypes() + { + OpenMetadataTypesArchive4_2 previousTypes = new OpenMetadataTypesArchive4_2(archiveBuilder); + + /* + * Pull the types from previous releases. + */ + previousTypes.getOriginalTypes(); + + /* + * Add the type updates + */ + update0010Base(); + update0017ExternalIdentifiers(); + update0035Hosts(); + update0112People(); + update0210DataStores(); + update0212APIs(); + update0224Databases(); + update0215SoftwareComponents(); + update0223Events(); + } + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0010Base() + { + this.archiveBuilder.addTypeDefPatch(updateDataSet()); + } + + + private TypeDefPatch updateDataSet() + { + /* + * Create the Patch + */ + final String typeName = "DataSet"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "deployedImplementationType"; + final String attribute1Description = "Name of the technology used to implement this data set."; + final String attribute1DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0017ExternalIdentifiers() + { + this.archiveBuilder.addTypeDefPatch(updateExternalId()); + } + + + private TypeDefPatch updateExternalId() + { + /* + * Create the Patch + */ + final String typeName = "ExternalId"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "externalInstanceCreatedBy"; + final String attribute1Description = "The username of the person or process that created the instance in the external system."; + final String attribute1DescriptionGUID = null; + final String attribute2Name = "externalInstanceCreationTime"; + final String attribute2Description = "The date/time when the instance in the external system was created."; + final String attribute2DescriptionGUID = null; + final String attribute3Name = "externalInstanceLastUpdatedBy"; + final String attribute3Description = "The username of the person or process that last updated the instance in the external system."; + final String attribute3DescriptionGUID = null; + final String attribute4Name = "externalInstanceLastUpdateTime"; + final String attribute4Description = "The date/time when the instance in the external system was last updated."; + final String attribute4DescriptionGUID = null; + final String attribute5Name = "externalInstanceVersion"; + final String attribute5Description = "The latest version of the element in the external system."; + final String attribute5DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + property = archiveHelper.getDateTypeDefAttribute(attribute2Name, + attribute2Description, + attribute2DescriptionGUID); + properties.add(property); + property = archiveHelper.getStringTypeDefAttribute(attribute3Name, + attribute3Description, + attribute3DescriptionGUID); + properties.add(property); + property = archiveHelper.getDateTypeDefAttribute(attribute4Name, + attribute4Description, + attribute4DescriptionGUID); + properties.add(property); + property = archiveHelper.getLongTypeDefAttribute(attribute5Name, + attribute5Description, + attribute5DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0035Hosts() + { + this.archiveBuilder.addTypeDefPatch(updateHostClusterMemberRelationship()); + } + + + private TypeDefPatch updateHostClusterMemberRelationship() + { + /* + * Create the Patch + */ + final String typeName = "HostClusterMember"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "memberRole"; + final String attribute1Description = "The role of the member in the host cluster. This value is typically defined by the technology of the host cluster."; + final String attribute1DescriptionGUID = null; + final String attribute2Name = "additionalProperties"; + final String attribute2Description = "Additional properties that define the configuration and properties of the member."; + final String attribute2DescriptionGUID = null; + + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + property = archiveHelper.getMapStringStringTypeDefAttribute(attribute2Name, + attribute2Description, + attribute2DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0112People() + { + this.archiveBuilder.addTypeDefPatch(updatePerson()); + } + + + private TypeDefPatch updatePerson() + { + /* + * Create the Patch + */ + final String typeName = "Person"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "residentCountry"; + final String attribute1Description = "Country that is the person's primary residence."; + final String attribute1DescriptionGUID = null; + final String attribute2Name = "timeZone"; + final String attribute2Description = "Principle time zone where this person is located."; + final String attribute2DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + property = archiveHelper.getStringTypeDefAttribute(attribute2Name, + attribute2Description, + attribute2DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0210DataStores() + { + this.archiveBuilder.addTypeDefPatch(updateDataStore()); + } + + + private TypeDefPatch updateDataStore() + { + /* + * Create the Patch + */ + final String typeName = "DataStore"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "deployedImplementationType"; + final String attribute1Description = "Name of the technology used to implement this data store."; + final String attribute1DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0212APIs() + { + this.archiveBuilder.addTypeDefPatch(updateDeployedAPI()); + } + + + private TypeDefPatch updateDeployedAPI() + { + /* + * Create the Patch + */ + final String typeName = "DeployedAPI"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "deployedImplementationType"; + final String attribute1Description = "Name of the technology used to implement this API."; + final String attribute1DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0215SoftwareComponents() + { + this.archiveBuilder.addTypeDefPatch(updateDeployedSoftwareComponent()); + } + + + private TypeDefPatch updateDeployedSoftwareComponent() + { + /* + * Create the Patch + */ + final String typeName = "DeployedSoftwareComponent"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "deployedImplementationType"; + final String attribute1Description = "Name of the technology used to implement this component."; + final String attribute1DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0223Events() + { + this.archiveBuilder.addTypeDefPatch(updateDataFeed()); + } + + + private TypeDefPatch updateDataFeed() + { + /* + * Create the Patch + */ + final String typeName = "DataFeed"; + + TypeDefPatch typeDefPatch = archiveBuilder.getPatchForType(typeName); + + typeDefPatch.setUpdatedBy(originatorName); + typeDefPatch.setUpdateTime(creationDate); + + /* + * Build the attributes + */ + List properties = new ArrayList<>(); + TypeDefAttribute property; + + final String attribute1Name = "deployedImplementationType"; + final String attribute1Description = "Name of the technology used to implement this data feed."; + final String attribute1DescriptionGUID = null; + + property = archiveHelper.getStringTypeDefAttribute(attribute1Name, + attribute1Description, + attribute1DescriptionGUID); + properties.add(property); + + typeDefPatch.setPropertyDefinitions(properties); + + return typeDefPatch; + } + + + + /* + * ------------------------------------------------------------------------------------------------------- + */ + + private void update0224Databases() + { + this.archiveBuilder.addEntityDef(addRelationalDatabaseEntity()); + } + + + + private EntityDef addRelationalDatabaseEntity() + { + final String guid = "6a28e242-4eca-4664-81cb-e2096d769568"; + + final String name = "RelationalDatabase"; + final String description = "A database that follows the relational schema (tables and columns) and can be accessed through Java Database Connectivity (JDBC)."; + final String descriptionGUID = null; + + final String superTypeName = "Database"; + + return archiveHelper.getDefaultEntityDef(guid, + name, + this.archiveBuilder.getEntityDef(superTypeName), + description, + descriptionGUID); + } + + + /* + * ------------------------------------------------------------------------------------------------------- + */ +} +