Merge "Make filters on TOSCA entities generic"
authorJim Hahn <jrh3@att.com>
Mon, 8 Feb 2021 18:31:06 +0000 (18:31 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 8 Feb 2021 18:31:06 +0000 (18:31 +0000)
24 files changed:
models-provider/src/main/java/org/onap/policy/models/provider/PolicyModelsProvider.java
models-provider/src/main/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderImpl.java
models-provider/src/main/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderImpl.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyBadProviderImpl.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/DummyPolicyModelsProviderTest.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyToscaPersistenceTest.java
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntity.java
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityComparator.java [moved from models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyComparator.java with 81% similarity]
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilter.java [moved from models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeFilter.java with 81% similarity]
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeComparator.java [deleted file]
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateComparator.java [deleted file]
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateFilter.java [deleted file]
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaTypedEntityFilter.java [moved from models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyFilter.java with 76% similarity]
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/PojosTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilterTest.java [moved from models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeFilterTest.java with 84% similarity]
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateFilterTest.java [deleted file]
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaTypedEntityFilterTest.java [moved from models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyFilterTest.java with 77% similarity]
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java

index e0cb44c..3bf81ad 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -34,12 +34,11 @@ import org.onap.policy.models.pdp.concepts.PdpPolicyStatus;
 import org.onap.policy.models.pdp.concepts.PdpStatistics;
 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplateFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 
 /**
  * This interface describes the operations that are provided to users and components for reading objects from and
@@ -76,8 +75,8 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the service templates found
      * @throws PfModelException on errors getting service templates
      */
-    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(@NonNull final ToscaServiceTemplateFilter filter)
-            throws PfModelException;
+    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(
+            @NonNull final ToscaEntityFilter<ToscaServiceTemplate> filter) throws PfModelException;
 
     /**
      * Create service template.
@@ -137,7 +136,7 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the policy types found
      * @throws PfModelException on errors getting policy types
      */
-    public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final ToscaPolicyTypeFilter filter)
+    public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final ToscaEntityFilter<ToscaPolicyType> filter)
             throws PfModelException;
 
     /**
@@ -147,7 +146,7 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the policy types found
      * @throws PfModelException on errors getting policy types
      */
-    public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull final ToscaPolicyTypeFilter filter)
+    public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull final ToscaEntityFilter<ToscaPolicyType> filter)
             throws PfModelException;
 
     /**
@@ -208,7 +207,8 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the policies found
      * @throws PfModelException on errors getting policies
      */
-    public ToscaServiceTemplate getFilteredPolicies(@NonNull final ToscaPolicyFilter filter) throws PfModelException;
+    public ToscaServiceTemplate getFilteredPolicies(@NonNull final ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException;
 
     /**
      * Get filtered policies.
@@ -217,7 +217,8 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the policies found
      * @throws PfModelException on errors getting policies
      */
-    public List<ToscaPolicy> getFilteredPolicyList(@NonNull final ToscaPolicyFilter filter) throws PfModelException;
+    public List<ToscaPolicy> getFilteredPolicyList(@NonNull final ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException;
 
     /**
      * Create policies.
@@ -378,8 +379,7 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @return the deployments found
      * @throws PfModelException on errors getting PDP groups
      */
-    public List<PdpPolicyStatus> getAllPolicyStatus()
-                    throws PfModelException;
+    public List<PdpPolicyStatus> getAllPolicyStatus() throws PfModelException;
 
     /**
      * Gets all deployments for a policy.
@@ -388,18 +388,16 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @throws PfModelException on errors getting PDP groups
      */
     public List<PdpPolicyStatus> getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy)
-                    throws PfModelException;
+            throws PfModelException;
 
     /**
      * Gets the policy deployments for a PDP group.
      *
-     * @param groupName the name of the PDP group of interest, null to get results for all
-     *        PDP groups
+     * @param groupName the name of the PDP group of interest, null to get results for all PDP groups
      * @return the deployments found
      * @throws PfModelException on errors getting PDP groups
      */
-    public List<PdpPolicyStatus> getGroupPolicyStatus(@NonNull final String groupName)
-                    throws PfModelException;
+    public List<PdpPolicyStatus> getGroupPolicyStatus(@NonNull final String groupName) throws PfModelException;
 
     /**
      * Creates, updates, and deletes collections of policy status.
@@ -408,6 +406,6 @@ public interface PolicyModelsProvider extends AutoCloseable {
      * @param updateObjs the objects to update
      * @param deleteObjs the objects to delete
      */
-    public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs,
-                    Collection<PdpPolicyStatus> updateObjs, Collection<PdpPolicyStatus> deleteObjs);
+    public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs, Collection<PdpPolicyStatus> updateObjs,
+            Collection<PdpPolicyStatus> deleteObjs);
 }
index 3094efc..8c7c512 100644 (file)
@@ -41,12 +41,11 @@ import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplateFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 import org.onap.policy.models.tosca.authorative.provider.AuthorativeToscaProvider;
 
 /**
@@ -74,8 +73,8 @@ public class DatabasePolicyModelsProviderImpl extends AbstractModelsProvider imp
 
 
     @Override
-    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(@NonNull ToscaServiceTemplateFilter filter)
-            throws PfModelException {
+    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(
+            @NonNull ToscaEntityFilter<ToscaServiceTemplate> filter) throws PfModelException {
         assertInitialized();
         return new AuthorativeToscaProvider().getFilteredServiceTemplateList(getPfDao(), filter);
     }
@@ -115,13 +114,14 @@ public class DatabasePolicyModelsProviderImpl extends AbstractModelsProvider imp
     }
 
     @Override
-    public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull ToscaPolicyTypeFilter filter) throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull ToscaEntityFilter<ToscaPolicyType> filter)
+            throws PfModelException {
         assertInitialized();
         return new AuthorativeToscaProvider().getFilteredPolicyTypes(getPfDao(), filter);
     }
 
     @Override
-    public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull ToscaPolicyTypeFilter filter)
+    public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull ToscaEntityFilter<ToscaPolicyType> filter)
             throws PfModelException {
         assertInitialized();
         return new AuthorativeToscaProvider().getFilteredPolicyTypeList(getPfDao(), filter);
@@ -165,13 +165,15 @@ public class DatabasePolicyModelsProviderImpl extends AbstractModelsProvider imp
     }
 
     @Override
-    public ToscaServiceTemplate getFilteredPolicies(@NonNull ToscaPolicyFilter filter) throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicies(@NonNull ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException {
         assertInitialized();
         return new AuthorativeToscaProvider().getFilteredPolicies(getPfDao(), filter);
     }
 
     @Override
-    public List<ToscaPolicy> getFilteredPolicyList(@NonNull ToscaPolicyFilter filter) throws PfModelException {
+    public List<ToscaPolicy> getFilteredPolicyList(@NonNull ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException {
         assertInitialized();
         return new AuthorativeToscaProvider().getFilteredPolicyList(getPfDao(), filter);
     }
@@ -288,21 +290,20 @@ public class DatabasePolicyModelsProviderImpl extends AbstractModelsProvider imp
 
     @Override
     public List<PdpPolicyStatus> getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy)
-                    throws PfModelException {
+            throws PfModelException {
         assertInitialized();
         return new PdpProvider().getAllPolicyStatus(getPfDao(), policy);
     }
 
     @Override
-    public List<PdpPolicyStatus> getGroupPolicyStatus(@NonNull String groupName)
-                    throws PfModelException {
+    public List<PdpPolicyStatus> getGroupPolicyStatus(@NonNull String groupName) throws PfModelException {
         assertInitialized();
         return new PdpProvider().getGroupPolicyStatus(getPfDao(), groupName);
     }
 
     @Override
-    public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs,
-                    Collection<PdpPolicyStatus> updateObjs, Collection<PdpPolicyStatus> deleteObjs) {
+    public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs, Collection<PdpPolicyStatus> updateObjs,
+            Collection<PdpPolicyStatus> deleteObjs) {
         assertInitialized();
         new PdpProvider().cudPolicyStatus(getPfDao(), createObjs, updateObjs, deleteObjs);
     }
index 0a9ea72..1b91f07 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  * ================================================================================
@@ -41,12 +41,11 @@ import org.onap.policy.models.pdp.concepts.PdpSubGroup;
 import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplateFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 
 /**
  * This class provides a dummy implementation of the Policy Models Provider for the ONAP Policy Framework.
@@ -81,8 +80,8 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
     }
 
     @Override
-    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(@NonNull ToscaServiceTemplateFilter filter)
-            throws PfModelException {
+    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(
+            @NonNull ToscaEntityFilter<ToscaServiceTemplate> filter) throws PfModelException {
         return new ArrayList<>();
     }
 
@@ -115,12 +114,13 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
     }
 
     @Override
-    public ToscaServiceTemplate getFilteredPolicyTypes(ToscaPolicyTypeFilter filter) throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicyTypes(ToscaEntityFilter<ToscaPolicyType> filter)
+            throws PfModelException {
         return getDummyResponse("dummyimpl/DummyToscaPolicyTypeGetResponse.json");
     }
 
     @Override
-    public List<ToscaPolicyType> getFilteredPolicyTypeList(ToscaPolicyTypeFilter filter) {
+    public List<ToscaPolicyType> getFilteredPolicyTypeList(ToscaEntityFilter<ToscaPolicyType> filter) {
         return new ArrayList<>();
     }
 
@@ -150,12 +150,13 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
     }
 
     @Override
-    public ToscaServiceTemplate getFilteredPolicies(ToscaPolicyFilter filter) throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicies(ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException {
         return getDummyResponse("dummyimpl/DummyToscaPolicyGetResponse.json");
     }
 
     @Override
-    public List<ToscaPolicy> getFilteredPolicyList(ToscaPolicyFilter filter) throws PfModelException {
+    public List<ToscaPolicy> getFilteredPolicyList(ToscaTypedEntityFilter<ToscaPolicy> filter) throws PfModelException {
         return new ArrayList<>();
     }
 
@@ -249,7 +250,7 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
 
     @Override
     public List<PdpPolicyStatus> getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy)
-                    throws PfModelException {
+            throws PfModelException {
         // Not implemented
         return new ArrayList<>();
     }
@@ -262,7 +263,7 @@ public class DummyPolicyModelsProviderImpl implements PolicyModelsProvider {
 
     @Override
     public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs, Collection<PdpPolicyStatus> updateObjs,
-                    Collection<PdpPolicyStatus> deleteObjs) {
+            Collection<PdpPolicyStatus> deleteObjs) {
         // Not implemented
     }
 
index fb5af1e..596f9fa 100644 (file)
@@ -47,9 +47,11 @@ import org.onap.policy.models.provider.PolicyModelsProviderFactory;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 
 /**
  * Test the database models provider implementation.
@@ -296,10 +298,12 @@ public class DatabasePolicyModelsProviderTest {
 
         assertTrue(databaseProvider.getPolicyTypeList(NAME, VERSION_100).isEmpty());
 
-        assertThatThrownBy(() -> databaseProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build()))
-                .hasMessage("service template not found in database");
+        assertThatThrownBy(
+                () -> databaseProvider.getFilteredPolicyTypes(ToscaEntityFilter.<ToscaPolicyType>builder().build()))
+                        .hasMessage("service template not found in database");
 
-        assertTrue(databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()).isEmpty());
+        assertTrue(databaseProvider.getFilteredPolicyTypeList(ToscaEntityFilter.<ToscaPolicyType>builder().build())
+                .isEmpty());
 
         assertThatThrownBy(() -> {
             databaseProvider.createPolicyTypes(new ToscaServiceTemplate());
@@ -317,10 +321,12 @@ public class DatabasePolicyModelsProviderTest {
 
         assertTrue(databaseProvider.getPolicyList(NAME, VERSION_100).isEmpty());
 
-        assertThatThrownBy(() -> databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build()))
-                .hasMessage("service template not found in database");
+        assertThatThrownBy(
+                () -> databaseProvider.getFilteredPolicies(ToscaTypedEntityFilter.<ToscaPolicy>builder().build()))
+                        .hasMessage("service template not found in database");
 
-        assertTrue(databaseProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()).isEmpty());
+        assertTrue(databaseProvider.getFilteredPolicyList(ToscaTypedEntityFilter.<ToscaPolicy>builder().build())
+                .isEmpty());
 
         assertThatThrownBy(() -> {
             databaseProvider.createPolicies(new ToscaServiceTemplate());
@@ -428,7 +434,7 @@ public class DatabasePolicyModelsProviderTest {
 
         assertThat(databaseProvider.getAllPolicyStatus()).isEmpty();
         assertThat(databaseProvider.getAllPolicyStatus(new ToscaConceptIdentifierOptVersion("MyPolicy", null)))
-                        .isEmpty();
+                .isEmpty();
         assertThat(databaseProvider.getGroupPolicyStatus(GROUP)).isEmpty();
         assertThatCode(() -> databaseProvider.cudPolicyStatus(null, null, null)).doesNotThrowAnyException();
 
index 008a1cc..f2e8e84 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  * ================================================================================
@@ -39,12 +39,11 @@ import org.onap.policy.models.pdp.concepts.PdpStatistics;
 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
 import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplateFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 
 /**
  * Dummy implementation of {@link PolicyModelsProvider} with bad constructor.
@@ -67,8 +66,8 @@ public class DummyBadProviderImpl implements PolicyModelsProvider {
     }
 
     @Override
-    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(@NonNull ToscaServiceTemplateFilter filter)
-            throws PfModelException {
+    public List<ToscaServiceTemplate> getFilteredServiceTemplateList(
+            @NonNull ToscaEntityFilter<ToscaServiceTemplate> filter) throws PfModelException {
         return null;
     }
 
@@ -164,12 +163,13 @@ public class DummyBadProviderImpl implements PolicyModelsProvider {
     }
 
     @Override
-    public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull ToscaPolicyTypeFilter filter) throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull ToscaEntityFilter<ToscaPolicyType> filter)
+            throws PfModelException {
         return null;
     }
 
     @Override
-    public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull ToscaPolicyTypeFilter filter)
+    public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull ToscaEntityFilter<ToscaPolicyType> filter)
             throws PfModelException {
         return Collections.emptyList();
     }
@@ -180,12 +180,14 @@ public class DummyBadProviderImpl implements PolicyModelsProvider {
     }
 
     @Override
-    public ToscaServiceTemplate getFilteredPolicies(@NonNull ToscaPolicyFilter filter) throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicies(@NonNull ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException {
         return null;
     }
 
     @Override
-    public List<ToscaPolicy> getFilteredPolicyList(@NonNull ToscaPolicyFilter filter) throws PfModelException {
+    public List<ToscaPolicy> getFilteredPolicyList(@NonNull ToscaTypedEntityFilter<ToscaPolicy> filter)
+            throws PfModelException {
         return Collections.emptyList();
     }
 
@@ -240,7 +242,7 @@ public class DummyBadProviderImpl implements PolicyModelsProvider {
 
     @Override
     public List<PdpPolicyStatus> getAllPolicyStatus(@NonNull ToscaConceptIdentifierOptVersion policy)
-                    throws PfModelException {
+            throws PfModelException {
         // Not implemented
         return null;
     }
@@ -253,7 +255,7 @@ public class DummyBadProviderImpl implements PolicyModelsProvider {
 
     @Override
     public void cudPolicyStatus(Collection<PdpPolicyStatus> createObjs, Collection<PdpPolicyStatus> updateObjs,
-                    Collection<PdpPolicyStatus> deleteObjs) {
+            Collection<PdpPolicyStatus> deleteObjs) {
         // Not implemented
     }
 
index 223aa5b..a57cc95 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  * ================================================================================
@@ -40,9 +40,11 @@ import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifierOptVersion;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 
 /**
  * Test the dummy models provider implementation.
@@ -83,17 +85,17 @@ public class DummyPolicyModelsProviderTest {
         dummyProvider.init();
 
         assertNotNull(dummyProvider.getPolicyTypes("name", VERSION));
-        assertNotNull(dummyProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build()));
+        assertNotNull(dummyProvider.getFilteredPolicyTypes(ToscaEntityFilter.<ToscaPolicyType>builder().build()));
         assertNotNull(dummyProvider.getPolicyTypeList("name", VERSION));
-        assertNotNull(dummyProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()));
+        assertNotNull(dummyProvider.getFilteredPolicyTypeList(ToscaEntityFilter.<ToscaPolicyType>builder().build()));
         assertNotNull(dummyProvider.createPolicyTypes(new ToscaServiceTemplate()));
         assertNotNull(dummyProvider.updatePolicyTypes(new ToscaServiceTemplate()));
         assertNotNull(dummyProvider.deletePolicyType("name", VERSION));
 
         assertNotNull(dummyProvider.getPolicies("name", VERSION));
-        assertNotNull(dummyProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build()));
+        assertNotNull(dummyProvider.getFilteredPolicies(ToscaTypedEntityFilter.<ToscaPolicy>builder().build()));
         assertNotNull(dummyProvider.getPolicyList("name", VERSION));
-        assertNotNull(dummyProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()));
+        assertNotNull(dummyProvider.getFilteredPolicyList(ToscaTypedEntityFilter.<ToscaPolicy>builder().build()));
         assertNotNull(dummyProvider.createPolicies(new ToscaServiceTemplate()));
         assertNotNull(dummyProvider.updatePolicies(new ToscaServiceTemplate()));
         assertNotNull(dummyProvider.deletePolicy("name", VERSION));
index a42aae4..ac62569 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,10 +44,11 @@ import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -114,15 +115,15 @@ public class PolicyToscaPersistenceTest {
     public void testHpaPolicyTypeGet() throws PfModelException {
         long getStartTime = System.currentTimeMillis();
         ToscaServiceTemplate hpaServiceTemplate =
-            databaseProvider.getPolicyTypes("onap.policies.optimization.resource.HpaPolicy", "1.0.0");
+                databaseProvider.getPolicyTypes("onap.policies.optimization.resource.HpaPolicy", "1.0.0");
         LOGGER.trace("HPA policy normal get time (ms): {}", System.currentTimeMillis() - getStartTime);
 
         assertEquals(3, hpaServiceTemplate.getPolicyTypesAsMap().size());
         assertEquals(5, hpaServiceTemplate.getDataTypesAsMap().size());
 
         getStartTime = System.currentTimeMillis();
-        ToscaPolicyTypeFilter hpaFilter = ToscaPolicyTypeFilter.builder()
-            .name("onap.policies.optimization.resource.HpaPolicy").version("1.0.0").build();
+        ToscaEntityFilter<ToscaPolicyType> hpaFilter = ToscaEntityFilter.<ToscaPolicyType>builder()
+                .name("onap.policies.optimization.resource.HpaPolicy").version("1.0.0").build();
         hpaServiceTemplate = databaseProvider.getFilteredPolicyTypes(hpaFilter);
         LOGGER.trace("HPA policy filter name version get time (ms): {}", System.currentTimeMillis() - getStartTime);
 
@@ -130,7 +131,8 @@ public class PolicyToscaPersistenceTest {
         assertEquals(5, hpaServiceTemplate.getDataTypesAsMap().size());
 
         getStartTime = System.currentTimeMillis();
-        hpaFilter = ToscaPolicyTypeFilter.builder().name("onap.policies.optimization.resource.HpaPolicy").build();
+        hpaFilter = ToscaEntityFilter.<ToscaPolicyType>builder().name("onap.policies.optimization.resource.HpaPolicy")
+                .build();
         hpaServiceTemplate = databaseProvider.getFilteredPolicyTypes(hpaFilter);
         LOGGER.trace("HPA policy filter name only get time (ms): {}", System.currentTimeMillis() - getStartTime);
 
@@ -142,7 +144,7 @@ public class PolicyToscaPersistenceTest {
     public void testNamingPolicyGet() throws PfModelException {
         String policyYamlString = ResourceUtils.getResourceAsString("policies/sdnc.policy.naming.input.tosca.yaml");
         ToscaServiceTemplate serviceTemplate =
-            yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class);
+                yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class);
 
         long createStartTime = System.currentTimeMillis();
         databaseProvider.createPolicies(serviceTemplate);
@@ -150,7 +152,7 @@ public class PolicyToscaPersistenceTest {
 
         long getStartTime = System.currentTimeMillis();
         ToscaServiceTemplate namingServiceTemplate =
-            databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0");
+                databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0");
         LOGGER.trace("Naming policy normal get time (ms): {}", System.currentTimeMillis() - getStartTime);
 
         assertEquals(1, namingServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().size());
@@ -158,8 +160,8 @@ public class PolicyToscaPersistenceTest {
         assertEquals(3, namingServiceTemplate.getDataTypesAsMap().size());
 
         getStartTime = System.currentTimeMillis();
-        ToscaPolicyFilter filter =
-            ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version("1.0.0").build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter = ToscaTypedEntityFilter.<ToscaPolicy>builder()
+                .name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version("1.0.0").build();
         namingServiceTemplate = databaseProvider.getFilteredPolicies(filter);
         LOGGER.trace("Naming policy filtered get time (ms): {}", System.currentTimeMillis() - getStartTime);
 
@@ -168,7 +170,7 @@ public class PolicyToscaPersistenceTest {
         assertEquals(3, namingServiceTemplate.getDataTypesAsMap().size());
 
         getStartTime = System.currentTimeMillis();
-        filter = ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").build();
         namingServiceTemplate = databaseProvider.getFilteredPolicies(filter);
         LOGGER.trace("Naming policy filtered name only get time (ms): {}", System.currentTimeMillis() - getStartTime);
 
@@ -178,7 +180,7 @@ public class PolicyToscaPersistenceTest {
 
         long deleteStartTime = System.currentTimeMillis();
         ToscaServiceTemplate deletedServiceTemplate =
-            databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0");
+                databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", "1.0.0");
         LOGGER.trace("Naming policy delete time (ms): {}", System.currentTimeMillis() - deleteStartTime);
 
         assertEquals(1, deletedServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().size());
@@ -188,7 +190,7 @@ public class PolicyToscaPersistenceTest {
     public void testNamingPolicyVersions() throws PfModelException {
         String policyYamlString = ResourceUtils.getResourceAsString("policies/sdnc.policy.naming.input.tosca.yaml");
         ToscaServiceTemplate serviceTemplate =
-            yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class);
+                yamlJsonTranslator.fromYaml(policyYamlString, ToscaServiceTemplate.class);
 
         // Create policy types and data types
         List<Map<String, ToscaPolicy>> policyMapList = serviceTemplate.getToscaTopologyTemplate().getPolicies();
@@ -211,26 +213,26 @@ public class PolicyToscaPersistenceTest {
 
         for (int i = 1; i < 22; i++) {
             ToscaServiceTemplate namingServiceTemplate =
-                databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0");
+                    databaseProvider.getPolicies("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0");
             assertEquals(i + ".0.0", namingServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).values()
-                .iterator().next().getVersion());
+                    .iterator().next().getVersion());
 
-            ToscaPolicyFilter policyFilter =
-                ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version(i + ".0.0").build();
+            ToscaTypedEntityFilter<ToscaPolicy> policyFilter = ToscaTypedEntityFilter.<ToscaPolicy>builder()
+                    .name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version(i + ".0.0").build();
             namingServiceTemplate = databaseProvider.getFilteredPolicies(policyFilter);
             assertEquals(i + ".0.0", namingServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).values()
-                .iterator().next().getVersion());
+                    .iterator().next().getVersion());
         }
 
-        ToscaPolicyFilter policyFilter = ToscaPolicyFilter.builder().name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP")
-            .version(ToscaPolicyFilter.LATEST_VERSION).build();
+        ToscaTypedEntityFilter<ToscaPolicy> policyFilter = ToscaTypedEntityFilter.<ToscaPolicy>builder()
+                .name("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP").version(ToscaTypedEntityFilter.LATEST_VERSION).build();
         ToscaServiceTemplate namingServiceTemplate = databaseProvider.getFilteredPolicies(policyFilter);
         assertEquals("21.0.0", namingServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).values().iterator()
-            .next().getVersion());
+                .next().getVersion());
 
         for (int i = 1; i < 22; i++) {
             ToscaServiceTemplate deletedServiceTemplate =
-                databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0");
+                    databaseProvider.deletePolicy("SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP", i + ".0.0");
             assertEquals(1, deletedServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().size());
         }
     }
@@ -262,28 +264,29 @@ public class PolicyToscaPersistenceTest {
         for (Map<String, ToscaPolicy> policyMap : serviceTemplate.getToscaTopologyTemplate().getPolicies()) {
             for (ToscaPolicy policy : policyMap.values()) {
                 ToscaServiceTemplate gotToscaServiceTemplate =
-                    databaseProvider.getPolicies(policy.getName(), policy.getVersion());
+                        databaseProvider.getPolicies(policy.getName(), policy.getVersion());
 
                 assertEquals(policy.getType(), gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0)
-                    .get(policy.getName()).getType());
+                        .get(policy.getName()).getType());
 
-                gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build());
+                gotToscaServiceTemplate =
+                        databaseProvider.getFilteredPolicies(ToscaTypedEntityFilter.<ToscaPolicy>builder().build());
 
                 assertEquals(policy.getType(),
-                    getToscaPolicyFromMapList(gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies(),
-                        policy.getName()).getType());
+                        getToscaPolicyFromMapList(gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies(),
+                                policy.getName()).getType());
 
-                gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(
-                    ToscaPolicyFilter.builder().name(policy.getName()).version(policy.getVersion()).build());
+                gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(ToscaTypedEntityFilter
+                        .<ToscaPolicy>builder().name(policy.getName()).version(policy.getVersion()).build());
 
                 assertEquals(policy.getType(), gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0)
-                    .get(policy.getName()).getType());
+                        .get(policy.getName()).getType());
             }
         }
     }
 
     private ToscaPolicy getToscaPolicyFromMapList(List<Map<String, ToscaPolicy>> toscaPolicyMapList,
-        String policyName) {
+            String policyName) {
         ToscaPolicy toscaPolicy = new ToscaPolicy();
         for (Map<String, ToscaPolicy> policyMap : toscaPolicyMapList) {
             toscaPolicy = policyMap.get(policyName);
@@ -300,7 +303,7 @@ public class PolicyToscaPersistenceTest {
         for (String policyTypeResource : policyTypeResources) {
             String policyTypeYamlString = ResourceUtils.getResourceAsString(policyTypeResource);
             ToscaServiceTemplate toscaServiceTemplatePolicyType =
-                yamlJsonTranslator.fromYaml(policyTypeYamlString, ToscaServiceTemplate.class);
+                    yamlJsonTranslator.fromYaml(policyTypeYamlString, ToscaServiceTemplate.class);
 
             assertNotNull(toscaServiceTemplatePolicyType);
             databaseProvider.createPolicyTypes(toscaServiceTemplatePolicyType);
index ade1a28..4cc8892 100644 (file)
@@ -21,6 +21,7 @@
 
 package org.onap.policy.models.tosca.authorative.concepts;
 
+import java.io.Serializable;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NonNull;
@@ -35,7 +36,8 @@ import org.onap.policy.models.base.PfKey;
  */
 @Data
 @NoArgsConstructor
-public class ToscaConceptIdentifier implements Comparable<ToscaConceptIdentifier> {
+public class ToscaConceptIdentifier implements Serializable, Comparable<ToscaConceptIdentifier> {
+    private static final long serialVersionUID = 8010649773816325786L;
 
     @NonNull
     private String name;
index 5c1167c..98efd19 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP Policy Model
  * ================================================================================
- * Copyright (C) 2019-2020 Nordix Foundation.
+ * Copyright (C) 2019-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.
@@ -140,4 +140,22 @@ public class ToscaEntity implements PfNameVersion {
 
         return entityMap;
     }
+
+    /**
+     * Method that should be specialised to return the type of the entity if the entity has a type.
+     *
+     * @return the type of the entity or null if it has no type
+     */
+    public String getType() {
+        return null;
+    }
+
+    /**
+     * Method that should be specialised to return the type version of the entity if the entity has a type.
+     *
+     * @return the type of the entity or null if it has no type
+     */
+    public String getTypeVersion() {
+        return null;
+    }
 }
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2020 Nordix Foundation.
+ *  Copyright (C) 2020-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.
@@ -23,12 +23,12 @@ package org.onap.policy.models.tosca.authorative.concepts;
 import java.util.Comparator;
 
 /**
- * Compare two ToscaPolicy objects.
+ * Compare two ToscaEntity objects.
  */
-public class ToscaPolicyComparator implements Comparator<ToscaPolicy> {
+public class ToscaEntityComparator<T extends ToscaEntity> implements Comparator<T> {
 
     @Override
-    public int compare(final ToscaPolicy left, final ToscaPolicy right) {
+    public int compare(final ToscaEntity left, final ToscaEntity right) {
         return left.compareNameVersion(left, right);
     }
 }
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-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.
@@ -28,13 +28,13 @@ import lombok.NonNull;
 import org.onap.policy.models.base.PfObjectFilter;
 
 /**
- * Filter class for searches for {@link ToscaPolicyType} instances. If any fields are null, they are ignored.
+ * Filter class for searches for {@link ToscaEntity} instances. If any fields are null, they are ignored.
  *
  * @author Liam Fallon (liam.fallon@est.tech)
  */
 @Builder
 @Data
-public class ToscaPolicyTypeFilter implements PfObjectFilter<ToscaPolicyType> {
+public class ToscaEntityFilter<T extends ToscaEntity> implements PfObjectFilter<T> {
     public static final String LATEST_VERSION = "LATEST";
 
     // Regular expression
@@ -44,10 +44,10 @@ public class ToscaPolicyTypeFilter implements PfObjectFilter<ToscaPolicyType> {
     private String version;
 
     @Override
-    public List<ToscaPolicyType> filter(@NonNull final List<ToscaPolicyType> originalList) {
+    public List<T> filter(@NonNull final List<T> originalList) {
 
         // @formatter:off
-        List<ToscaPolicyType> returnList = originalList.stream()
+        List<T> returnList = originalList.stream()
                 .filter(p -> filterString(p.getName(), name))
                 .filter(p -> LATEST_VERSION.equals(version)
                         || filterString(p.getVersion(), version))
@@ -55,7 +55,7 @@ public class ToscaPolicyTypeFilter implements PfObjectFilter<ToscaPolicyType> {
         // @formatter:off
 
         if (LATEST_VERSION.equals(version)) {
-            return this.latestVersionFilter(returnList, new ToscaPolicyTypeComparator());
+            return this.latestVersionFilter(returnList, new ToscaEntityComparator<T>());
         } else  {
             return returnList;
         }
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeComparator.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeComparator.java
deleted file mode 100644 (file)
index 9f45a78..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2020 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.tosca.authorative.concepts;
-
-import java.util.Comparator;
-
-/**
- * Compare two ToscaPolicyType objects.
- */
-public class ToscaPolicyTypeComparator implements Comparator<ToscaPolicyType> {
-
-    @Override
-    public int compare(final ToscaPolicyType left, final ToscaPolicyType right) {
-        return left.compareNameVersion(left, right);
-    }
-}
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateComparator.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateComparator.java
deleted file mode 100644 (file)
index 015c10b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2020 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.tosca.authorative.concepts;
-
-import java.util.Comparator;
-
-/**
- * Compare two ToscaServiceTemplate objects.
- */
-public class ToscaServiceTemplateComparator implements Comparator<ToscaServiceTemplate> {
-
-    @Override
-    public int compare(final ToscaServiceTemplate left, final ToscaServiceTemplate right) {
-        return left.compareNameVersion(left, right);
-    }
-}
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateFilter.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateFilter.java
deleted file mode 100644 (file)
index 75b1396..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2020 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.tosca.authorative.concepts;
-
-import java.util.List;
-import java.util.stream.Collectors;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NonNull;
-import org.onap.policy.models.base.PfObjectFilter;
-
-/**
- * Filter class for searches for {@link ToscaServiceTemplate} instances. If any fields are null, they are ignored.
- *
- * @author Liam Fallon (liam.fallon@est.tech)
- */
-@Builder
-@Data
-public class ToscaServiceTemplateFilter implements PfObjectFilter<ToscaServiceTemplate> {
-    public static final String LATEST_VERSION = "LATEST";
-
-    // Regular expression
-    private String name;
-
-    // Regular Expression, set to LATEST_VERRSION to get the latest version
-    private String version;
-
-    @Override
-    public List<ToscaServiceTemplate> filter(@NonNull final List<ToscaServiceTemplate> originalList) {
-
-        // @formatter:off
-        List<ToscaServiceTemplate> returnList = originalList.stream()
-                .filter(p -> filterString(p.getName(), name))
-                .filter(p -> LATEST_VERSION.equals(version)
-                        || filterString(p.getVersion(), version))
-                .collect(Collectors.toList());
-        // @formatter:off
-
-        if (LATEST_VERSION.equals(version)) {
-            return this.latestVersionFilter(returnList, new ToscaServiceTemplateComparator());
-        } else  {
-            return returnList;
-        }
-    }
-}
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,7 +35,7 @@ import org.onap.policy.models.base.PfObjectFilter;
  */
 @Builder
 @Data
-public class ToscaPolicyFilter implements PfObjectFilter<ToscaPolicy> {
+public class ToscaTypedEntityFilter<T extends ToscaEntity> implements PfObjectFilter<T> {
     public static final String LATEST_VERSION = "LATEST";
 
     // Exact expression
@@ -54,20 +54,20 @@ public class ToscaPolicyFilter implements PfObjectFilter<ToscaPolicy> {
     private String typeVersion;
 
     @Override
-    public List<ToscaPolicy> filter(@NonNull final List<ToscaPolicy> originalList) {
+    public List<T> filter(@NonNull final List<T> originalList) {
 
         // @formatter:off
-        List<ToscaPolicy> returnList = originalList.stream()
-                .filter(filterStringPred(name, ToscaPolicy::getName))
-                .filter(filterStringPred((LATEST_VERSION.equals(version) ? null : version), ToscaPolicy::getVersion))
-                .filter(filterPrefixPred(versionPrefix, ToscaPolicy::getVersion))
-                .filter(filterStringPred(type, ToscaPolicy::getType))
-                .filter(filterStringPred(typeVersion, ToscaPolicy::getTypeVersion))
+        List<T> returnList = originalList.stream()
+                .filter(filterStringPred(name, T::getName))
+                .filter(filterStringPred((LATEST_VERSION.equals(version) ? null : version), T::getVersion))
+                .filter(filterPrefixPred(versionPrefix, T::getVersion))
+                .filter(filterStringPred(type, T::getType))
+                .filter(filterStringPred(typeVersion, T::getTypeVersion))
                 .collect(Collectors.toList());
         // @formatter:off
 
         if (LATEST_VERSION.equals(version)) {
-            return this.latestVersionFilter(returnList, new ToscaPolicyComparator());
+            return this.latestVersionFilter(returnList, new ToscaEntityComparator<T>());
         } else  {
             return returnList;
         }
index d20f5d0..c43aadf 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,12 +34,11 @@ import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.base.PfModelRuntimeException;
 import org.onap.policy.models.dao.PfDao;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplateFilter;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
 import org.onap.policy.models.tosca.simple.provider.SimpleToscaProvider;
 import org.onap.policy.models.tosca.utils.ToscaServiceTemplateUtils;
@@ -97,7 +96,7 @@ public class AuthorativeToscaProvider {
      * @throws PfModelException on errors getting service templates
      */
     public List<ToscaServiceTemplate> getFilteredServiceTemplateList(PfDao pfDao,
-            @NonNull ToscaServiceTemplateFilter filter) throws PfModelException {
+            @NonNull ToscaEntityFilter<ToscaServiceTemplate> filter) throws PfModelException {
 
         LOGGER.debug("->getFilteredServiceTemplateList: filter={}", filter);
 
@@ -240,7 +239,7 @@ public class AuthorativeToscaProvider {
      * @throws PfModelException on errors getting policy types
      */
     public ToscaServiceTemplate getFilteredPolicyTypes(@NonNull final PfDao dao,
-            @NonNull final ToscaPolicyTypeFilter filter) throws PfModelException {
+            @NonNull final ToscaEntityFilter<ToscaPolicyType> filter) throws PfModelException {
 
         synchronized (providerLockObject) {
             LOGGER.debug("->getFilteredPolicyTypes: filter={}", filter);
@@ -282,7 +281,7 @@ public class AuthorativeToscaProvider {
      * @throws PfModelException on errors getting policy types
      */
     public List<ToscaPolicyType> getFilteredPolicyTypeList(@NonNull final PfDao dao,
-            @NonNull final ToscaPolicyTypeFilter filter) throws PfModelException {
+            @NonNull final ToscaEntityFilter<ToscaPolicyType> filter) throws PfModelException {
 
         LOGGER.debug("->getFilteredPolicyTypeList: filter={}", filter);
 
@@ -423,12 +422,13 @@ public class AuthorativeToscaProvider {
      * @return the policies found
      * @throws PfModelException on errors getting policies
      */
-    public ToscaServiceTemplate getFilteredPolicies(@NonNull final PfDao dao, @NonNull final ToscaPolicyFilter filter)
-            throws PfModelException {
+    public ToscaServiceTemplate getFilteredPolicies(@NonNull final PfDao dao,
+            @NonNull final ToscaTypedEntityFilter<ToscaPolicy> filter) throws PfModelException {
 
         synchronized (providerLockObject) {
             LOGGER.debug("->getFilteredPolicies: filter={}", filter);
-            String version = ToscaPolicyFilter.LATEST_VERSION.equals(filter.getVersion()) ? null : filter.getVersion();
+            String version =
+                    ToscaTypedEntityFilter.LATEST_VERSION.equals(filter.getVersion()) ? null : filter.getVersion();
 
             SimpleToscaProvider simpleToscaProvider = new SimpleToscaProvider();
             final JpaToscaServiceTemplate dbServiceTemplate =
@@ -468,11 +468,11 @@ public class AuthorativeToscaProvider {
      * @return the policies found
      * @throws PfModelException on errors getting policies
      */
-    public List<ToscaPolicy> getFilteredPolicyList(@NonNull final PfDao dao, @NonNull final ToscaPolicyFilter filter)
-            throws PfModelException {
+    public List<ToscaPolicy> getFilteredPolicyList(@NonNull final PfDao dao,
+            @NonNull final ToscaTypedEntityFilter<ToscaPolicy> filter) throws PfModelException {
 
         LOGGER.debug("->getFilteredPolicyList: filter={}", filter);
-        String version = ToscaPolicyFilter.LATEST_VERSION.equals(filter.getVersion()) ? null : filter.getVersion();
+        String version = ToscaTypedEntityFilter.LATEST_VERSION.equals(filter.getVersion()) ? null : filter.getVersion();
 
         List<ToscaPolicy> policyList = filter.filter(getPolicyList(dao, filter.getName(), version));
 
index c9f162a..fe60a52 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP Policy Model
  * ================================================================================
  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications 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.
@@ -57,9 +58,9 @@ public class PojosTest {
         validator.validate(POJO_PACKAGE,
                 new FilterPackageInfo(),
                 new FilterClassName(
-                        org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter.class.getName()),
+                        org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter.class.getName()),
                 new FilterClassName(
-                        org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter.class.getName()),
+                        org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter.class.getName()),
                 new FilterClassName(
                         ToscaIdentifierTestBase.class.getName())
         );
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -42,13 +42,13 @@ import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
 
 /**
- * Test of the {@link ToscaPolicyTypeFilter} class.
+ * Test of the {@link ToscaEntityFilter} class.
  *
  * @author Liam Fallon (liam.fallon@est.tech)
  */
-public class ToscaPolicyTypeFilterTest {
+public class ToscaEntityFilterTest {
     // Logger for this class
-    private static final Logger LOGGER = LoggerFactory.getLogger(ToscaPolicyTypeFilterTest.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToscaEntityFilterTest.class);
 
     private static final String VERSION_100 = "1.0.0";
     private static final String VERSION_000 = "0.0.0";
@@ -117,7 +117,7 @@ public class ToscaPolicyTypeFilterTest {
 
     @Test
     public void testNullList() {
-        ToscaPolicyTypeFilter filter = ToscaPolicyTypeFilter.builder().build();
+        ToscaEntityFilter<ToscaPolicyType> filter = ToscaEntityFilter.<ToscaPolicyType>builder().build();
 
         assertThatThrownBy(() -> {
             filter.filter(null);
@@ -126,7 +126,7 @@ public class ToscaPolicyTypeFilterTest {
 
     @Test
     public void testFilterNothing() {
-        ToscaPolicyTypeFilter filter = ToscaPolicyTypeFilter.builder().build();
+        ToscaEntityFilter<ToscaPolicyType> filter = ToscaEntityFilter.<ToscaPolicyType>builder().build();
 
         List<ToscaPolicyType> filteredList = filter.filter(typeList);
         assertTrue(filteredList.containsAll(typeList));
@@ -134,8 +134,8 @@ public class ToscaPolicyTypeFilterTest {
 
     @Test
     public void testFilterLatestVersion() {
-        ToscaPolicyTypeFilter filter =
-                ToscaPolicyTypeFilter.builder().version(ToscaPolicyTypeFilter.LATEST_VERSION).build();
+        ToscaEntityFilter<ToscaPolicyType> filter =
+                ToscaEntityFilter.<ToscaPolicyType>builder().version(ToscaEntityFilter.LATEST_VERSION).build();
 
         List<ToscaPolicyType> filteredList = filter.filter(typeList);
         assertEquals(19, filteredList.size());
@@ -165,28 +165,30 @@ public class ToscaPolicyTypeFilterTest {
 
     @Test
     public void testFilterNameVersion() {
-        ToscaPolicyTypeFilter filter = ToscaPolicyTypeFilter.builder().name("onap.policies.Monitoring").build();
+        ToscaEntityFilter<ToscaPolicyType> filter =
+                ToscaEntityFilter.<ToscaPolicyType>builder().name("onap.policies.Monitoring").build();
         List<ToscaPolicyType> filteredList = filter.filter(typeList);
         assertEquals(1, filteredList.size());
 
-        filter = ToscaPolicyTypeFilter.builder().name("onap.policies.monitoring.tcagen2").build();
+        filter = ToscaEntityFilter.<ToscaPolicyType>builder().name("onap.policies.monitoring.tcagen2").build();
         filteredList = filter.filter(typeList);
         assertEquals(1, filteredList.size());
 
-        filter = ToscaPolicyTypeFilter.builder().name("onap.policies.optimization.LpaPolicy").build();
+        filter = ToscaEntityFilter.<ToscaPolicyType>builder().name("onap.policies.optimization.LpaPolicy").build();
         filteredList = filter.filter(typeList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyTypeFilter.builder().version(VERSION_100).build();
+        filter = ToscaEntityFilter.<ToscaPolicyType>builder().version(VERSION_100).build();
         filteredList = filter.filter(typeList);
         assertEquals(19, filteredList.size());
 
-        filter = ToscaPolicyTypeFilter.builder().name("onap.policies.optimization.Vim_fit").version(VERSION_000)
-                .build();
+        filter = ToscaEntityFilter.<ToscaPolicyType>builder().name("onap.policies.optimization.Vim_fit")
+                .version(VERSION_000).build();
         filteredList = filter.filter(typeList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyTypeFilter.builder().name("onap.policies.optimization.Vim_fit").version("0.0.1").build();
+        filter = ToscaEntityFilter.<ToscaPolicyType>builder().name("onap.policies.optimization.Vim_fit")
+                .version("0.0.1").build();
         filteredList = filter.filter(typeList);
         assertEquals(0, filteredList.size());
     }
index ba39621..1dc9e53 100644 (file)
@@ -23,6 +23,7 @@ package org.onap.policy.models.tosca.authorative.concepts;
 
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 
 import java.util.LinkedHashMap;
 import org.junit.Test;
@@ -45,6 +46,10 @@ public class ToscaPolicyTest {
         policy.setType("my_type");
         policy.setTypeVersion("3.2.1");
 
+        ToscaEntity te = new ToscaEntity();
+        assertNull(te.getType());
+        assertNull(te.getTypeVersion());
+
         assertEquals("ToscaEntityKey(name=my_name, version=1.2.3)", policy.getKey().toString());
         assertEquals(new ToscaConceptIdentifier("my_name", "1.2.3"), policy.getKey().asIdentifier());
 
@@ -57,11 +62,11 @@ public class ToscaPolicyTest {
         assertEquals("3.2.1", type.getVersion());
 
         ToscaPolicy clonedPolicy0 = new ToscaPolicy(policy);
-        assertEquals(0, new ToscaPolicyComparator().compare(policy, clonedPolicy0));
+        assertEquals(0, new ToscaEntityComparator<ToscaPolicy>().compare(policy, clonedPolicy0));
 
         policy.setProperties(new LinkedHashMap<String, Object>());
         policy.getProperties().put("PropertyKey", "PropertyValue");
         ToscaPolicy clonedPolicy1 = new ToscaPolicy(policy);
-        assertEquals(0, new ToscaPolicyComparator().compare(policy, clonedPolicy1));
+        assertEquals(0, new ToscaEntityComparator<ToscaPolicy>().compare(policy, clonedPolicy1));
     }
 }
index 75c6b51..81e9c4f 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-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.
@@ -46,7 +46,7 @@ public class ToscaPolicyTypeTest {
         tpt.setDescription("Desc");
 
         ToscaPolicyType clonedTpt0 = new ToscaPolicyType(tpt);
-        assertEquals(0, new ToscaPolicyTypeComparator().compare(tpt, clonedTpt0));
+        assertEquals(0, new ToscaEntityComparator<ToscaPolicyType>().compare(tpt, clonedTpt0));
 
         tpt.setMetadata(new LinkedHashMap<>());
         tpt.setProperties(new LinkedHashMap<>());
@@ -57,6 +57,6 @@ public class ToscaPolicyTypeTest {
         tpt.getProperties().put("Property0", tp);
 
         ToscaPolicyType clonedTpt1 = new ToscaPolicyType(tpt);
-        assertEquals(0, new ToscaPolicyTypeComparator().compare(tpt, clonedTpt1));
+        assertEquals(0, new ToscaEntityComparator<ToscaPolicyType>().compare(tpt, clonedTpt1));
     }
 }
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateFilterTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaServiceTemplateFilterTest.java
deleted file mode 100644 (file)
index ba72e62..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- *  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.
- * 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.tosca.authorative.concepts;
-
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.util.List;
-import org.junit.Test;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardYamlCoder;
-import org.onap.policy.models.base.PfKey;
-
-/**
- * Test of the {@link ToscaServiceTemplateFilter} class.
- *
- * @author Liam Fallon (liam.fallon@est.tech)
- */
-public class ToscaServiceTemplateFilterTest {
-    @Test
-    public void testNullList() {
-        ToscaServiceTemplateFilter filter = ToscaServiceTemplateFilter.builder().build();
-
-        assertThatThrownBy(() -> {
-            filter.filter(null);
-        }).hasMessageMatching("originalList is marked .*on.*ull but is null");
-    }
-
-    @Test
-    public void testFilterNothing() throws CoderException {
-        ToscaServiceTemplates serviceTemplates = new StandardYamlCoder().decode(
-                new File("src/test/resources/servicetemplates/TestServiceTemplates.yaml"), ToscaServiceTemplates.class);
-
-        ToscaServiceTemplateFilter filter = ToscaServiceTemplateFilter.builder().build();
-
-        List<ToscaServiceTemplate> filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertTrue(filteredList.containsAll(serviceTemplates.getServiceTemplates()));
-    }
-
-    @Test
-    public void testFilterLatestVersion() throws CoderException {
-        ToscaServiceTemplates serviceTemplates = new StandardYamlCoder().decode(
-                new File("src/test/resources/servicetemplates/TestServiceTemplates.yaml"), ToscaServiceTemplates.class);
-
-        ToscaServiceTemplateFilter filter =
-                ToscaServiceTemplateFilter.builder().version(ToscaServiceTemplateFilter.LATEST_VERSION).build();
-
-        List<ToscaServiceTemplate> filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(4, filteredList.size());
-        assertEquals("0.0.0", filteredList.get(0).getVersion());
-        assertEquals("1.2.8", filteredList.get(1).getVersion());
-        assertEquals("1.2.3", filteredList.get(2).getVersion());
-        assertEquals("1.8.3", filteredList.get(3).getVersion());
-
-        filter = ToscaServiceTemplateFilter.builder().version("1.2.3").build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(3, filteredList.size());
-        filter = ToscaServiceTemplateFilter.builder().version(PfKey.NULL_KEY_VERSION).build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(6, filteredList.size());
-
-        serviceTemplates.getServiceTemplates().get(12).setVersion("0.0.0");
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(7, filteredList.size());
-        assertEquals(PfKey.NULL_KEY_VERSION, filteredList.get(0).getVersion());
-        assertEquals(PfKey.NULL_KEY_VERSION, filteredList.get(6).getVersion());
-    }
-
-    @Test
-    public void testFilterNameVersion() throws CoderException {
-        ToscaServiceTemplates serviceTemplates = new StandardYamlCoder().decode(
-                new File("src/test/resources/servicetemplates/TestServiceTemplates.yaml"), ToscaServiceTemplates.class);
-
-        ToscaServiceTemplateFilter filter = ToscaServiceTemplateFilter.builder().name("name0").build();
-        List<ToscaServiceTemplate> filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(13, filteredList.size());
-
-        filter = ToscaServiceTemplateFilter.builder().name("not.found").build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(0, filteredList.size());
-
-        filter = ToscaServiceTemplateFilter.builder().name(PfKey.NULL_KEY_NAME).build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(2, filteredList.size());
-
-        filter = ToscaServiceTemplateFilter.builder().version(PfKey.NULL_KEY_VERSION).build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(6, filteredList.size());
-
-        filter = ToscaServiceTemplateFilter.builder().name(PfKey.NULL_KEY_NAME).version(PfKey.NULL_KEY_VERSION).build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(2, filteredList.size());
-
-        filter = ToscaServiceTemplateFilter.builder().name("name2").build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(1, filteredList.size());
-
-        filter = ToscaServiceTemplateFilter.builder().name("name2").version("1.8.3").build();
-        filteredList = filter.filter(serviceTemplates.getServiceTemplates());
-        assertEquals(1, filteredList.size());
-        assertEquals("name2", filteredList.get(0).getName());
-        assertEquals("1.8.3", filteredList.get(0).getVersion());
-    }
-}
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,17 +43,17 @@ import org.slf4j.LoggerFactory;
 import org.yaml.snakeyaml.Yaml;
 
 /**
- * Test of the {@link ToscaPolicyFilter} class.
+ * Test of the {@link ToscaTypedEntityFilter} class.
  *
  * @author Liam Fallon (liam.fallon@est.tech)
  */
-public class ToscaPolicyFilterTest {
+public class ToscaTypedEntityFilterTest {
     private static final String VERSION_100 = "1.0.0";
 
     private static final String VERSION_000 = "0.0.0";
 
     // Logger for this class
-    private static final Logger LOGGER = LoggerFactory.getLogger(ToscaPolicyFilterTest.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToscaTypedEntityFilterTest.class);
 
     // @formatter:off
     private static final String[] policyResourceNames = {
@@ -121,7 +121,7 @@ public class ToscaPolicyFilterTest {
 
     @Test
     public void testNullList() {
-        ToscaPolicyFilter filter = ToscaPolicyFilter.builder().build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().build();
 
         assertThatThrownBy(() -> {
             filter.filter(null);
@@ -130,7 +130,7 @@ public class ToscaPolicyFilterTest {
 
     @Test
     public void testFilterNothing() {
-        ToscaPolicyFilter filter = ToscaPolicyFilter.builder().build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().build();
 
         List<ToscaPolicy> filteredList = filter.filter(policyList);
         assertTrue(filteredList.containsAll(policyList));
@@ -138,7 +138,8 @@ public class ToscaPolicyFilterTest {
 
     @Test
     public void testFilterLatestVersion() {
-        ToscaPolicyFilter filter = ToscaPolicyFilter.builder().version(ToscaPolicyFilter.LATEST_VERSION).build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter =
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().version(ToscaTypedEntityFilter.LATEST_VERSION).build();
 
         List<ToscaPolicy> filteredList = filter.filter(policyList);
         assertEquals(22, filteredList.size());
@@ -199,27 +200,30 @@ public class ToscaPolicyFilterTest {
 
     @Test
     public void testFilterNameVersion() {
-        ToscaPolicyFilter filter = ToscaPolicyFilter.builder().name("operational.modifyconfig").build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter =
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().name("operational.modifyconfig").build();
         List<ToscaPolicy> filteredList = filter.filter(policyList);
         assertEquals(1, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().name("guard.frequency.scaleout").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().name("guard.frequency.scaleout").build();
         filteredList = filter.filter(policyList);
         assertEquals(1, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().name("guard.frequency.scalein").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().name("guard.frequency.scalein").build();
         filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().version(VERSION_100).build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().version(VERSION_100).build();
         filteredList = filter.filter(policyList);
         assertEquals(22, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().name("OSDF_CASABLANCA.SubscriberPolicy_v1").version(VERSION_100).build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().name("OSDF_CASABLANCA.SubscriberPolicy_v1")
+                .version(VERSION_100).build();
         filteredList = filter.filter(policyList);
         assertEquals(1, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().name("operational.modifyconfig").version(VERSION_100).build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().name("operational.modifyconfig").version(VERSION_100)
+                .build();
         filteredList = filter.filter(policyList);
         assertEquals(1, filteredList.size());
     }
@@ -227,52 +231,56 @@ public class ToscaPolicyFilterTest {
     @Test
     public void testFilterVersionPrefix() {
         // null pattern
-        ToscaPolicyFilter filter = ToscaPolicyFilter.builder().versionPrefix(null).build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter =
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().versionPrefix(null).build();
         List<ToscaPolicy> filteredList = filter.filter(policyList);
         assertEquals(22, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().versionPrefix("1.").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().versionPrefix("1.").build();
         filteredList = filter.filter(policyList);
         assertEquals(22, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().versionPrefix("100.").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().versionPrefix("100.").build();
         filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
     }
 
     @Test
     public void testFilterTypeVersion() {
-        ToscaPolicyFilter filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.Operational").build();
+        ToscaTypedEntityFilter<ToscaPolicy> filter =
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().type("onap.policies.controlloop.Operational").build();
         List<ToscaPolicy> filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.operational.common.Apex").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().type("onap.policies.controlloop.operational.common.Apex")
+                .build();
         filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.operational.common.Drools").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder()
+                .type("onap.policies.controlloop.operational.common.Drools").build();
         filteredList = filter.filter(policyList);
         assertEquals(3, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().type("onap.policies.monitoring.tcagen2").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().type("onap.policies.monitoring.tcagen2").build();
         filteredList = filter.filter(policyList);
         assertEquals(3, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.NonOperational").build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().type("onap.policies.controlloop.NonOperational").build();
         filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().typeVersion(VERSION_000).build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().typeVersion(VERSION_000).build();
         filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().type("onap.policies.optimization.resource.HpaPolicy")
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().type("onap.policies.optimization.resource.HpaPolicy")
                 .typeVersion(VERSION_100).build();
         filteredList = filter.filter(policyList);
         assertEquals(2, filteredList.size());
 
-        filter = ToscaPolicyFilter.builder().type("onap.policies.controlloop.Operational").typeVersion(VERSION_000)
-                .build();
+        filter = ToscaTypedEntityFilter.<ToscaPolicy>builder().type("onap.policies.controlloop.Operational")
+                .typeVersion(VERSION_000).build();
         filteredList = filter.filter(policyList);
         assertEquals(0, filteredList.size());
     }
index f66a8e8..0f9adf8 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -45,9 +45,9 @@ import org.onap.policy.models.dao.PfDaoFactory;
 import org.onap.policy.models.dao.impl.DefaultPfDao;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaDataType;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaTopologyTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 import org.yaml.snakeyaml.Yaml;
 
 /**
@@ -166,7 +166,8 @@ public class AuthorativeToscaProviderPolicyTest {
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
-            new AuthorativeToscaProvider().getFilteredPolicies(null, ToscaPolicyFilter.builder().build());
+            new AuthorativeToscaProvider().getFilteredPolicies(null,
+                    ToscaTypedEntityFilter.<ToscaPolicy>builder().build());
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
@@ -178,7 +179,8 @@ public class AuthorativeToscaProviderPolicyTest {
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
-            new AuthorativeToscaProvider().getFilteredPolicyList(null, ToscaPolicyFilter.builder().build());
+            new AuthorativeToscaProvider().getFilteredPolicyList(null,
+                    ToscaTypedEntityFilter.<ToscaPolicy>builder().build());
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
@@ -203,8 +205,8 @@ public class AuthorativeToscaProviderPolicyTest {
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, createdPolicy));
         assertEquals(beforePolicy.getType(), createdPolicy.getType());
 
-        ToscaServiceTemplate gotServiceTemplate =
-                new AuthorativeToscaProvider().getFilteredPolicies(pfDao, ToscaPolicyFilter.builder().build());
+        ToscaServiceTemplate gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicies(pfDao,
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().build());
 
         ToscaPolicy gotPolicy =
                 gotServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyKey.getName());
@@ -212,14 +214,14 @@ public class AuthorativeToscaProviderPolicyTest {
         assertEquals(beforePolicy.getType(), gotPolicy.getType());
 
         gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicies(pfDao,
-                ToscaPolicyFilter.builder().name(policyKey.getName()).build());
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().name(policyKey.getName()).build());
 
         gotPolicy = gotServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyKey.getName());
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, gotPolicy));
         assertEquals(beforePolicy.getType(), gotPolicy.getType());
 
         gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicies(pfDao,
-                ToscaPolicyFilter.builder().name(policyKey.getName()).version(VERSION_100).build());
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().name(policyKey.getName()).version(VERSION_100).build());
 
         gotPolicy = gotServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyKey.getName());
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, gotPolicy));
@@ -229,18 +231,18 @@ public class AuthorativeToscaProviderPolicyTest {
         assertEquals(1, gotPolicyList.size());
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, gotPolicyList.get(0)));
 
-        gotPolicyList =
-                new AuthorativeToscaProvider().getFilteredPolicyList(pfDao, ToscaPolicyFilter.builder().build());
+        gotPolicyList = new AuthorativeToscaProvider().getFilteredPolicyList(pfDao,
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().build());
         assertEquals(1, gotPolicyList.size());
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, gotPolicyList.get(0)));
 
         gotPolicyList = new AuthorativeToscaProvider().getFilteredPolicyList(pfDao,
-                ToscaPolicyFilter.builder().name(policyKey.getName()).build());
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().name(policyKey.getName()).build());
         assertEquals(1, gotPolicyList.size());
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, gotPolicyList.get(0)));
 
         gotPolicyList = new AuthorativeToscaProvider().getFilteredPolicyList(pfDao,
-                ToscaPolicyFilter.builder().name(policyKey.getName()).version(VERSION_100).build());
+                ToscaTypedEntityFilter.<ToscaPolicy>builder().name(policyKey.getName()).version(VERSION_100).build());
         assertEquals(1, gotPolicyList.size());
         assertEquals(0, beforePolicy.compareNameVersion(beforePolicy, gotPolicyList.get(0)));
     }
index 0e11645..088e8e8 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
  *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,16 +43,14 @@ import org.onap.policy.models.dao.DaoParameters;
 import org.onap.policy.models.dao.PfDao;
 import org.onap.policy.models.dao.PfDaoFactory;
 import org.onap.policy.models.dao.impl.DefaultPfDao;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaTopologyTemplate;
 import org.yaml.snakeyaml.Yaml;
 
 /**
  * Test of the {@link AuthorativeToscaProvider} class.
- *
- * @author Liam Fallon (liam.fallon@est.tech)
  */
 public class AuthorativeToscaProviderPolicyTypeTest {
     private static final String VERSION = "version";
@@ -131,7 +129,7 @@ public class AuthorativeToscaProviderPolicyTypeTest {
 
         assertNotNull(toscaServiceTemplate);
         ToscaServiceTemplate createdServiceTemplate =
-            new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
+                new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
 
         PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
 
@@ -140,15 +138,15 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         assertEquals(true, beforePolicyType.getName().equals(createdPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
-        ToscaServiceTemplate gotServiceTemplate =
-            new AuthorativeToscaProvider().getPolicyTypes(pfDao, policyTypeKey.getName(), policyTypeKey.getVersion());
+        ToscaServiceTemplate gotServiceTemplate = new AuthorativeToscaProvider().getPolicyTypes(pfDao,
+                policyTypeKey.getName(), policyTypeKey.getVersion());
 
         ToscaPolicyType gotPolicyType = gotServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
         List<ToscaPolicyType> gotPolicyTypeList =
-            new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
+                new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
         assertEquals(2, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
@@ -164,9 +162,8 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         assertEquals(2, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
-        assertThatThrownBy(
-            () -> new AuthorativeToscaProvider().getPolicyTypeList(new DefaultPfDao(), POLICY_NO_VERSION, VERSION_001))
-                .hasMessageContaining("Policy Framework DAO has not been initialized");
+        assertThatThrownBy(() -> new AuthorativeToscaProvider().getPolicyTypeList(new DefaultPfDao(), POLICY_NO_VERSION,
+                VERSION_001)).hasMessageContaining("Policy Framework DAO has not been initialized");
 
         assertTrue(new AuthorativeToscaProvider().getPolicyTypeList(pfDao, "i.dont.Exist", VERSION_001).isEmpty());
     }
@@ -178,7 +175,8 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
-            new AuthorativeToscaProvider().getFilteredPolicyTypes(null, ToscaPolicyTypeFilter.builder().build());
+            new AuthorativeToscaProvider().getFilteredPolicyTypes(null,
+                    ToscaEntityFilter.<ToscaPolicyType>builder().build());
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
@@ -190,7 +188,8 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
-            new AuthorativeToscaProvider().getFilteredPolicyTypeList(null, ToscaPolicyTypeFilter.builder().build());
+            new AuthorativeToscaProvider().getFilteredPolicyTypeList(null,
+                    ToscaEntityFilter.<ToscaPolicyType>builder().build());
         }).hasMessageMatching(DAO_IS_NULL);
 
         assertThatThrownBy(() -> {
@@ -198,17 +197,17 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         }).hasMessageMatching("^filter is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().getFilteredPolicyTypeList(new DefaultPfDao(),
-            ToscaPolicyTypeFilter.builder().name("i.dont.Exist").build()))
-                .hasMessageContaining("Policy Framework DAO has not been initialized");
+                ToscaEntityFilter.<ToscaPolicyType>builder().name("i.dont.Exist").build()))
+                        .hasMessageContaining("Policy Framework DAO has not been initialized");
 
-        assertTrue(new AuthorativeToscaProvider()
-            .getFilteredPolicyTypeList(pfDao, ToscaPolicyTypeFilter.builder().name("i.dont.Exist").build()).isEmpty());
+        assertTrue(new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao,
+                ToscaEntityFilter.<ToscaPolicyType>builder().name("i.dont.Exist").build()).isEmpty());
 
         ToscaServiceTemplate toscaServiceTemplate = standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
 
         assertNotNull(toscaServiceTemplate);
         ToscaServiceTemplate createdServiceTemplate =
-            new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
+                new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
 
         PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
 
@@ -217,49 +216,49 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         assertEquals(true, beforePolicyType.getName().equals(createdPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
-        ToscaServiceTemplate gotServiceTemplate =
-            new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao, ToscaPolicyTypeFilter.builder().build());
+        ToscaServiceTemplate gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao,
+                ToscaEntityFilter.<ToscaPolicyType>builder().build());
 
         ToscaPolicyType gotPolicyType = gotServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), gotPolicyType.getDescription()));
 
         gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao,
-            ToscaPolicyTypeFilter.builder().name(policyTypeKey.getName()).build());
+                ToscaEntityFilter.<ToscaPolicyType>builder().name(policyTypeKey.getName()).build());
 
         gotPolicyType = gotServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), gotPolicyType.getDescription()));
 
-        gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao,
-            ToscaPolicyTypeFilter.builder().name(policyTypeKey.getName()).version(VERSION_001).build());
+        gotServiceTemplate = new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao, ToscaEntityFilter
+                .<ToscaPolicyType>builder().name(policyTypeKey.getName()).version(VERSION_001).build());
 
         gotPolicyType = gotServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), gotPolicyType.getDescription()));
 
         List<ToscaPolicyType> gotPolicyTypeList =
-            new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
+                new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
         assertEquals(2, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
-        gotPolicyTypeList =
-            new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao, ToscaPolicyTypeFilter.builder().build());
+        gotPolicyTypeList = new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao,
+                ToscaEntityFilter.<ToscaPolicyType>builder().build());
         assertEquals(2, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
         gotPolicyTypeList = new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao,
-            ToscaPolicyTypeFilter.builder().name(policyTypeKey.getName()).build());
+                ToscaEntityFilter.<ToscaPolicyType>builder().name(policyTypeKey.getName()).build());
         assertEquals(1, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
-        gotPolicyTypeList = new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao,
-            ToscaPolicyTypeFilter.builder().name(policyTypeKey.getName()).version(VERSION_001).build());
+        gotPolicyTypeList = new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao, ToscaEntityFilter
+                .<ToscaPolicyType>builder().name(policyTypeKey.getName()).version(VERSION_001).build());
         assertEquals(1, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
         gotPolicyTypeList = new AuthorativeToscaProvider().getFilteredPolicyTypeList(pfDao,
-            ToscaPolicyTypeFilter.builder().version("1.0.0").build());
+                ToscaEntityFilter.<ToscaPolicyType>builder().version("1.0.0").build());
         assertEquals(1, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
     }
@@ -292,7 +291,7 @@ public class AuthorativeToscaProviderPolicyTypeTest {
 
         assertNotNull(toscaServiceTemplate);
         ToscaServiceTemplate createdServiceTemplate =
-            new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
+                new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
 
         PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
 
@@ -324,7 +323,7 @@ public class AuthorativeToscaProviderPolicyTypeTest {
 
         assertNotNull(toscaServiceTemplate);
         ToscaServiceTemplate createdServiceTemplate =
-            new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
+                new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
 
         PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
 
@@ -334,7 +333,7 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
         ToscaServiceTemplate updatedServiceTemplate =
-            new AuthorativeToscaProvider().updatePolicyTypes(pfDao, toscaServiceTemplate);
+                new AuthorativeToscaProvider().updatePolicyTypes(pfDao, toscaServiceTemplate);
 
         ToscaPolicyType updatedPolicy = updatedServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(updatedPolicy.getName()));
@@ -375,7 +374,7 @@ public class AuthorativeToscaProviderPolicyTypeTest {
 
         assertNotNull(toscaServiceTemplate);
         ToscaServiceTemplate createdServiceTemplate =
-            new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
+                new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplate);
 
         PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
 
@@ -384,8 +383,8 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         assertEquals(true, beforePolicyType.getName().equals(createdPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
-        ToscaServiceTemplate deletedServiceTemplate =
-            new AuthorativeToscaProvider().deletePolicyType(pfDao, policyTypeKey.getName(), policyTypeKey.getVersion());
+        ToscaServiceTemplate deletedServiceTemplate = new AuthorativeToscaProvider().deletePolicyType(pfDao,
+                policyTypeKey.getName(), policyTypeKey.getVersion());
 
         ToscaPolicyType deletedPolicy = deletedServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(deletedPolicy.getName()));
@@ -422,6 +421,6 @@ public class AuthorativeToscaProviderPolicyTypeTest {
     @Test
     public void testNullParameters() throws Exception {
         assertThatThrownBy(() -> new AuthorativeToscaProvider().getPolicyTypeList(null, null, null))
-            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
     }
 }