import java.util.Map;
import org.onap.policy.models.base.PfConcept;
import org.onap.policy.models.base.PfConceptKey;
+import org.onap.policy.models.base.PfGeneratedIdKey;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.base.PfReferenceKey;
import org.onap.policy.models.base.PfReferenceTimestampKey;
*/
<T extends PfConcept> void delete(Class<T> someClass, PfTimestampKey timeStampKey);
+ /**
+ * Delete an Policy Framework concept on the database.
+ *
+ * @param <T> 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 idKey the PfConceptIdKey of the object to delete
+ */
+ <T extends PfConcept> void delete(Class<T> someClass, PfGeneratedIdKey idKey);
+
/**
* Create a collection of objects in the database.
*
*/
<T extends PfConcept> T get(Class<T> someClass, PfTimestampKey timestampKey);
+ /**
+ * Get an object from the database, referred to by reference key.
+ *
+ * @param <T> 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 idKey the PfConceptIdKey of the object to get
+ * @return the object that was retrieved from the database or null if the object was not retrieved
+ */
+ <T extends PfConcept> T get(Class<T> someClass, PfGeneratedIdKey idKey);
+
/**
* Get an object from the database, referred to by reference timestamp key.
*
*/
<T extends PfConcept> List<T> getAllVersionsByParent(Class<T> someClass, final String parentKeyName);
+ /**
+ * Get all the objects in the database of a given type.
+ *
+ * @param <T> 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 key the key of the PfGeneratedIdKey to get
+ * @param timeStamp the timeStamp of the concepts to get
+ * @return the objects or null if no objects were retrieved
+ */
+ <T extends PfConcept> List<T> getByTimestamp(final Class<T> someClass,
+ final PfGeneratedIdKey key, final Instant timeStamp);
+
/**
* Get a concept from the database with the given concept key.
*