package age;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;

public class CSVReader {
	
	private static final int CLASS_INDEX = 0;

	public static void main(String[] args){
		
	}
	
	public static String getClassNameFromLine(String line){
		String[] tokens = line.split(";");
		if(tokens.length > 0){
			return tokens[CLASS_INDEX];
		}else{
			return null;
		}
	}
	
	public static List<String> readCSV(Path path){
		List<String> content = new ArrayList<>();
		try{
			Files.lines(path).forEach( (String line) -> {
				content.add(line);
			});
		} catch (IOException e) {
			e.printStackTrace();
		}
		return content;
	}
	
}

@@ -35,16 +35,47 @@
 eption;%0A
+import java.lang.reflect.Type;%0A
 import j
@@ -94,16 +94,16 @@
 .Files;%0A
-
 import j
@@ -171,16 +171,38 @@
 il.List;
+%0Aimport java.util.Map;
 %0A%0Apublic
@@ -334,50 +334,162 @@
 tic 
-String getClassNameFromLine(String line
+void createMappingFromLine(String%5B%5D tokens,%0A%09%09%09Map%3CString, Object%3E values,%0A%09%09%09Map%3CString, String%3E fieldTypes)%7B%0A%09%09for(int i = 1; i %3C tokens.length; i++
 )%7B%0A
+%09
 %09%09St
@@ -491,24 +491,27 @@
 %09%09%09String%5B%5D 
+sub
 tokens = lin
@@ -511,24 +511,301 @@
 s = 
-line.split(%22;%22);
+tokens%5Bi%5D.split(%22:%22);%0A%09%09%09String fieldName = subtokens%5B0%5D;%0A%09%09%09String value = subtokens%5B1%5D;%0A%09%09%09String type = subtokens%5B2%5D;%0A%09%09%09values.put(fieldName, SkillObjectCreator.valueOf(type, value));%0A%09%09%09fieldTypes.put(fieldName, type);%0A%09%09%7D%0A%09%7D%0A%0A%09public static String getClassNameFromEntry(String%5B%5D tokens)%7B
 %0A%09%09i

Add helper method for creating needed field mappings