diff options
Diffstat (limited to 'aai-core/src/main/java/org/onap/aai/introspection/PojoInjestor.java')
-rw-r--r-- | aai-core/src/main/java/org/onap/aai/introspection/PojoInjestor.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/aai-core/src/main/java/org/onap/aai/introspection/PojoInjestor.java b/aai-core/src/main/java/org/onap/aai/introspection/PojoInjestor.java new file mode 100644 index 00000000..5de9c748 --- /dev/null +++ b/aai-core/src/main/java/org/onap/aai/introspection/PojoInjestor.java @@ -0,0 +1,68 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. 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.onap.aai.introspection; + +import org.eclipse.persistence.jaxb.JAXBContextFactory; +import org.onap.aai.db.props.AAIProperties; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class PojoInjestor { + + private String POJO_CLASSPATH = "org.onap.aai.domain.yang"; + private final Pattern classNamePattern = Pattern.compile("\\.(v\\d+)\\."); + + public PojoInjestor() { + } + + public JAXBContext getContextForVersion(Version v) { + JAXBContext context = null; + try { + if (!v.equals(AAIProperties.LATEST)) { + POJO_CLASSPATH += "." + v; + } + context = JAXBContextFactory.createContext(POJO_CLASSPATH, this.getClass().getClassLoader()); + } catch (JAXBException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return context; + } + public Version getVersion (String classname) { + Matcher m = classNamePattern.matcher(classname); + String version; + if (m.find()) { + version = m.group(1); + } else { + //only POJOs of old versions have the version number in their classnames + //so if we can't find a version, default to the latest + version = AAIProperties.LATEST.toString(); + } + + return Version.valueOf(version); + } + +} |