+
+ /**
+ * generate filter string with the filter value in TimestampKey.
+ *
+ * @param inputFilterString current filterString generated from FilterMap
+ * @param name the pdp name the start timeStamp to filter from database, filter rule: startTime <= filteredRecord
+ * timeStamp <= endTime. null for ignore start time.
+ * @param endTime the end timeStamp to filter from database, filter rule: startTime <= filteredRecord timeStamp <=
+ * endTime. null for ignore end time
+ * @return the filter string to query database
+ */
+ private String addKeyFilterString(String inputFilterString, final String name, final Date startTime,
+ final Date endTime) {
+ String filterQueryString;
+ if (name != null) {
+ inputFilterString += NAME_FILTER + AND;
+ }
+ if (startTime != null) {
+ if (endTime != null) {
+ filterQueryString = inputFilterString + TIMESTAMP_START_FILTER + AND + TIMESTAMP_END_FILTER;
+ } else {
+ filterQueryString = inputFilterString + TIMESTAMP_START_FILTER;
+ }
+ } else {
+ if (endTime != null) {
+ filterQueryString = inputFilterString + TIMESTAMP_END_FILTER;
+ } else {
+ filterQueryString = inputFilterString.substring(0, inputFilterString.length() - AND.length());
+ }
+ }
+
+ return filterQueryString;
+ }
+
+ /**
+ * check the result get from database and return the object.
+ *
+ * @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 t the object that was retrieved from the database
+ * @return the checked object or null
+ */
+ private <T extends PfConcept> T checkAndReturn(final Class<T> someClass, final T objToCheck) {
+ if (objToCheck != null) {
+ try {
+ return PfUtils.makeCopy(objToCheck);
+ } catch (final Exception e) {
+ LOGGER.warn(CLONE_ERR_MSG, someClass.getName(), e);
+ }
+ }
+ return null;
+ }