X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-dao%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fdao%2FPfDao.java;fp=models-dao%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fdao%2FPfDao.java;h=21f3a7fa6015338962e770a3d71e77e762a81ace;hb=389c85c8e7213c10c17896f4c63d94e2b5e9d27a;hp=380a9831ed498cfafad110169fae0766d156d4d4;hpb=107b75a2b584222f7d5dcdbec64063c036b4f2b2;p=policy%2Fmodels.git diff --git a/models-dao/src/main/java/org/onap/policy/models/dao/PfDao.java b/models-dao/src/main/java/org/onap/policy/models/dao/PfDao.java index 380a9831e..21f3a7fa6 100644 --- a/models-dao/src/main/java/org/onap/policy/models/dao/PfDao.java +++ b/models-dao/src/main/java/org/onap/policy/models/dao/PfDao.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2021 Nordix Foundation. + * Copyright (C) 2019-2021, 2024 Nordix Foundation. * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2022 Bell Canada. All rights reserved. * ================================================================================ @@ -36,6 +36,54 @@ import org.onap.policy.models.base.PfTimestampKey; * to and from databases using JDBC. */ public interface PfDao { + String NAME = "name"; + String VERSION = "version"; + String TIMESTAMP = "timeStamp"; + String PARENT_NAME = "parentname"; + String PARENT_VERSION = "parentversion"; + String LOCAL_NAME = "localname"; + + String TABLE_TOKEN = "__TABLE__"; + + String DELETE_FROM_TABLE = "DELETE FROM __TABLE__ c"; + + String SELECT_FROM_TABLE = "SELECT c FROM __TABLE__ c"; + + String WHERE = " WHERE "; + String AND = " AND "; + String ORDER_BY = " ORDER BY c."; + + String NAME_FILTER = "c.key.name = :name"; + String VERSION_FILTER = "c.key.version = :version"; + String TIMESTAMP_FILTER = "c.key.timeStamp = :timeStamp"; + String PARENT_NAME_FILTER = "c.key.parentKeyName = :parentname"; + String PARENT_VERSION_FILTER = "c.key.parentKeyVersion = :parentversion"; + String LOCAL_NAME_FILTER = "c.key.localName = :localname"; + + String CLONE_ERR_MSG = "Could not clone object of class \"{}\""; + + String DELETE_BY_CONCEPT_KEY = + DELETE_FROM_TABLE + WHERE + NAME_FILTER + AND + VERSION_FILTER; + + String DELETE_BY_TIMESTAMP_KEY = + DELETE_FROM_TABLE + WHERE + NAME_FILTER + AND + VERSION_FILTER + AND + TIMESTAMP_FILTER; + + String DELETE_BY_REFERENCE_KEY = + DELETE_FROM_TABLE + WHERE + PARENT_NAME_FILTER + AND + PARENT_VERSION_FILTER + AND + LOCAL_NAME_FILTER; + + String SELECT_ALL_FOR_PARENT = + SELECT_FROM_TABLE + WHERE + PARENT_NAME_FILTER + AND + PARENT_VERSION_FILTER; + + String SELECT_ALL_VERSIONS_FOR_PARENT = + SELECT_FROM_TABLE + WHERE + PARENT_NAME_FILTER; + + String SELECT_ALL_VERSIONS = SELECT_FROM_TABLE + WHERE + NAME_FILTER; + + String SELECT_BY_CONCEPT_KEY = + SELECT_FROM_TABLE + WHERE + NAME_FILTER + AND + VERSION_FILTER; + + String SELECT_BY_REFERENCE_KEY = + SELECT_FROM_TABLE + WHERE + PARENT_NAME_FILTER + AND + PARENT_VERSION_FILTER + AND + LOCAL_NAME_FILTER; /** * Initialize the Policy Framework DAO with the given parameters. @@ -51,7 +99,7 @@ public interface PfDao { void close(); /** - * Creates an Policy Framework concept on the database. + * Creates a Policy Framework concept on the database. * * @param the type of the object to create, a subclass of {@link PfConcept} * @param obj the object to create @@ -59,7 +107,7 @@ public interface PfDao { void create(T obj); /** - * Delete an Policy Framework concept on the database. + * Delete a Policy Framework concept on the database. * * @param the type of the object to delete, a subclass of {@link PfConcept} * @param obj the object to delete @@ -67,28 +115,28 @@ public interface PfDao { void delete(T obj); /** - * Delete an Policy Framework concept on the database. + * Delete a Policy Framework concept on the database. * - * @param the type of the object to delete, a subclass of {@link PfConcept} + * @param the type of the object to delete, a subclass of {@link PfConcept} * @param someClass the class of the object to delete, a subclass of {@link PfConcept} - * @param key the key of the object to delete + * @param key the key of the object to delete */ void delete(Class someClass, PfConceptKey key); /** - * Delete an Policy Framework concept on the database. + * Delete a Policy Framework concept on the database. * - * @param the type of the object to delete, a subclass of {@link PfConcept} + * @param the type of the object to delete, a subclass of {@link PfConcept} * @param someClass the class of the object to delete, a subclass of {@link PfConcept} - * @param key the key of the object to delete + * @param key the key of the object to delete */ void delete(Class someClass, PfReferenceKey key); /** - * Delete an Policy Framework concept on the database. + * Delete a Policy Framework concept on the database. * - * @param the type of the object to delete, a subclass of {@link PfConcept} - * @param someClass the class of the object to delete, a subclass of {@link PfConcept} + * @param the type of the object to delete, a subclass of {@link PfConcept} + * @param someClass the class of the object to delete, a subclass of {@link PfConcept} * @param timeStampKey the PfTimestampKey of the object to delete */ void delete(Class someClass, PfTimestampKey timeStampKey); @@ -96,7 +144,7 @@ public interface PfDao { /** * Create a collection of objects in the database. * - * @param the type of the object to create, a subclass of {@link PfConcept} + * @param the type of the object to create, a subclass of {@link PfConcept} * @param objs the objects to create */ void createCollection(Collection objs); @@ -104,7 +152,7 @@ public interface PfDao { /** * Delete a collection of objects in the database. * - * @param the type of the objects to delete, a subclass of {@link PfConcept} + * @param the type of the objects to delete, a subclass of {@link PfConcept} * @param objs the objects to delete */ void deleteCollection(Collection objs); @@ -112,9 +160,9 @@ public interface PfDao { /** * Delete a collection of objects in the database referred to by concept key. * - * @param the type of the objects to delete, a subclass of {@link PfConcept} + * @param the type of the objects to delete, a subclass of {@link PfConcept} * @param someClass the class of the objects to delete, a subclass of {@link PfConcept} - * @param keys the keys of the objects to delete + * @param keys the keys of the objects to delete * @return the number of objects deleted */ int deleteByConceptKey(Class someClass, Collection keys); @@ -122,9 +170,9 @@ public interface PfDao { /** * Delete a collection of objects in the database referred to by reference key. * - * @param the type of the objects to delete, a subclass of {@link PfConcept} + * @param the type of the objects to delete, a subclass of {@link PfConcept} * @param someClass the class of the objects to delete, a subclass of {@link PfConcept} - * @param keys the keys of the objects to delete + * @param keys the keys of the objects to delete * @return the number of objects deleted */ int deleteByReferenceKey(Class someClass, Collection keys); @@ -132,7 +180,7 @@ public interface PfDao { /** * Delete all objects of a given class in the database. * - * @param the type of the objects to delete, a subclass of {@link PfConcept} + * @param the type of the objects to delete, a subclass of {@link PfConcept} * @param someClass the class of the objects to delete, a subclass of {@link PfConcept} */ void deleteAll(Class someClass); @@ -140,12 +188,12 @@ public interface PfDao { /** * Get an object from the database, referred to by concept key. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept}, if name is null, all concepts - * of type T are returned, if name is not null and version is null, all versions of that concept matching the - * name are returned. - * @param name the name of the object to get, null returns all objects - * @param version the version the object to get, null returns all objects for a specified name + * of type T are returned, if name is not null and version is null, all versions of that concept + * matching the name are returned. + * @param name the name of the object to get, null returns all objects + * @param version the version the object to get, null returns all objects for a specified name * @return the objects that was retrieved from the database */ List getFiltered(Class someClass, String name, String version); @@ -153,10 +201,10 @@ public interface PfDao { /** * Get an object from the database, referred to by concept key. * - * @param the type of the object to get, a subclass of {@link PfConcept} - * @param someClass the class of the object to get, a subclass of {@link PfConcept}, if name is null, all concepts - * of type T are returned, if name is not null and version is null, all versions of that concept matching the - * name are returned. + * @param the type of the object to get, a subclass of {@link PfConcept} + * @param someClass the class of the object to get, a subclass of {@link PfConcept}, if name is null, all + * concepts of type T are returned, if name is not null and version is null, all versions of + * that concept matching the name are returned. * @param filterParams filter parameters * @return the objects that was retrieved from the database */ @@ -165,9 +213,9 @@ public interface PfDao { /** * Get an object from the database, referred to by concept key. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept} - * @param key the PfConceptKey of the object to get + * @param key the PfConceptKey of the object to get * @return the object that was retrieved from the database */ T get(Class someClass, PfConceptKey key); @@ -175,9 +223,9 @@ public interface PfDao { /** * Get an object from the database, referred to by reference key. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept} - * @param key the PfReferenceKey of the object to get + * @param key the PfReferenceKey of the object to get * @return the object that was retrieved from the database or null if the object was not retrieved */ T get(Class someClass, PfReferenceKey key); @@ -185,8 +233,8 @@ public interface PfDao { /** * Get an object from the database, referred to by reference key. * - * @param the type of the object to get, a subclass of {@link PfConcept} - * @param someClass the class of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} + * @param someClass the class of the object to get, a subclass of {@link PfConcept} * @param timestampKey the PfTimestampKey of the object to get * @return the object that was retrieved from the database or null if the object was not retrieved */ @@ -195,9 +243,9 @@ public interface PfDao { /** * Get an object from the database, referred to by reference timestamp key. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept} - * @param key the PfReferenceTimestampKey of the object to get + * @param key the PfReferenceTimestampKey of the object to get * @return the object that was retrieved from the database or null if the object was not retrieved */ T get(Class someClass, PfReferenceTimestampKey key); @@ -205,7 +253,7 @@ public interface PfDao { /** * Get all the objects in the database of a given type. * - * @param the type of the objects to get, a subclass of {@link PfConcept} + * @param the type of the objects to get, a subclass of {@link PfConcept} * @param someClass the class of the objects to get, a subclass of {@link PfConcept} * @return the objects or null if no objects were retrieved */ @@ -214,7 +262,7 @@ public interface PfDao { /** * Get all the objects in the database of the given type with the given parent concept key. * - * @param the type of the objects to get, a subclass of {@link PfConcept} + * @param the type of the objects to get, a subclass of {@link PfConcept} * @param someClass the class of the objects to get, a subclass of {@link PfConcept} * @param parentKey the parent key of the concepts to get * @return the all @@ -224,9 +272,9 @@ public interface PfDao { /** * Get all the objects in the database of a given type. * - * @param the type of the objects to get, a subclass of {@link PfConcept} - * @param someClass the class of the objects to get, a subclass of {@link PfConcept} - * @param orderBy field from class to order results by + * @param the type of the objects to get, a subclass of {@link PfConcept} + * @param someClass the class of the objects to get, a subclass of {@link PfConcept} + * @param orderBy field from class to order results by * @param numRecords number of records to be retrieved * @return the objects or null if no objects were retrieved */ @@ -235,9 +283,9 @@ public interface PfDao { /** * Get all the objects in the database of a given type. * - * @param the type of the objects to get, a subclass of {@link PfConcept} + * @param the type of the objects to get, a subclass of {@link PfConcept} * @param someClass the class of the objects to get, a subclass of {@link PfConcept} - * @param name the name of the concepts for which to get all versions + * @param name the name of the concepts for which to get all versions * @return the objects or null if no objects were retrieved */ List getAllVersions(Class someClass, final String name); @@ -245,8 +293,8 @@ public interface PfDao { /** * Get all the objects in the database of a given type. * - * @param the type of the objects to get, a subclass of {@link PfConcept} - * @param someClass the class of the objects to get, a subclass of {@link PfConcept} + * @param the type of the objects to get, a subclass of {@link PfConcept} + * @param someClass the class of the objects to get, a subclass of {@link PfConcept} * @param parentKeyName the name of the concepts for which to get all versions * @return the objects or null if no objects were retrieved */ @@ -255,7 +303,7 @@ public interface PfDao { /** * Get a concept from the database with the given concept key. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept} * @param conceptId the concept key of the concept to get * @return the concept that matches the key or null if the concept is not retrieved @@ -265,7 +313,7 @@ public interface PfDao { /** * Get a concept from the database with the given reference key. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept} * @param conceptId the concept key of the concept to get * @return the concept that matches the key or null if the concept is not retrieved @@ -275,7 +323,7 @@ public interface PfDao { /** * Get the number of instances of a concept that exist in the database. * - * @param the type of the object to get, a subclass of {@link PfConcept} + * @param the type of the object to get, a subclass of {@link PfConcept} * @param someClass the class of the object to get, a subclass of {@link PfConcept} * @return the number of instances of the concept in the database */