/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.models.tosca.simple.concepts;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
-
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.EmbeddedId;
import javax.persistence.MappedSuperclass;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;
-
import org.apache.commons.lang3.ObjectUtils;
-import org.onap.policy.common.utils.validation.Assertions;
import org.onap.policy.common.utils.validation.ParameterValidationUtils;
import org.onap.policy.models.base.PfAuthorative;
import org.onap.policy.models.base.PfConcept;
*/
public JpaToscaEntityType(final JpaToscaEntityType<T> copyConcept) {
super(copyConcept);
+ this.key = new PfConceptKey(copyConcept.key);
+ this.derivedFrom = (copyConcept.derivedFrom != null ? new PfConceptKey(copyConcept.derivedFrom) : null);
+ this.metadata = (copyConcept.metadata != null ? new TreeMap<>(copyConcept.metadata) : null);
+ this.description = copyConcept.description;
}
/**
toscaEntity.setVersion(getKey().getVersion());
if (derivedFrom != null) {
- toscaEntity.setDerivedFrom(derivedFrom.getId());
+ toscaEntity.setDerivedFrom(derivedFrom.getName());
}
if (description != null) {
toscaEntity.setDescription(description);
}
- if (metadata != null) {
- Map<String, String> metadataMap = new LinkedHashMap<>();
-
- for (Entry<String, String> entry : metadata.entrySet()) {
- metadataMap.put(entry.getKey(), entry.getValue());
- }
-
- toscaEntity.setMetadata(metadataMap);
- }
+ toscaEntity.setMetadata(PfUtils.mapMap(metadata, item -> item));
return toscaEntity;
}
key.setVersion(toscaEntity.getVersion());
}
-
if (toscaEntity.getDerivedFrom() != null) {
- // CHeck if the derived from field contains a name-version ID
+ // Check if the derived from field contains a name-version ID
if (toscaEntity.getDerivedFrom().contains(":")) {
derivedFrom = new PfConceptKey(toscaEntity.getDerivedFrom());
} else {
description = toscaEntity.getDescription();
}
- if (toscaEntity.getMetadata() != null) {
- metadata = new LinkedHashMap<>();
-
- for (Entry<String, String> metadataEntry : toscaEntity.getMetadata().entrySet()) {
- metadata.put(metadataEntry.getKey(), metadataEntry.getValue());
- }
- }
+ metadata = PfUtils.mapMap(toscaEntity.getMetadata(), item -> item);
}
@Override
return 0;
}
if (getClass() != otherConcept.getClass()) {
- return this.hashCode() - otherConcept.hashCode();
+ return getClass().getName().compareTo(otherConcept.getClass().getName());
}
@SuppressWarnings("unchecked")
final JpaToscaEntityType<T> other = (JpaToscaEntityType<T>) otherConcept;
- if (!key.equals(other.key)) {
- return key.compareTo(other.key);
- }
- int result = ObjectUtils.compare(derivedFrom, other.derivedFrom);
+ int result = key.compareTo(other.key);
if (result != 0) {
return result;
}
- result = PfUtils.compareObjects(metadata, other.metadata);
+ result = ObjectUtils.compare(derivedFrom, other.derivedFrom);
if (result != 0) {
return result;
}
- return ObjectUtils.compare(description, other.description);
- }
-
- @Override
- public PfConcept copyTo(@NonNull PfConcept target) {
- final Object copyObject = target;
- Assertions.instanceOf(copyObject, PfConcept.class);
-
- @SuppressWarnings("unchecked")
- final JpaToscaEntityType<T> copy = ((JpaToscaEntityType<T>) copyObject);
- copy.setKey(new PfConceptKey(key));
- copy.setDerivedFrom(derivedFrom != null ? new PfConceptKey(derivedFrom) : null);
-
- if (metadata != null) {
- final Map<String, String> newMatadata = new TreeMap<>();
- for (final Entry<String, String> metadataEntry : metadata.entrySet()) {
- newMatadata.put(metadataEntry.getKey(), metadataEntry.getValue());
- }
- copy.setMetadata(newMatadata);
+ result = PfUtils.compareMaps(metadata, other.metadata);
+ if (result != 0) {
+ return result;
}
- copy.setDescription(description);
-
- return copy;
+ return ObjectUtils.compare(description, other.description);
}
}