diff options
Diffstat (limited to 'models-base')
-rw-r--r-- | models-base/src/main/java/org/onap/policy/models/base/PfGeneratedIdKey.java | 166 | ||||
-rw-r--r-- | models-base/src/test/java/org/onap/policy/models/base/PfGeneratedIdKeyTest.java | 96 |
2 files changed, 0 insertions, 262 deletions
diff --git a/models-base/src/main/java/org/onap/policy/models/base/PfGeneratedIdKey.java b/models-base/src/main/java/org/onap/policy/models/base/PfGeneratedIdKey.java deleted file mode 100644 index 8e6e325c1..000000000 --- a/models-base/src/main/java/org/onap/policy/models/base/PfGeneratedIdKey.java +++ /dev/null @@ -1,166 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.base; - - -import javax.persistence.Column; -import javax.persistence.Embeddable; -import javax.persistence.GeneratedValue; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NonNull; -import org.onap.policy.common.parameters.annotations.Pattern; -import org.onap.policy.common.utils.validation.Assertions; - -/** - * A concept key uniquely identifies every first order entity in the system. Every first order concept in the system - * must have a {@link PfGeneratedIdKey} to identify it. Concepts that are wholly contained in another concept are - * identified using a {@link PfReferenceKey} key. - * - * <p/>Key validation checks that the name and version fields match the NAME_REGEXP and VERSION_REGEXP - * regular expressions respectively. - */ -@Embeddable -@Data -@EqualsAndHashCode(callSuper = false) -public class PfGeneratedIdKey extends PfKeyImpl { - - private static final long serialVersionUID = 1L; - - private static final String ID_TOKEN = "ID"; - - @Column(name = NAME_TOKEN, length = 120) - @Pattern(regexp = NAME_REGEXP) - private String name; - - @Column(name = VERSION_TOKEN, length = 20) - @Pattern(regexp = VERSION_REGEXP) - private String version; - - @Column(name = ID_TOKEN) - @GeneratedValue - private Long generatedId; - - /** - * The default constructor creates a null concept key. - */ - public PfGeneratedIdKey() { - this(NULL_KEY_NAME, NULL_KEY_VERSION); - } - - /** - * Constructor to create a key with the specified name and version. - * - * @param name the key name - * @param version the key version - */ - public PfGeneratedIdKey(final String name, final String version) { - super(name, version); - } - - /** - * Copy constructor. - * - * @param copyConcept the concept to copy from - */ - public PfGeneratedIdKey(final PfGeneratedIdKey copyConcept) { - super(copyConcept); - this.generatedId = copyConcept.getGeneratedId(); - } - - /** - * Constructor to create a key with the specified name and version. - * - * @param name the key name - * @param version the key version - * @param generatedId the conceptId of key - */ - public PfGeneratedIdKey(@NonNull final String name, @NonNull final String version, - final Long generatedId) { - super(name, version); - this.generatedId = generatedId; - } - - /** - * Constructor to create a key using the key and version from the specified key ID. - * - * @param id the key ID in a format that respects the KEY_ID_REGEXP - */ - public PfGeneratedIdKey(final String id) { - super(id.substring(0, id.lastIndexOf(':'))); - this.generatedId = Long.parseLong(id.substring(id.lastIndexOf(':') + 1)); - } - - @Override - public int compareTo(@NonNull final PfConcept otherObj) { - int result = super.compareTo(otherObj); - if (0 == result) { - final PfGeneratedIdKey other = (PfGeneratedIdKey) otherObj; - return generatedId.compareTo(other.generatedId); - } - return result; - } - - @Override - public String getId() { - return getName() + ':' + getVersion() + ':' + getGeneratedId(); - } - - @Override - public boolean isNewerThan(@NonNull PfKey otherKey) { - Assertions.instanceOf(otherKey, PfGeneratedIdKey.class); - - final PfGeneratedIdKey otherConceptKey = (PfGeneratedIdKey) otherKey; - - if (this.equals(otherConceptKey)) { - return false; - } - - if (!generatedId.equals(otherConceptKey.generatedId)) { - return generatedId.compareTo(otherConceptKey.generatedId) >= 1; - } - - return super.isNewerThan(otherKey); - } - - @Override - public boolean isNullKey() { - return super.isNullKey() && getGeneratedId() == null; - } - - public void setName(@NonNull final String name) { - this.name = Assertions.validateStringParameter(NAME_TOKEN, name, getNameRegEx()); - } - - public void setVersion(@NonNull final String version) { - this.version = Assertions.validateStringParameter(VERSION_TOKEN, version, getVersionRegEx()); - } - - /** - * Get a null concept key. - * - * @return a null concept key - */ - public static final PfGeneratedIdKey getNullKey() { - return new PfGeneratedIdKey(PfKey.NULL_KEY_NAME, PfKey.NULL_KEY_VERSION); - } - -} diff --git a/models-base/src/test/java/org/onap/policy/models/base/PfGeneratedIdKeyTest.java b/models-base/src/test/java/org/onap/policy/models/base/PfGeneratedIdKeyTest.java deleted file mode 100644 index 4f10710ba..000000000 --- a/models-base/src/test/java/org/onap/policy/models/base/PfGeneratedIdKeyTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - - -package org.onap.policy.models.base; - -import static org.assertj.core.api.Assertions.assertThatCode; -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -public class PfGeneratedIdKeyTest { - private static final String VERSION001 = "0.0.1"; - private static final String CONCEPT_IS_NULL = "^copyConcept is marked .*on.*ull but is null$"; - private static final String NAME_IS_NULL = "^name is marked .*on.*ull but is null$"; - private static final String VERSION_IS_NULL = "^version is marked .*on.*ull but is null$"; - private static final long generatedId = 10001L; - - @Test - public void testGeneratedIdKey() { - PfGeneratedIdKey someKey0 = new PfGeneratedIdKey(); - assertEquals(PfGeneratedIdKey.getNullKey(), someKey0); - assertTrue(someKey0.isNullKey()); - assertEquals("PfGeneratedIdKey(name=NULL, version=0.0.0, generatedId=null)", - someKey0.toString()); - - PfGeneratedIdKey someKey1 = new PfGeneratedIdKey("my-name", VERSION001, generatedId); - PfGeneratedIdKey someKey2 = new PfGeneratedIdKey(someKey1); - PfGeneratedIdKey someKey3 = new PfGeneratedIdKey(someKey1.getId()); - assertEquals(someKey1, someKey2); - assertEquals(someKey1, someKey3); - assertFalse(someKey1.isNullVersion()); - assertEquals("PfGeneratedIdKey(name=my-name, version=0.0.1, generatedId=" - + generatedId + ")", someKey1.toString()); - - assertEquals("my-name", someKey1.getName()); - assertEquals(VERSION001, someKey1.getVersion()); - - assertEquals(someKey2, someKey1.getKey()); - assertEquals(1, someKey1.getKeys().size()); - assertThatThrownBy(() -> someKey0.setName(null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching(NAME_IS_NULL); - assertThatThrownBy(() -> someKey0.setVersion(null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching(VERSION_IS_NULL); - assertThatCode(() -> someKey0.setGeneratedId(null)).doesNotThrowAnyException(); - - assertFalse(someKey1.isNewerThan(someKey2)); - assertThatThrownBy(() -> someKey1.isNewerThan((PfKey) null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching("^otherKey is marked .*on.*ull but is null$"); - someKey2.setGeneratedId(generatedId + 1); - assertTrue(someKey2.isNewerThan(someKey1)); - someKey3.setName("my-name3"); - assertTrue(someKey3.isNewerThan(someKey1)); - - assertEquals(-1, someKey1.compareTo(someKey2)); - assertEquals(-1, someKey1.compareTo(someKey3)); - assertThatThrownBy(() -> someKey1.compareTo((PfConcept) null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching("^otherObj is marked .*on.*ull but is null$"); - - PfGeneratedIdKey someKey4 = new PfGeneratedIdKey("NULL", "0.0.0", generatedId); - assertFalse(someKey4.isNullKey()); - assertFalse(someKey1.isNullKey()); - } - - @Test - public void testTimestampKeyErrors() { - assertThatThrownBy(() -> new PfGeneratedIdKey((PfGeneratedIdKey) null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching(CONCEPT_IS_NULL); - assertThatThrownBy(() -> new PfGeneratedIdKey(null, null, null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching(NAME_IS_NULL); - assertThatThrownBy(() -> new PfGeneratedIdKey("my-name", null, null)).isInstanceOf(NullPointerException.class) - .hasMessageMatching(VERSION_IS_NULL); - assertThatCode(() -> new PfGeneratedIdKey("my-name", VERSION001, null)) - .doesNotThrowAnyException(); - } -} |