Incorporate the ECOMP SDC Artefact Generator code
[aai/babel.git] / src / main / java / org / onap / aai / babel / xml / generator / api / AaiModelGenerator.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017-2018 European Software Marketing Ltd.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 package org.onap.aai.babel.xml.generator.api;
22
23 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.ERROR_CATEGORY;
24 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.ERROR_CODE;
25 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.ERROR_DESCRIPTION;
26 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.GENERATOR_ERROR_CODE;
27 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED;
28 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.GENERATOR_PARTNER_NAME;
29 import static org.onap.aai.babel.xml.generator.data.GeneratorConstants.PARTNER_NAME;
30
31 import org.onap.aai.babel.logging.ApplicationMsgs;
32 import org.onap.aai.babel.logging.LogHelper;
33 import org.onap.aai.babel.xml.generator.logging.CategoryLogLevel;
34 import org.onap.aai.babel.xml.generator.model.Resource;
35 import org.onap.aai.babel.xml.generator.model.Service;
36 import org.onap.aai.cl.api.Logger;
37 import org.slf4j.MDC;
38
39 public interface AaiModelGenerator {
40
41     /**
42      * Gets instance.
43      *
44      * @return the instance
45      */
46     public static AaiModelGenerator getInstance() {
47         Logger log = LogHelper.INSTANCE;
48         try {
49             return AaiModelGenerator.class
50                     .cast(Class.forName("org.onap.aai.babel.xml.generator.api.AaiModelGeneratorImpl").newInstance());
51         } catch (Exception exception) {
52             MDC.put(PARTNER_NAME, GENERATOR_PARTNER_NAME);
53             MDC.put(ERROR_CATEGORY, CategoryLogLevel.ERROR.name());
54             MDC.put(ERROR_CODE, GENERATOR_ERROR_CODE);
55             MDC.put(ERROR_DESCRIPTION, GENERATOR_ERROR_SERVICE_INSTANTIATION_FAILED);
56             log.error(ApplicationMsgs.PROCESS_REQUEST_ERROR, exception);
57         }
58         return null;
59     }
60
61     public String generateModelFor(Service service);
62
63     public String generateModelFor(Resource resource);
64 }