aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java')
-rw-r--r--openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java33
1 files changed, 10 insertions, 23 deletions
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java
index ec2d93f35b..26816aaafe 100644
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java
+++ b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/src/main/java/org/openecomp/core/factory/impl/FactoryManager.java
@@ -16,7 +16,6 @@
* SPDX-License-Identifier: Apache-2.0
* ============LICENSE_END=========================================================
*/
-
package org.openecomp.core.factory.impl;
import com.amdocs.zusammen.utils.facade.impl.FactoryConfig;
@@ -33,9 +32,8 @@ public class FactoryManager {
private static final FactoryManager instance = new FactoryManager();
private static final String ERROR_CODE_E0001 = "E0001";
/**
- * Temporary registry of default implementations. The map keeps class names rather then class
- * types to allow unloading of those classes from memory by garbage collector if factory is not
- * actually used.
+ * Temporary registry of default implementations. The map keeps class names rather then class types to allow unloading of those classes from
+ * memory by garbage collector if factory is not actually used.
*/
private final Map<String, String> factoryRegistry = new ConcurrentHashMap<>();
/**
@@ -43,7 +41,6 @@ public class FactoryManager {
*/
private final Map<String, AbstractFactoryBase> factoryInstanceMap = new ConcurrentHashMap<>();
-
private FactoryManager() {
initializeFactoryRegistry();
}
@@ -54,17 +51,13 @@ public class FactoryManager {
private void initializeFactoryRegistry() {
final Map<String, String> factoryMap = FactoryConfig.getFactoriesMap();
-
for (final Map.Entry<String, String> entry : factoryMap.entrySet()) {
final String abstractClassName = entry.getKey();
final String concreteTypeName = entry.getValue();
-
if (StringUtils.isEmpty(concreteTypeName)) {
throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withId("E0003")
- .withMessage("Missing configuration value:" + concreteTypeName + ".")
+ new ErrorCode.ErrorCodeBuilder().withId("E0003").withMessage("Missing configuration value:" + concreteTypeName + ".")
.withCategory(ErrorCategory.SYSTEM).build());
-
}
registerFactory(abstractClassName, concreteTypeName);
}
@@ -80,32 +73,26 @@ public class FactoryManager {
@SuppressWarnings("unchecked")
public <F extends AbstractFactoryBase> F getFactoryInstance(Class<F> factoryType) {
if (factoryType == null) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withId(ERROR_CODE_E0001)
- .withMessage("Mandatory input factory type.").withCategory(ErrorCategory.SYSTEM)
- .build());
-
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withId(ERROR_CODE_E0001).withMessage("Mandatory input factory type.")
+ .withCategory(ErrorCategory.SYSTEM).build());
}
final String factoryTypeName = factoryType.getName();
// Check if the factory is already cached
if (factoryInstanceMap.get(factoryTypeName) == null) {
//if not, create a new one and cache it
+
// Get the implementation class name
final String implName = factoryRegistry.get(factoryTypeName);
-
if (StringUtils.isEmpty(implName)) {
throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withId(ERROR_CODE_E0001)
- .withMessage("Mandatory input factory implementation.")
+ new ErrorCode.ErrorCodeBuilder().withId(ERROR_CODE_E0001).withMessage("Mandatory input factory implementation.")
.withCategory(ErrorCategory.SYSTEM).build());
}
-
F factory = CommonMethods.newInstance(implName, factoryType);
factory.init();
// Cache the instantiated singleton
factoryInstanceMap.putIfAbsent(factoryTypeName, factory);
}
-
return (F) factoryInstanceMap.get(factoryTypeName);
}
@@ -115,6 +102,7 @@ public class FactoryManager {
/**
* Unregister factory and removes the cached instance if any.
+ *
* @param factoryName the factory name to unregister
*/
public void unregisterFactory(final String factoryName) {
@@ -134,10 +122,9 @@ public class FactoryManager {
public <F extends AbstractFactoryBase> void removeFactoryInstance(Class<F> factory) {
if (factory == null) {
throw new CoreException(
- new ErrorCode.ErrorCodeBuilder().withId(ERROR_CODE_E0001).withMessage("Mandatory input factory.")
- .withCategory(ErrorCategory.SYSTEM).build());
+ new ErrorCode.ErrorCodeBuilder().withId(ERROR_CODE_E0001).withMessage("Mandatory input factory.").withCategory(ErrorCategory.SYSTEM)
+ .build());
}
-
factoryInstanceMap.remove(factory.getName());
}