@RequestMapping("/")
public class CreateDcaeMicroServiceController extends RestrictedBaseController {
private static final Logger LOGGER = FlexLogger.getLogger(CreateDcaeMicroServiceController.class);
-
+ private Map<String, String> matchableValues;
private static CommonClassDao commonClassDao;
public static CommonClassDao getCommonClassDao() {
public static final String DEFAULT=".default";
public static final String REQUIRED=".required";
public static final String MANYFALSE=":MANY-false";
-
+ public static final String MATCHABLE=".matchable";
@Autowired
private CreateDcaeMicroServiceController(CommonClassDao commonClassDao){
HashMap<String,String> parseDataNodes(Map<String,String> map){
HashMap<String,String> dataMapForJson=new HashMap <>();
+ matchableValues = new HashMap <>();
for(String uniqueDataKey: uniqueDataKeys){
if(uniqueDataKey.contains("%")){
String[] uniqueDataKeySplit= uniqueDataKey.split("%");
String requiredValue= map.get(findRequired);
LOGGER.info("requiredValue is:"+ requiredValue);
+ String matchable =DATATYPE+uniqueDataKeySplit[0]+PROPERTIES+uniqueDataKeySplit[1]+MATCHABLE;
+
+ String matchableValue= map.get(matchable);
+
+ if("true".equalsIgnoreCase(matchableValue)){
+ String key=uniqueDataKeySplit[uniqueDataKeySplit.length -1];
+ matchableValues.put(key, "matching-true");
+ }
+
StringBuilder attributeIndividualStringBuilder= new StringBuilder();
attributeIndividualStringBuilder.append(typeValue+":defaultValue-");
attributeIndividualStringBuilder.append(defaultValue+":required-");
dataMapForJson.put(uniqueDataKey, attributeIndividualStringBuilder.toString());
}
else if(typeValue != null && typeValue.equalsIgnoreCase(LIST)){
+
+
String findList= DATATYPE+uniqueDataKeySplit[0]+PROPERTIES+uniqueDataKeySplit[1]+".entry_schema.type";
String listValue=map.get(findList);
if(listValue!=null){
break;
}
else{
+ if(constraintsValue.contains("=")){
+ constraintsValue = constraintsValue.replace("=", "equal-sign");
+ }
dataConstraints.add(constraintsValue);
dataListBuffer.append(constraintsValue+",");
}
dataMapForJson.put(uniqueDataKey, referenceIndividualStringBuilder.toString());
}
+ }else{
+ matchableValues.put(uniqueDataKey, "matching-true");
}
}
return dataMapForJson;
attributeIndividualStringBuilder.append(keyValues.get("default")+":required-");
attributeIndividualStringBuilder.append(keyValues.get("required")+":MANY-false");
attributeStringBuilder.append(attributeIndividualStringBuilder+",");
-
+ if("true".equalsIgnoreCase(keyValues.get("matchable"))){
+ matchableValues.put(keySetString, "matching-true");
+ }
}
else if(keyValues.get("type") != null && keyValues.get("type").equalsIgnoreCase(LIST)){
+
+ if("true".equalsIgnoreCase(keyValues.get("matchable"))){
+ matchableValues.put(keySetString, "matching-true");
+ }
//List Datatype
Set<String> keys= keyValues.keySet();
Iterator<String> itr=keys.iterator();
+ boolean isDefinedType = false;
while(itr.hasNext()){
String key= itr.next();
if(!("type").equals(key) ||("required").equals(key))
constraints.add(keyValues.get(key));
}
}else{
- //This is user defined string
+ //This is user defined type
String trimValue=value.substring(value.lastIndexOf('.')+1);
StringBuilder referenceIndividualStringBuilder= new StringBuilder();
referenceIndividualStringBuilder.append(keySetString+"="+trimValue+":MANY-true");
referenceStringBuilder.append(referenceIndividualStringBuilder+",");
+ isDefinedType = true;
}
}
}
- if(keyValues.get("type").equalsIgnoreCase(LIST) &&
- (constraints == null || constraints.isEmpty()) ) {
+ if(!isDefinedType && keyValues.get("type").equalsIgnoreCase(LIST) &&
+ (constraints == null || constraints.isEmpty()) ) { //type is list but no constraints defined.
referenceStringBuilder.append(keySetString+"=MANY-true"+",");
}
}else{
//User defined Datatype.
+ if("true".equalsIgnoreCase(keyValues.get("matchable"))){
+ matchableValues.put(keySetString, "matching-true");
+ }
String value=keyValues.get("type");
if(value != null && !value.isEmpty()){
String trimValue=value.substring(value.lastIndexOf('.')+1);
}
node.put(key.substring(key.indexOf('.')+1), value);
}
- }else if(node.size()!=0){
- if(nodeKey.contains("@")){
- if(arryKey==null){
- arryKey = nodeKey.substring(0,nodeKey.indexOf('@'));
- }
- if(nodeKey.endsWith("@0")){
- isArray = true;
- jsonArray = new JSONArray();
- }
- if(jsonArray != null && arryKey.equals(nodeKey.substring(0,nodeKey.indexOf('@')))){
- jsonArray.put(decodeContent(node));
- }
- jsonResult.put(arryKey, jsonArray);
- jsonArray = new JSONArray();
- arryKey = nodeKey.substring(0,nodeKey.indexOf('@'));
- }else{
- isArray = false;
- jsonResult.put(nodeKey, decodeContent(node));
- }
- node = nodeFactory.objectNode();
- if(key.contains("@")){
- isArray = true;
- if(key.endsWith("@0")|| jsonArray==null){
+ }else {
+ if(node.size()!=0){
+ if(nodeKey.contains("@")){
+ if(arryKey==null){
+ arryKey = nodeKey.substring(0,nodeKey.indexOf('@'));
+ }
+ if(nodeKey.endsWith("@0")){
+ isArray = true;
+ jsonArray = new JSONArray();
+ }
+ if(jsonArray != null && arryKey.equals(nodeKey.substring(0,nodeKey.indexOf('@')))){
+ jsonArray.put(decodeContent(node));
+ }
+ jsonResult.put(arryKey, jsonArray);
jsonArray = new JSONArray();
- }
- }else if(!key.contains("@")){
- isArray = false;
- }
- if(isArray){
- if(oldValue==null){
- oldValue = key.substring(0,key.indexOf('@'));
- }
- if(oldValue!=prevKey){
- oldValue = key.substring(0,key.indexOf('@'));
- }
- if(oldValue.equals(key.substring(0,key.indexOf('@')))){
- jsonArray.put(value);
+ arryKey = nodeKey.substring(0,nodeKey.indexOf('@'));
}else{
- jsonResult.put(oldValue, jsonArray);
- jsonArray = new JSONArray();
+ isArray = false;
+ jsonResult.put(nodeKey, decodeContent(node));
}
- oldValue = key.substring(0,key.indexOf('@'));
- }else{
- jsonResult.put(key, value);
+ node = nodeFactory.objectNode();
}
- }else{
if(key.contains("@")){
isArray = true;
if(key.endsWith("@0")|| jsonArray==null){
LOGGER.info("allkeys : " + allkeys);
}
- String allManyTrueKeys = "";
+ String nameOfTrueKey = "";
if(allkeys != null){
- allManyTrueKeys = allkeys.toString();
+ nameOfTrueKey = allkeys.toString();
}
String jsonModel = createMicroSeriveJson(returnModel, allkeys);
PrintWriter out = response.getWriter();
String responseString = mapper.writeValueAsString(returnModel);
JSONObject j;
- if("".equals(allManyTrueKeys)){
+ if("".equals(nameOfTrueKey)){
j = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel + "}");
}else{
- j = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel + ",allManyTrueKeys: " + allManyTrueKeys+ "}");
+ j = new JSONObject("{dcaeModelData: " + responseString + ",jsonValue: " + jsonModel + ",allManyTrueKeys: " + nameOfTrueKey+ "}");
}
list.add(j);
out.write(list.toString());
msAttributes.setAttribute(returnAttributeList);
msAttributes.setSubClass(this.retmap);
-
+ msAttributes.setMatchingSet(matchableValues);
HashMap<String, String> returnReferenceList =new HashMap<>();
returnReferenceList.put(className, this.referenceAttributes);
msAttributes.setRefAttribute(returnReferenceList);
private void retreiveDependency(String workingFile, Boolean modelClass) {
MSModelUtils utils = new MSModelUtils(PolicyController.getMsOnapName(), PolicyController.getMsPolicyName());
- HashMap<String, MSAttributeObject> tempMap;
+ Map<String, MSAttributeObject> tempMap;
tempMap = utils.processEpackage(workingFile, MODEL_TYPE.XMI);
}
private List<File> listModelFiles(String directoryName) {
- File directory = new File(directoryName);
+ File fileDirectory = new File(directoryName);
List<File> resultList = new ArrayList<>();
- File[] fList = directory.listFiles();
+ File[] fList = fileDirectory.listFiles();
for (File file : fList) {
if (file.isFile()) {
resultList.add(file);