Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright Contributors to the ODPi Egeria project. */
package org.odpi.openmetadata.accessservices.itinfrastructure.properties;
import com.fasterxml.jackson.annotation.*;
import java.io.Serializable;
import java.util.*;
import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
/**
* Many open metadata entities are referenceable. It means that they have a qualified name and additional
* properties. In addition the Referenceable class adds support for the parent asset, guid, url and type
* for the entity through extending ElementHeader.
*/
@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown=true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "class")
@JsonSubTypes(
{
@JsonSubTypes.Type(value = AssetProperties.class, name = "AssetProperties"),
@JsonSubTypes.Type(value = EndpointProperties.class, name = "EndpointProperties"),
@JsonSubTypes.Type(value = SoftwareServerCapabilitiesProperties.class, name = "SoftwareServerCapabilitiesProperties"),
})
public class ConfigurationItemProperties implements Serializable
{
private static final long serialVersionUID = 1L;
private String qualifiedName = null;
private Map additionalProperties = null;
private List meanings = null;
private List classifications = null;
private Map vendorProperties = null;
private String typeName = null;
private Map extendedProperties = null;
/**
* Default constructor
*/
public ConfigurationItemProperties()
{
super();
}
/**
* Copy/clone constructor. Retrieves values from the supplied template
*
* @param template element to copy
*/
public ConfigurationItemProperties(ConfigurationItemProperties template)
{
if (template != null)
{
qualifiedName = template.getQualifiedName();
additionalProperties = template.getAdditionalProperties();
meanings = template.getMeanings();
classifications = template.getClassifications();
typeName = template.getTypeName();
extendedProperties = template.getExtendedProperties();
}
}
/**
* Set up the fully qualified name.
*
* @param qualifiedName String name
*/
public void setQualifiedName(String qualifiedName)
{
this.qualifiedName = qualifiedName;
}
/**
* Returns the stored qualified name property for the metadata entity.
* If no qualified name is available then the empty string is returned.
*
* @return qualifiedName
*/
public String getQualifiedName()
{
return qualifiedName;
}
/**
* Set up additional properties.
*
* @param additionalProperties Additional properties object
*/
public void setAdditionalProperties(Map additionalProperties)
{
this.additionalProperties = additionalProperties;
}
/**
* Return a copy of the additional properties. Null means no additional properties are available.
*
* @return AdditionalProperties
*/
public Map getAdditionalProperties()
{
if (additionalProperties == null)
{
return null;
}
else if (additionalProperties.isEmpty())
{
return null;
}
else
{
return new HashMap<>(additionalProperties);
}
}
/**
* Return the assigned meanings for this metadata entity.
*
* @return list of meanings
*/
public List getMeanings()
{
if (meanings == null)
{
return null;
}
else if (meanings.isEmpty())
{
return null;
}
else
{
return new ArrayList<>(meanings);
}
}
/**
* Set up the assigned meanings for this metadata entity.
*
* @param meanings list of meanings
*/
public void setMeanings(List meanings)
{
this.meanings = meanings;
}
/**
* Return the list of classifications associated with the object.
*
* @return Classifications list of classifications
*/
public List getClassifications()
{
if (classifications == null)
{
return null;
}
else if (classifications.isEmpty())
{
return null;
}
else
{
return new ArrayList<>(classifications);
}
}
/**
* Set up the classifications associated with this object.
*
* @param classifications list of classifications
*/
public void setClassifications(List classifications)
{
this.classifications = classifications;
}
/**
* Return specific properties for the data platform vendor.
*
* @return name value pairs
*/
public Map getVendorProperties()
{
if (vendorProperties == null)
{
return null;
}
else if (vendorProperties.isEmpty())
{
return null;
}
else
{
return new HashMap<>(vendorProperties);
}
}
/**
* Set up specific properties for the data platform vendor.
*
* @param vendorProperties name value pairs
*/
public void setVendorProperties(Map vendorProperties)
{
this.vendorProperties = vendorProperties;
}
/**
* Return the name of the open metadata type for this element.
*
* @return string name
*/
public String getTypeName()
{
return typeName;
}
/**
* Set up the name of the open metadata type for this element.
*
* @param typeName string name
*/
public void setTypeName(String typeName)
{
this.typeName = typeName;
}
/**
* Return the properties that have been defined for a subtype of this object that are not supported explicitly
* by this bean.
*
* @return property map
*/
public Map getExtendedProperties()
{
if (extendedProperties == null)
{
return null;
}
else if (extendedProperties.isEmpty())
{
return null;
}
else
{
return new HashMap<>(extendedProperties);
}
}
/**
* Set up the properties that have been defined for a subtype of this object that are not supported explicitly
* by this bean.
*
* @param extendedProperties property map
*/
public void setExtendedProperties(Map extendedProperties)
{
this.extendedProperties = extendedProperties;
}
/**
* Standard toString method.
*
* @return print out of variables in a JSON-style
*/
@Override
public String toString()
{
return "ConfigurationItemProperties{" +
"qualifiedName='" + qualifiedName + '\'' +
", additionalProperties=" + additionalProperties +
", meanings=" + meanings +
", classifications=" + classifications +
", vendorProperties=" + vendorProperties +
", typeName='" + typeName + '\'' +
", extendedProperties=" + extendedProperties +
'}';
}
/**
* Compare the values of the supplied object with those stored in the current object.
*
* @param objectToCompare supplied object
* @return boolean result of comparison
*/
@Override
public boolean equals(Object objectToCompare)
{
if (this == objectToCompare)
{
return true;
}
if (objectToCompare == null || getClass() != objectToCompare.getClass())
{
return false;
}
ConfigurationItemProperties that = (ConfigurationItemProperties) objectToCompare;
return Objects.equals(qualifiedName, that.qualifiedName) &&
Objects.equals(additionalProperties, that.additionalProperties) &&
Objects.equals(meanings, that.meanings) &&
Objects.equals(classifications, that.classifications) &&
Objects.equals(vendorProperties, that.vendorProperties) &&
Objects.equals(typeName, that.typeName) &&
Objects.equals(extendedProperties, that.extendedProperties);
}
/**
* Return has code based on properties.
*
* @return int
*/
@Override
public int hashCode()
{
return Objects.hash(qualifiedName, additionalProperties, meanings, classifications,
vendorProperties, typeName, extendedProperties);
}
}