summaryrefslogtreecommitdiffstats
path: root/model/utilities/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'model/utilities/src/main/java')
-rw-r--r--model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/ClassBuilder.java103
-rw-r--r--model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/TypeBuilder.java115
-rw-r--r--model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/package-info.java26
3 files changed, 0 insertions, 244 deletions
diff --git a/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/ClassBuilder.java b/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/ClassBuilder.java
deleted file mode 100644
index 8d1ed9497..000000000
--- a/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/ClassBuilder.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2020 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.utilities.typeutils;
-
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * This class is a utility class that builds a class with a set of user defined fields. It is used to get the Type of
- * fields in Java schemas<br> For more information see:<br> <a
- * href="http://stackoverflow.com/questions/39401083/class-forname-equivalent-for-creating-parameterizedtypes-from-string">
- * http://stackoverflow.com/questions/39401083/class-forname-equivalent-for-creating-parameterizedtypes-from-string</a><br>
- * <a href="https://github.com/KetothXupack/stackoverflow-answers/tree/master/q39401083">
- * https://github.com/KetothXupack/stackoverflow-answers/tree/master/q39401083</a><br>
- */
-public class ClassBuilder {
- // Logger for this class
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ClassBuilder.class);
-
- private final Class<?> clazz;
- private final List<ClassBuilder> parameters = new ArrayList<>();
-
- /**
- * Constructor that sets the class for the class builder.
- *
- * @param clazz the class of the class builder
- */
- public ClassBuilder(final Class<?> clazz) {
- this.clazz = clazz;
- }
-
- /**
- * Creates a {@link ClassBuilder} instance for a class with the given class name.
- *
- * @param className the class name of the class builder to create
- * @return the class builder that is created
- */
- public static ClassBuilder parse(final String className) {
- try {
- return new ClassBuilder(Class.forName(className));
- } catch (ClassNotFoundException e) {
- try {
- return new ClassBuilder(Class.forName("java.lang." + className));
- } catch (Exception classFindException) {
- LOGGER.warn("class not found", classFindException);
- throw new IllegalArgumentException("Class '" + className
- + "' not found. Also looked for a class called 'java.lang." + className + "'", e);
- }
- }
- }
-
- /**
- * Adds a field to the class builder. Each field is itself a class builder.
- *
- * @param fieldBuilder the class builder for the field
- */
- public void add(final ClassBuilder fieldBuilder) {
- parameters.add(fieldBuilder);
- }
-
- /**
- * Builds the {@link Type} of the class.
- *
- * @return the {@link Type} of the class
- */
- public Type build() {
- // class is not parameterized
- if (parameters.isEmpty()) {
- return clazz;
- }
- Type[] paramTypes = new Type[parameters.size()];
- int paramTypeIndex = 0;
- for (ClassBuilder classBuilder : parameters) {
- paramTypes[paramTypeIndex++] = classBuilder.build();
- }
- // TODO: Fix this for parameterized types if needed or adapt to work with generic types only
- // return ParameterizedTypeImpl.make(clazz, paramTypes, null);
- return null;
- }
-}
diff --git a/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/TypeBuilder.java b/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/TypeBuilder.java
deleted file mode 100644
index 5f75bca1c..000000000
--- a/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/TypeBuilder.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.utilities.typeutils;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-
-import org.antlr.v4.runtime.BailErrorStrategy;
-import org.antlr.v4.runtime.CharStream;
-import org.antlr.v4.runtime.CharStreams;
-import org.antlr.v4.runtime.CommonTokenStream;
-import org.antlr.v4.runtime.TokenStream;
-
-/**
- * This class builds a type from a grammar using ANTLR.
- */
-public final class TypeBuilder {
- /**
- * Private constructor used to prevent sub class instantiation.
- */
- private TypeBuilder() {
- }
-
- /**
- * Builds the Type of the Type string that was input.
- *
- * @param type the java Type as a string
- * @return the Type of the string that was input
- */
- public static Type build(final String type) {
- if (type == null || type.length() == 0) {
- throw new IllegalArgumentException(
- "Blank type string passed to " + TypeBuilder.class.getName() + ".build(String type)");
- }
-
- try {
- final CharStream stream = CharStreams.fromString(type);
- final TokenStream tokenStream = new CommonTokenStream(new ParametrizedTypeLexer(stream));
-
- final ParametrizedTypeParser parser = new ParametrizedTypeParser(tokenStream);
- parser.removeErrorListeners();
- parser.setErrorHandler(new BailErrorStrategy());
- parser.setBuildParseTree(true);
- return parser.type().value.build();
- } catch (final Exception e) {
- throw new IllegalArgumentException("Failed to build type '" + type + "': " + e, e);
- }
- }
-
- /**
- * Gets the class of Java Type.
- *
- * @param type the java Type as a string
- * @return the java Type
- */
- public static Class<?> getJavaTypeClass(final String type) {
- return getJavaTypeClass(build(type));
- }
-
- /**
- * Gets the class of Java Type.
- *
- * @param type the java Type as a Type
- * @return the java Type
- */
- public static Class<?> getJavaTypeClass(final Type type) {
- if (type instanceof Class<?>) {
- return (Class<?>) type;
- } else if (type instanceof ParameterizedType) {
- final Type raw = ((ParameterizedType) type).getRawType();
- if (!(raw instanceof Class<?>)) {
- throw new IllegalArgumentException("The Parameterised javatype " + type + " with base type " + raw
- + " is not a Java 'Class' that can be instantiated");
- }
- return (Class<?>) raw;
- }
- throw new IllegalArgumentException(
- "The Parameterised javatype " + type + " is not a Java 'Type' that has a 'Class'");
- }
-
- /**
- * Gets the parameters of a Java Type.
- *
- * @param type the Java Type
- * @return the parameters of the java Type
- */
- public static Type[] getJavaTypeParameters(final Type type) {
- if (type instanceof Class<?>) {
- return new Type[0];
- } else if (type instanceof ParameterizedType) {
- return ((ParameterizedType) type).getActualTypeArguments();
- }
- throw new IllegalArgumentException(
- "\"The Parameterised javatype \" + type + \" is not a Java 'Type' that has parameter types");
- }
-}
diff --git a/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/package-info.java b/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/package-info.java
deleted file mode 100644
index ed4b079bf..000000000
--- a/model/utilities/src/main/java/org/onap/policy/apex/model/utilities/typeutils/package-info.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-/**
- * Provides utility classes that operate on and work with Java Types.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-package org.onap.policy.apex.model.utilities.typeutils;