X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fschema%2FOxmModelValidator.java;h=e691fd7ae3f0c5e9053f06c72831f8e0494704e8;hb=0c40bcde9facc109ceb8dabb91156df2b4fb4129;hp=24d4a8c0dc584f2e23cf09649e13e01d44b9f3fb;hpb=18703cdc19842806969d30f19f8171469c79a0fe;p=aai%2Fgizmo.git diff --git a/src/main/java/org/onap/schema/OxmModelValidator.java b/src/main/java/org/onap/schema/OxmModelValidator.java index 24d4a8c..e691fd7 100644 --- a/src/main/java/org/onap/schema/OxmModelValidator.java +++ b/src/main/java/org/onap/schema/OxmModelValidator.java @@ -36,13 +36,15 @@ import org.onap.crud.exception.CrudException; import org.onap.crud.logging.CrudServiceMsgs; import org.onap.crud.util.CrudServiceConstants; import org.onap.crud.util.CrudServiceUtil; + import com.google.common.base.CaseFormat; import com.google.gson.JsonElement; import com.google.gson.JsonNull; public class OxmModelValidator { private static Logger logger = LoggerFactory.getInstance().getLogger(OxmModelValidator.class.getName()); - + private static final String OXM_LOAD_ERROR = "Error loading oxm model"; + public enum Metadata { NODE_TYPE("aai-node-type"), URI("aai-uri"), @@ -83,11 +85,10 @@ public class OxmModelValidator { Map result = new HashMap(); if (jaxbContext == null) { - logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, "Error loading oxm model: " + version); - throw new CrudException("Error loading oxm model: " + version, Status.NOT_FOUND); + logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, OXM_LOAD_ERROR + ": " + version); + throw new CrudException(OXM_LOAD_ERROR + ": " + version, Status.NOT_FOUND); } - final DynamicType modelObjectType = jaxbContext.getDynamicType( - CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, type))); + final DynamicType modelObjectType = OxmModelLoader.getDynamicTypeForVersion(version, type); final DynamicType reservedObjectType = jaxbContext.getDynamicType("ReservedPropNames"); for (String key : filter.keySet()) { @@ -130,13 +131,12 @@ public class OxmModelValidator { } if (jaxbContext == null) { - logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, "Error loading oxm model: " + version); - throw new CrudException("Error loading oxm model: " + version, Status.NOT_FOUND); + logger.error(CrudServiceMsgs.OXM_LOAD_ERROR, OXM_LOAD_ERROR + ": " + version); + throw new CrudException(OXM_LOAD_ERROR + ": " + version, Status.NOT_FOUND); } // Determine if the Object part is a collection type in the model // definition - final DynamicType modelObjectType = jaxbContext.getDynamicType( - CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, type))); + final DynamicType modelObjectType = OxmModelLoader.getDynamicTypeForVersion(version, type); if (modelObjectType == null) { logger.error(CrudServiceMsgs.INVALID_OXM_FILE, "Object of collection type not found: " + type); @@ -162,14 +162,12 @@ public class OxmModelValidator { public static Vertex validateIncomingUpsertPayload(String id, String version, String type, JsonElement properties) throws CrudException { - + try { type = resolveCollectionType(version, type); DynamicJAXBContext jaxbContext = OxmModelLoader.getContextForVersion(version); - String modelObjectClass = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, - CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, type)); - final DynamicType modelObjectType = jaxbContext.getDynamicType(modelObjectClass); + final DynamicType modelObjectType = OxmModelLoader.getDynamicTypeForVersion(version, type); final DynamicType reservedType = jaxbContext.getDynamicType("ReservedPropNames"); Set> payloadEntriesSet = properties.getAsJsonObject().entrySet(); @@ -250,10 +248,8 @@ public class OxmModelValidator { try { type = resolveCollectionType(version, type); DynamicJAXBContext jaxbContext = OxmModelLoader.getContextForVersion(version); - String modelObjectClass = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, - CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, type)); - - final DynamicType modelObjectType = jaxbContext.getDynamicType(modelObjectClass); + + final DynamicType modelObjectType = OxmModelLoader.getDynamicTypeForVersion(version, type); final DynamicType reservedType = jaxbContext.getDynamicType("ReservedPropNames"); Set> payloadEntriesSet = properties.getAsJsonObject().entrySet(); @@ -319,16 +315,16 @@ public class OxmModelValidator { return null; } - public static Vertex validateOutgoingPayload(String version, Vertex vertex) { + public static Vertex validateOutgoingPayload(String version, Vertex vertex) { Vertex.Builder modelVertexBuilder = new Vertex.Builder(vertex.getType()).id(vertex.getId().get()); try { DynamicJAXBContext jaxbContext = OxmModelLoader.getContextForVersion(version); - String modelObjectClass = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, - CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, - vertex.getProperties().get(Metadata.NODE_TYPE.propertyName()) != null - ? vertex.getProperties().get(Metadata.NODE_TYPE.propertyName()).toString() : vertex.getType())); - final DynamicType modelObjectType = jaxbContext.getDynamicType(modelObjectClass); + + final DynamicType modelObjectType = OxmModelLoader.getDynamicTypeForVersion(version, + vertex.getProperties().get(Metadata.NODE_TYPE.propertyName()) != null + ? vertex.getProperties().get(Metadata.NODE_TYPE.propertyName()).toString() + : vertex.getType()); final DynamicType reservedObjectType = jaxbContext.getDynamicType("ReservedPropNames"); for (String key : vertex.getProperties().keySet()) { @@ -340,7 +336,7 @@ public class OxmModelValidator { modelVertexBuilder.property(key, vertex.getProperties().get(key)); } } - + return modelVertexBuilder.build(); } catch (Exception ex) { return vertex;