aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openecomp/schema/RelationshipSchema.java
diff options
context:
space:
mode:
authorBansal, Nitin (nb121v) <nitin.bansal@amdocs.com>2017-11-20 16:02:06 -0500
committerBansal, Nitin (nb121v) <nitin.bansal@amdocs.com>2017-11-20 16:34:16 -0500
commit908b4693e5a0a4c2f323dbf518b35e4620f183a1 (patch)
treecd057c3b4e91f696e116db94d7a3e08c800421a0 /src/main/java/org/openecomp/schema/RelationshipSchema.java
parent2dd042556f9142fcd525c0277ea21ac3bd828e4f (diff)
Refactor to move from openecomp to onap
Refactor to move from openecomp to onap IssueID: AAI-486 Change-Id: I1d5634739514acf11d5fbdf5e2c7865aaccd864e Signed-off-by: Bansal, Nitin (nb121v) <nitin.bansal@amdocs.com>
Diffstat (limited to 'src/main/java/org/openecomp/schema/RelationshipSchema.java')
-rw-r--r--src/main/java/org/openecomp/schema/RelationshipSchema.java108
1 files changed, 0 insertions, 108 deletions
diff --git a/src/main/java/org/openecomp/schema/RelationshipSchema.java b/src/main/java/org/openecomp/schema/RelationshipSchema.java
deleted file mode 100644
index a8d101d..0000000
--- a/src/main/java/org/openecomp/schema/RelationshipSchema.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * Gizmo
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property.
- * Copyright © 2017 Amdocs
- * 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.
- * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- */
-package org.openecomp.schema;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import org.codehaus.jackson.map.ObjectMapper;
-import org.openecomp.crud.exception.CrudException;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.stream.Collectors;
-import javax.ws.rs.core.Response.Status;
-
-
-public class RelationshipSchema {
- private static final Gson gson = new GsonBuilder().create();
-
- public static final String SCHEMA_SOURCE_NODE_TYPE = "from";
- public static final String SCHEMA_TARGET_NODE_TYPE = "to";
- public static final String SCHEMA_RELATIONSHIP_TYPE = "label";
- public static final String SCHEMA_RULES_ARRAY = "rules";
-
-
- private Map<String, Map<String, Class<?>>> relations = new HashMap<>();
- /**
- * Hashmap of valid relationship types along with properties.
- */
- private Map<String, Map<String, Class<?>>> relationTypes = new HashMap<>();
-
-
- public RelationshipSchema(List<String> jsonStrings) throws CrudException, IOException {
- String edgeRules = jsonStrings.get(0);
- String props = jsonStrings.get(1);
-
- HashMap<String, ArrayList<LinkedHashMap<String, String>>> rules = new ObjectMapper().readValue(edgeRules, HashMap.class);
- HashMap<String, String> properties = new ObjectMapper().readValue(props, HashMap.class);
- Map<String, Class<?>> edgeProps = properties.entrySet().stream().collect(Collectors.toMap(p -> p.getKey(), p -> {
- try {
- return resolveClass(p.getValue());
- } catch (CrudException | ClassNotFoundException e) {
- e.printStackTrace();
- }
- return null;
- }));
-
- rules.get(SCHEMA_RULES_ARRAY).forEach(l -> {
- relationTypes.put(l.get(SCHEMA_RELATIONSHIP_TYPE), edgeProps);
- relations.put(buildRelation(l.get(SCHEMA_SOURCE_NODE_TYPE), l.get(SCHEMA_TARGET_NODE_TYPE), l.get(SCHEMA_RELATIONSHIP_TYPE)), edgeProps);
- });
- }
-
-
-
- public Map<String, Class<?>> lookupRelation(String key) {
- return this.relations.get(key);
- }
-
- public Map<String, Class<?>> lookupRelationType(String type) {
- return this.relationTypes.get(type);
- }
-
- public boolean isValidType(String type) {
- return relationTypes.containsKey(type);
- }
-
-
- private String buildRelation(String source, String target, String relation){
- return source + ":" + target + ":" + relation;
- }
-
- private Class<?> resolveClass(String type) throws CrudException, ClassNotFoundException {
- Class<?> clazz = Class.forName(type);
- validateClassTypes(clazz);
- return clazz;
- }
-
- private void validateClassTypes(Class<?> clazz) throws CrudException {
- if (!clazz.isAssignableFrom(Integer.class) && !clazz.isAssignableFrom(Double.class)
- && !clazz.isAssignableFrom(Boolean.class) && !clazz.isAssignableFrom(String.class)) {
- throw new CrudException("", Status.BAD_REQUEST);
- }
- }
-}
-
-