* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.aai.serialization.queryformats.utils;
import java.lang.reflect.InvocationTargetException;
public class QueryParamInjector {
- private final Set<Class<?>> results;
-
-
- private QueryParamInjector () {
- Reflections reflections = new Reflections("org.onap.aai.serialization.queryformats.params");
- results = reflections.getTypesAnnotatedWith(Inject.class);
- }
-
- private static class Helper {
- private static final QueryParamInjector INSTANCE = new QueryParamInjector();
- }
-
- public static QueryParamInjector getInstance() {
- return Helper.INSTANCE;
- }
-
- public <T> T injectParams(T obj, MultivaluedMap<String, String> params) throws QueryParamInjectionException{
- try {
- for (Class<?> item : results) {
- if (item.isAssignableFrom(obj.getClass())) {
- String name = item.getAnnotation(Inject.class).name();
-
- if (params.containsKey(name)) {
- String value = params.getFirst(name);
-
- for (Method method : item.getMethods()) {
- if (method.isAnnotationPresent(Setter.class)) {
- Class<?>[] args = method.getParameterTypes();
- if (args.length == 1) {
- Object o = args[0].getConstructor(String.class).newInstance(value);
- method.invoke(obj, o);
- } else {
- method.invoke(obj);
- }
- }
- }
- }
- }
- }
- } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
- | InvocationTargetException | NoSuchMethodException
- | SecurityException e) {
- throw new QueryParamInjectionException("issue with query params", e);
- }
-
-
- return obj;
- }
+ private final Set<Class<?>> results;
+
+ private QueryParamInjector() {
+ Reflections reflections = new Reflections("org.onap.aai.serialization.queryformats.params");
+ results = reflections.getTypesAnnotatedWith(Inject.class);
+ }
+
+ private static class Helper {
+ private static final QueryParamInjector INSTANCE = new QueryParamInjector();
+ }
+
+ public static QueryParamInjector getInstance() {
+ return Helper.INSTANCE;
+ }
+
+ public <T> T injectParams(T obj, MultivaluedMap<String, String> params) throws QueryParamInjectionException {
+ try {
+ for (Class<?> item : results) {
+ if (item.isAssignableFrom(obj.getClass())) {
+ String name = item.getAnnotation(Inject.class).name();
+
+ if (params.containsKey(name)) {
+ String value = params.getFirst(name);
+
+ for (Method method : item.getMethods()) {
+ if (method.isAnnotationPresent(Setter.class)) {
+ Class<?>[] args = method.getParameterTypes();
+ if (args.length == 1) {
+ Object o = args[0].getConstructor(String.class).newInstance(value);
+ method.invoke(obj, o);
+ } else {
+ method.invoke(obj);
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
+ | NoSuchMethodException | SecurityException e) {
+ throw new QueryParamInjectionException("issue with query params", e);
+ }
+
+ return obj;
+ }
}