Align code to support types validation

Change-Id: I9e08f55f9f4d00ae4ef8e6a1c6214b6426fdd46b
Issue-ID: SDC-1646
Signed-off-by: Yuli Shlosberg <ys9693@att.com>
diff --git a/src/main/java/org/onap/sdc/toscaparser/api/ImportsLoader.java b/src/main/java/org/onap/sdc/toscaparser/api/ImportsLoader.java
index 76800f7..19ec182 100644
--- a/src/main/java/org/onap/sdc/toscaparser/api/ImportsLoader.java
+++ b/src/main/java/org/onap/sdc/toscaparser/api/ImportsLoader.java
@@ -1,5 +1,6 @@
 package org.onap.sdc.toscaparser.api;
 
+import com.google.common.base.Charsets;
 import org.onap.sdc.toscaparser.api.common.JToscaValidationIssue;
 import org.onap.sdc.toscaparser.api.utils.ThreadLocalsHolder;
 import org.onap.sdc.toscaparser.api.utils.UrlUtils;
@@ -372,11 +373,11 @@
     	        al[0] = al[1] = null;
     	        return al;
             }
-            try (InputStream input = new FileInputStream(new File(importTemplate));) {
+            try (BufferedReader br = new BufferedReader(new FileReader(importTemplate));) {
 	            al[0] = importTemplate;
 
 				Yaml yaml = new Yaml();
-				al[1] = yaml.load(input);
+				al[1] = yaml.load(br);
 	            return al;
             }
             catch(FileNotFoundException e) {
diff --git a/src/main/java/org/onap/sdc/toscaparser/api/TopologyTemplate.java b/src/main/java/org/onap/sdc/toscaparser/api/TopologyTemplate.java
index e3d3538..4c9a53d 100644
--- a/src/main/java/org/onap/sdc/toscaparser/api/TopologyTemplate.java
+++ b/src/main/java/org/onap/sdc/toscaparser/api/TopologyTemplate.java
@@ -540,6 +540,9 @@
 	public boolean getResolveGetInput() {
 		return resolveGetInput;
 	}
+	public LinkedHashMap<String, Object> getCustomDefs() {
+		return customDefs;
+	}
 }
 
 /*python
diff --git a/src/main/java/org/onap/sdc/toscaparser/api/ToscaTemplate.java b/src/main/java/org/onap/sdc/toscaparser/api/ToscaTemplate.java
index bfd0716..f236a0a 100644
--- a/src/main/java/org/onap/sdc/toscaparser/api/ToscaTemplate.java
+++ b/src/main/java/org/onap/sdc/toscaparser/api/ToscaTemplate.java
@@ -103,6 +103,7 @@
     private int nestingLoopCounter;
 	private LinkedHashMap<String, LinkedHashMap<String, Object>> metaProperties;
 	private Set<String> processedImports;
+	private LinkedHashMap<String,Object> customDefsFinal = new LinkedHashMap<>();
 
 	public ToscaTemplate(String _path,
 						LinkedHashMap<String,Object> _parsedParams,
@@ -335,14 +336,15 @@
 	 * @param alImports all imports which needs to be processed
 	 * @return the linked hash map containing all import definitions
 	 */
+
 	@SuppressWarnings("unchecked")
 	private LinkedHashMap<String,Object> _getAllCustomDefs(Object alImports) {
 
+
 		String types[] = {
 				IMPORTS, NODE_TYPES, CAPABILITY_TYPES, RELATIONSHIP_TYPES,
 				DATA_TYPES, INTERFACE_TYPES, POLICY_TYPES, GROUP_TYPES
 		};
-		LinkedHashMap<String,Object> customDefsFinal = new LinkedHashMap<>();
 
 		List<Map<String, Object>> imports = (List<Map<String, Object>>) alImports;
 		if (imports != null && !imports.isEmpty()) {
diff --git a/src/main/java/org/onap/sdc/toscaparser/api/functions/GetInput.java b/src/main/java/org/onap/sdc/toscaparser/api/functions/GetInput.java
index 262d99a..f2df667 100644
--- a/src/main/java/org/onap/sdc/toscaparser/api/functions/GetInput.java
+++ b/src/main/java/org/onap/sdc/toscaparser/api/functions/GetInput.java
@@ -50,7 +50,7 @@
 			String type = (String)ttinpinp.get("type");
 
 			Object value = DataEntity.validateDatatype(
-					type, toscaTpl.getParsedParams().get(getInputName()),null,null,null);
+					type, toscaTpl.getParsedParams().get(getInputName()),null,toscaTpl.getCustomDefs(),null);
     		//SDC resolving Get Input
 			if (value instanceof ArrayList){
 				if(args.size() == 2 && args.get(1) instanceof Integer && ((ArrayList) value).size()> (Integer)args.get(1)){
diff --git a/src/main/java/org/onap/sdc/toscaparser/api/parameters/Input.java b/src/main/java/org/onap/sdc/toscaparser/api/parameters/Input.java
index e7a1246..d59f406 100644
--- a/src/main/java/org/onap/sdc/toscaparser/api/parameters/Input.java
+++ b/src/main/java/org/onap/sdc/toscaparser/api/parameters/Input.java
@@ -153,7 +153,7 @@
     	String type = getType();
     	// if it's one of the basic types DON'T look in customDefs
     	if(Arrays.asList(PRIMITIVE_TYPES).contains(type)) {
-        	DataEntity.validateDatatype(getType(), value, null, (LinkedHashMap<String,Object>)datatype, null);
+        	DataEntity.validateDatatype(getType(), value, null, customDefs, null);
         	return;	
     	}
     	else if(customDefs.get(getType()) != null) {
@@ -162,7 +162,7 @@
         	return;
     	}
     	
-    	DataEntity.validateDatatype(getType(), value, null, (LinkedHashMap<String,Object>)datatype, null);
+    	DataEntity.validateDatatype(getType(), value, null, customDefs, null);
     }
 
 	public Map<String, Annotation> getAnnotations() {