aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java')
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java751
1 files changed, 301 insertions, 450 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java
index 41c7008e9..4a90d1bce 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/NewConfigurationDBRead.java
@@ -1,450 +1,301 @@
-//package at.gv.egovernment.moa.id.commons.db;
-//
-//import java.util.ArrayList;
-//import java.util.Collections;
-//import java.util.Date;
-//import java.util.List;
-//import java.util.Map;
-//
-//import org.springframework.beans.factory.annotation.Autowired;
-//
-//import at.gv.egiz.components.configuration.api.ConfigurationException;
-//import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
-//import at.gv.egovernment.moa.id.commons.config.persistence.MOAIDConfiguration;
-//import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentGeneral;
-//import at.gv.egovernment.moa.id.commons.db.dao.config.ChainingModes;
-//import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs;
-//import at.gv.egovernment.moa.id.commons.db.dao.config.GenericConfiguration;
-//import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;
-//
-//import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase;
-//import at.gv.egovernment.moa.logging.Logger;
-//
-///**
-// *
-// *
-// */
-//public class NewConfigurationDBRead {
-//
-// private static MOAIDConfiguration conf;
-//
-// @Autowired(required = true)
-// public void setConfiguration(MOAIDConfiguration conf) {
-// // https://jira.spring.io/browse/SPR-3845
-// NewConfigurationDBRead.conf = conf;
-// }
-//
-// @SuppressWarnings("unchecked")
-// public static <T extends Iterable<?>> T nullGuard(T item) {
-// if (item == null) {
-// return (T) Collections.emptyList();
-// } else {
-// return item;
-// }
-//
-// }
-//
-// public static Map<String, String> getOnlineApplicationKeyValueWithId(String id) {
-// try {
-// return conf.getOnlineApplication(id);
-//
-// } catch (ConfigurationException e) {
-// Logger.warn("OnlineApplication with Id: " + id + " not found.", e);
-// return null;
-//
-// }
-// }
-//
-//
-//
-// /**
-// *
-// * @return
-// */
-// public static List<UserDatabase> getAllUsers() {
-// Logger.trace("Get All Users from database.");
-//
-//// // select userdatabase from UserDatabase userdatabase
-//// List<UserDatabase> result = conf.getList("getAllUsers", UserDatabase.class);
-//// if (result.size() == 0) {
-//// Logger.trace("No entries found.");
-//// return null;
-//// }
-////
-//// return result;
-//
-// //TODO!!!
-// return null;
-// }
-//
-// /**
-// *
-// * @return
-// */
-// public static List<OnlineApplication> getAllOnlineApplications() {
-// Logger.trace("Get All OnlineApplications from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication
-//// return conf.getList(MOAIDConfigurationConstants.ONLINE_APPLICATIONS_KEY, OnlineApplication.class);
-//
-// //TODO!!!
-// return null;
-//
-// }
-//
-// /**
-// *
-// * @return
-// */
-// public static List<OnlineApplication> getAllNewOnlineApplications() {
-// Logger.trace("Get All New OnlineApplications from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication
-// // where onlineapplication.isActive = '0' and onlineapplication.isAdminRequired = '1'
-// List<OnlineApplication> result = new ArrayList<OnlineApplication>();
-// List<OnlineApplication> allOAs = getAllOnlineApplications();
-//
-// for (OnlineApplication oa : nullGuard(allOAs)) {
-// if (!oa.isIsActive() && oa.isIsAdminRequired()) {
-// result.add(oa);
-// }
-// }
-//
-// if (result.size() == 0) {
-// Logger.trace("No entries found.");
-// return null;
-// }
-//
-// return result;
-// }
-//
-//// /**
-//// *
-//// * @return
-//// */
-//// public static at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration getMOAIDConfiguration() {
-//// Logger.trace("Load MOAID Configuration from database.");
-////
-//// AuthComponentGeneral authComponent = (AuthComponentGeneral) conf.get(MOAIDConfigurationConstants.AUTH_COMPONENT_GENERAL_KEY,
-//// AuthComponentGeneral.class);
-////
-//// ChainingModes chainingModes = (ChainingModes) conf.get(MOAIDConfigurationConstants.CHAINING_MODES_KEY, ChainingModes.class);
-//// List<GenericConfiguration> genericConfigurations = (List<GenericConfiguration>) conf.getList(
-//// MOAIDConfigurationConstants.GENERIC_CONFIGURATION_KEY, GenericConfiguration.class);
-//// String trustedCaCertificates = (String) conf.get(MOAIDConfigurationConstants.TRUSTED_CERTIFICATES_KEY, String.class);
-//// DefaultBKUs defaultBKUs = (DefaultBKUs) conf.get(MOAIDConfigurationConstants.DEFAULT_BKUS_KEY, DefaultBKUs.class);
-//// SLRequestTemplates slrRequestRemplates = (SLRequestTemplates) conf.get(MOAIDConfigurationConstants.SLREQUEST_TEMPLATES_KEY,
-//// SLRequestTemplates.class);
-//// Date timeStamp = (Date) conf.get(MOAIDConfigurationConstants.TIMESTAMP_ITEM_KEY, Date.class);
-//// Date pvp2Refresh = (Date) conf.get(MOAIDConfigurationConstants.PVP2REFRESH_ITEM_KEY, Date.class);
-////
-//// // if (authComponent == null || chainingModes == null || trustedCaCertificates == null || defaultBKUs == null
-//// // || slrRequestRemplates == null || timeStamp == null || pvp2Refresh == null
-//// //
-//// // ) {
-//// // // TODO: is there a better approach in case of error?
-//// // Logger.trace("Not all necessary data available. Create fresh instance.");
-//// // return new MOAIDConfiguration();
-//// // }
-////
-//// // select moaidconfiguration from MOAIDConfiguration moaidconfiguration
-//// at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration result = new at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration();
-//// result.setAuthComponentGeneral(authComponent);
-//// result.setChainingModes(chainingModes);
-//// result.setGenericConfiguration(genericConfigurations);
-//// result.setTrustedCACertificates(trustedCaCertificates);
-//// result.setDefaultBKUs(defaultBKUs);
-//// result.setSLRequestTemplates(slrRequestRemplates);
-//// result.setTimestampItem(timeStamp);
-//// result.setPvp2RefreshItem(pvp2Refresh);
-////
-//// return result;
-//// }
-//
-// /**
-// *
-// * @return
-// */
-// public static List<OnlineApplication> getAllActiveOnlineApplications() {
-// Logger.trace("Get All New OnlineApplications from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication
-// // where onlineapplication.isActive = '1'
-// List<OnlineApplication> result = new ArrayList<OnlineApplication>();
-// List<OnlineApplication> allOAs = getAllOnlineApplications();
-//
-// for (OnlineApplication oa : nullGuard(allOAs)) {
-// if (oa.isIsActive()) {
-// result.add(oa);
-// }
-// }
-//
-// if (result.size() == 0) {
-// Logger.trace("No entries found.");
-// return null;
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param id
-// * @return
-// */
-// public static OnlineApplication getActiveOnlineApplication(String id) {
-// Logger.trace("Getting Active OnlineApplication with ID " + id + " from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication
-// // where onlineapplication.publicURLPrefix =
-// // SUBSTRING(:id, 1, LENGTH(onlineapplication.publicURLPrefix)) and onlineapplication.isActive = '1'
-// OnlineApplication result = null;
-// List<OnlineApplication> allActiveOAs = getAllActiveOnlineApplications();
-//
-// for (OnlineApplication oa : nullGuard(allActiveOAs)) {
-// String publicUrlPrefix = oa.getPublicURLPrefix();
-// if (publicUrlPrefix != null && publicUrlPrefix.length() <= id.length()) {
-// if ((id.substring(1, publicUrlPrefix.length()).equals(publicUrlPrefix))) {
-// if (result != null) {
-// Logger.warn("OAIdentifier match to more then one DB-entry!");
-// return null;
-// } else {
-// result = oa;
-// }
-// }
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param dbid
-// * @return
-// */
-// public static OnlineApplication getOnlineApplication(long dbid) {
-// Logger.trace("Getting OnlineApplication with DBID " + dbid + " from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication where onlineapplication.hjid = :id
-// OnlineApplication result = null;
-// List<OnlineApplication> allOAs = getAllOnlineApplications();
-//
-// for (OnlineApplication oa : nullGuard(allOAs)) {
-// if (oa.getHjid() == dbid) {
-// result = oa;
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param id
-// * @return
-// */
-// public static OnlineApplication getOnlineApplication(String id) {
-// Logger.trace("Getting OnlineApplication with ID " + id + " from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication
-// // where onlineapplication.publicURLPrefix = SUBSTRING(:id, 1, LENGTH(onlineapplication.publicURLPrefix))
-// OnlineApplication result = null;
-// List<OnlineApplication> allOAs = getAllOnlineApplications();
-//
-// for (OnlineApplication oa : nullGuard(allOAs)) {
-// String publicUrlPrefix = oa.getPublicURLPrefix();
-// if (publicUrlPrefix != null && publicUrlPrefix.length() <= id.length()) {
-// if (id.substring(1, publicUrlPrefix.length()).equals(publicUrlPrefix)) {
-// if (result != null) {
-// Logger.warn("OAIdentifier match to more then one DB-entry!");
-// return null;
-// } else {
-// result = oa;
-// }
-// }
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param id
-// * @return
-// */
-// public static List<OnlineApplication> searchOnlineApplications(String id) {
-// Logger.trace("Getting OnlineApplication with ID " + id + " from database.");
-//
-// // select onlineapplication from OnlineApplication onlineapplication
-// // where onlineapplication.friendlyName like :id
-// List<OnlineApplication> result = new ArrayList<OnlineApplication>();
-// List<OnlineApplication> allOAs = getAllOnlineApplications();
-//
-// for (OnlineApplication oa : nullGuard(allOAs)) {
-// if (id.equals(oa.getFriendlyName())) {
-// result.add(oa);
-// }
-// }
-//
-// if (result.size() == 0) {
-// Logger.trace("No entries found.");
-// return null;
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @return
-// */
-// public static List<UserDatabase> getAllOpenUsersRequests() {
-// Logger.trace("Get all new Users from Database");
-//
-// // select userdatabase from UserDatabase userdatabase
-// // where userdatabase.userRequestTokken is not null
-// // and userdatabase.isAdminRequest = '1' and userdatabase.isMailAddressVerified = '0'
-// List<UserDatabase> result = new ArrayList<UserDatabase>();
-// List<UserDatabase> allUsers = getAllUsers();
-//
-// for (UserDatabase user : nullGuard(allUsers)) {
-// // TODO check result of query "... userdatabase.userRequestTokken is not null" if Tokken is null -> (null, "NULL", "", ... ?)
-// if ((user.getUserRequestTokken() != null && !user.getUserRequestTokken().isEmpty() && !user.getUserRequestTokken().equals("NULL"))
-// && (user.isIsAdminRequest()) && (!user.isIsMailAddressVerified())) {
-// result.add(user);
-// }
-// }
-//
-// if (result.size() == 0) {
-// Logger.trace("No entries found.");
-// return null;
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param tokken
-// * @return
-// */
-// public static UserDatabase getNewUserWithTokken(String tokken) {
-// Logger.trace("Getting Userinformation with Tokken " + tokken + " from database.");
-//
-// // select userdatabase from UserDatabase userdatabase where userdatabase.userRequestTokken = :tokken
-// UserDatabase result = null;
-// List<UserDatabase> allUsers = getAllUsers();
-//
-// for (UserDatabase user : nullGuard(allUsers)) {
-// if (user.getUserRequestTokken().equals(tokken)) {
-// result = user;
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param id
-// * @return
-// */
-// public static UserDatabase getUsersWithOADBID(long id) {
-// Logger.trace("Getting Userinformation with OADBID " + id + " from database.");
-//
-// // select userdatabase from UserDatabase userdatabase
-// // inner join userdatabase.onlineApplication oa where oa.hjid = :id
-// UserDatabase result = null;
-// List<UserDatabase> allUsers = getAllUsers();
-//
-// boolean quit = false;
-// for (UserDatabase user : nullGuard(allUsers)) {
-//
-// for (OnlineApplication oa : user.getOnlineApplication()) {
-//
-// if (oa.getHjid() == id) {
-// result = user;
-// quit = true;
-// break;
-// }
-// }
-//
-// if (quit) {
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param id
-// * @return
-// */
-// public static UserDatabase getUserWithID(long id) {
-// Logger.trace("Getting Userinformation with ID " + id + " from database.");
-//
-// // select userdatabase from UserDatabase userdatabase where userdatabase.hjid = :id
-// UserDatabase result = null;
-// List<UserDatabase> allUsers = getAllUsers();
-//
-// for (UserDatabase user : nullGuard(allUsers)) {
-// if (user.getHjid() == id) {
-// result = user;
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param username
-// * @return
-// */
-// public static UserDatabase getUserWithUserName(String username) {
-// Logger.trace("Getting Userinformation with ID " + username + " from database.");
-//
-// // select userdatabase from UserDatabase userdatabase where userdatabase.username = :username
-// UserDatabase result = null;
-// List<UserDatabase> allUsers = getAllUsers();
-//
-// for (UserDatabase user : nullGuard(allUsers)) {
-// if (user.getUsername().equals(username)) {
-// result = user;
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-// /**
-// *
-// * @param bpkwbpk
-// * @return
-// */
-// public static UserDatabase getUserWithUserBPKWBPK(String bpkwbpk) {
-// Logger.trace("Getting Userinformation with ID " + bpkwbpk + " from database.");
-//
-// // select userdatabase from UserDatabase userdatabase where userdatabase.bpk = :bpk
-// UserDatabase result = null;
-// List<UserDatabase> allUsers = getAllUsers();
-//
-// for (UserDatabase user : nullGuard(allUsers)) {
-// if (user.getBpk().equals(bpkwbpk)) {
-// result = user;
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-//}
+package at.gv.egovernment.moa.id.commons.db;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import at.gv.egiz.components.configuration.api.ConfigurationException;
+import at.gv.egovernment.moa.id.commons.config.ConfigurationMigrationUtils;
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.id.commons.config.persistence.MOAIDConfiguration;
+import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.OnlineApplication;
+
+import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase;
+import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
+import at.gv.egovernment.moa.logging.Logger;
+
+/**
+ *
+ *
+ */
+public class NewConfigurationDBRead {
+
+ private MOAIDConfiguration conf;
+
+ @Autowired(required = true)
+ public void setConfiguration(MOAIDConfiguration conf) {
+ // https://jira.spring.io/browse/SPR-3845
+ this.conf = conf;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T extends Iterable<?>> T nullGuard(T item) {
+ if (item == null) {
+ return (T) Collections.emptyList();
+ } else {
+ return item;
+ }
+
+ }
+
+ public Map<String, String> getOnlineApplicationKeyValueWithId(String id) {
+ try {
+ return conf.getOnlineApplication(id);
+
+ } catch (ConfigurationException e) {
+ Logger.warn("OnlineApplication with Id: " + id + " not found.", e);
+ return null;
+
+ }
+ }
+
+ /**
+ *
+ * @return
+ */
+ public List<OnlineApplication> getAllOnlineApplications() {
+ Logger.trace("Get All OnlineApplications from database.");
+
+ List<OnlineApplication> result = new ArrayList<OnlineApplication>();
+ try {
+ String[] allUniqueOAIDs = conf.findConfigurationId(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES + ".*." + MOAIDConfigurationConstants.SERVICE_UNIQUEIDENTIFIER);
+ if (allUniqueOAIDs != null) {
+ for (String uniqueOAID : allUniqueOAIDs) {
+ String oaKeyId = KeyValueUtils.getParentKey(uniqueOAID);
+
+ Logger.debug("Search service with KeyPrefix:" + oaKeyId);
+ Map<String, String> oaKeyValuePairs = conf.getPropertySubset(oaKeyId, true);
+
+ String serviceType = KeyValueUtils.getFirstChildAfterPrefix(oaKeyId, MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);
+ Logger.debug("Identify Service as: " + serviceType);
+
+ if (oaKeyValuePairs != null) {
+ Logger.debug("Transform Key/Value to JaxB configuration ...");
+ oaKeyValuePairs.put(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES, serviceType);
+ OnlineApplication jaxBOA = ConfigurationMigrationUtils.convertKeyValueToHyberJaxBOnlineApplication(oaKeyValuePairs);
+
+ String hjID = KeyValueUtils.getFirstChildAfterPrefix(oaKeyId, KeyValueUtils.getParentKey(oaKeyId));
+ if (serviceType.equals(MOAIDConfigurationConstants.PREFIX_GATEWAY))
+ jaxBOA.setHjid(Long.valueOf(hjID) + 1000000);
+ else if (serviceType.equals(MOAIDConfigurationConstants.PREFIX_IIDP))
+ jaxBOA.setHjid(Long.valueOf(hjID) + 2000000);
+ else if (serviceType.equals(MOAIDConfigurationConstants.PREFIX_VIDP))
+ jaxBOA.setHjid(Long.valueOf(hjID) + 3000000);
+ else
+ jaxBOA.setHjid(Long.valueOf(hjID));
+
+ Logger.debug("Transformation finished with JaxB hjID: " + hjID);
+ result.add(jaxBOA);
+
+ } else
+ Logger.info("No Service configuration with KeyPrefix: " + oaKeyId);
+ }
+ }
+ if (!result.isEmpty())
+ return result;
+
+ } catch (ConfigurationException e) {
+ Logger.error("Access configuration FAILED.", e);
+
+ }
+
+ return null;
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ public List<OnlineApplication> getAllNewOnlineApplications() {
+ Logger.trace("Get All New OnlineApplications from database.");
+
+ // select onlineapplication from OnlineApplication onlineapplication
+ // where onlineapplication.isActive = '0' and onlineapplication.isAdminRequired = '1'
+ List<OnlineApplication> result = new ArrayList<OnlineApplication>();
+ List<OnlineApplication> allOAs = getAllOnlineApplications();
+
+ for (OnlineApplication oa : nullGuard(allOAs)) {
+ if (!oa.isIsActive() && oa.isIsAdminRequired()) {
+ result.add(oa);
+ }
+ }
+
+ if (result.size() == 0) {
+ Logger.trace("No entries found.");
+ return null;
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.MOAIDConfiguration getMOAIDConfiguration() {
+ Logger.trace("Load MOAID Configuration from database.");
+ Map<String, String> generalConfig;
+ try {
+ generalConfig = conf.getPropertySubset(MOAIDConfigurationConstants.PREFIX_MOAID_GENERAL, false);
+ if (generalConfig != null) {
+ Logger.debug("Key/Value configuration found -> Start mapping process ...");
+
+ at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.MOAIDConfiguration result =
+ ConfigurationMigrationUtils.convertKeyValueToHyberJaxBMOAIDConfiguration(generalConfig);
+ Logger.debug("Configuration mapping process finished.");
+
+ return result;
+
+ }
+
+ } catch (ConfigurationException e) {
+ Logger.error("Configuration access FAILED!", e);
+ }
+
+ Logger.info("No general MOA-ID configuration found!");
+ return null;
+
+ }
+
+ /**
+ *
+ * @return
+ */
+ public List<OnlineApplication> getAllActiveOnlineApplications() {
+ Logger.trace("Get All New OnlineApplications from database.");
+
+ // select onlineapplication from OnlineApplication onlineapplication
+ // where onlineapplication.isActive = '1'
+ List<OnlineApplication> result = new ArrayList<OnlineApplication>();
+ List<OnlineApplication> allOAs = getAllOnlineApplications();
+
+ for (OnlineApplication oa : nullGuard(allOAs)) {
+ if (oa.isIsActive()) {
+ result.add(oa);
+ }
+ }
+
+ if (result.size() == 0) {
+ Logger.trace("No entries found.");
+ return null;
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param id
+ * @return
+ */
+ public OnlineApplication getActiveOnlineApplication(String id) {
+ Logger.trace("Getting Active OnlineApplication with ID " + id + " from database.");
+
+ // select onlineapplication from OnlineApplication onlineapplication
+ // where onlineapplication.publicURLPrefix =
+ // SUBSTRING(:id, 1, LENGTH(onlineapplication.publicURLPrefix)) and onlineapplication.isActive = '1'
+ OnlineApplication result = null;
+ List<OnlineApplication> allActiveOAs = getAllActiveOnlineApplications();
+
+ for (OnlineApplication oa : nullGuard(allActiveOAs)) {
+ String publicUrlPrefix = oa.getPublicURLPrefix();
+ if (publicUrlPrefix != null && publicUrlPrefix.length() <= id.length()) {
+ if ((id.substring(1, publicUrlPrefix.length()).equals(publicUrlPrefix))) {
+ if (result != null) {
+ Logger.warn("OAIdentifier match to more then one DB-entry!");
+ return null;
+ } else {
+ result = oa;
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param dbid
+ * @return
+ */
+ public OnlineApplication getOnlineApplication(long dbid) {
+ Logger.trace("Getting OnlineApplication with DBID " + dbid + " from database.");
+
+ // select onlineapplication from OnlineApplication onlineapplication where onlineapplication.hjid = :id
+ OnlineApplication result = null;
+ List<OnlineApplication> allOAs = getAllOnlineApplications();
+
+ for (OnlineApplication oa : nullGuard(allOAs)) {
+ if (oa.getHjid() == dbid) {
+ result = oa;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param id
+ * @return
+ */
+ public OnlineApplication getOnlineApplication(String id) {
+ Logger.trace("Getting OnlineApplication with ID " + id + " from database.");
+
+ // select onlineapplication from OnlineApplication onlineapplication
+ // where onlineapplication.publicURLPrefix = SUBSTRING(:id, 1, LENGTH(onlineapplication.publicURLPrefix))
+ OnlineApplication result = null;
+ List<OnlineApplication> allOAs = getAllOnlineApplications();
+
+ for (OnlineApplication oa : nullGuard(allOAs)) {
+ String publicUrlPrefix = oa.getPublicURLPrefix();
+ if (publicUrlPrefix != null && publicUrlPrefix.length() <= id.length()) {
+ if (id.substring(0, publicUrlPrefix.length()).equals(publicUrlPrefix)) {
+ if (result != null) {
+ Logger.warn("OAIdentifier match to more then one DB-entry!");
+ return null;
+ } else {
+ result = oa;
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ * @param id
+ * @return
+ */
+ public List<OnlineApplication> searchOnlineApplications(String id) {
+ Logger.trace("Getting OnlineApplication with ID " + id + " from database.");
+
+ // select onlineapplication from OnlineApplication onlineapplication
+ // where onlineapplication.friendlyName like :id
+ List<OnlineApplication> result = new ArrayList<OnlineApplication>();
+ List<OnlineApplication> allOAs = getAllOnlineApplications();
+
+ for (OnlineApplication oa : nullGuard(allOAs)) {
+ if (oa.getFriendlyName().contains(id)) {
+ result.add(oa);
+ }
+ }
+
+ if (result.size() == 0) {
+ Logger.trace("No entries found.");
+ return null;
+ }
+
+ return result;
+ }
+
+
+}