801905dda1e48a14d45afa184d56cf8203a29ab6
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / introspection / IntrospectorFactory.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *    http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  *
20  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
21  */
22 package org.onap.aai.introspection;
23
24 public class IntrospectorFactory {
25
26         /**
27          * New instance.
28          *
29          * @param type the type
30          * @param o the o
31          * @param llBuilder the ll builder
32          * @return the introspector
33          */
34         public static Introspector newInstance(ModelType type, Object o) {
35                 
36                 if (type.equals(ModelType.MOXY)) {
37                         return new MoxyStrategy(o);
38                 } else if (type.equals(ModelType.POJO)) {
39                         return new PojoStrategy(o);
40                 } else if (type.equals(ModelType.JSON)) {
41                         return new JSONStrategy(o);
42                 } else {
43                         throw new IllegalArgumentException("Unknown class type: " + type); 
44                 }
45                 
46         }
47         
48         /**
49          * New instance.
50          *
51          * @param type the type
52          * @param o the o
53          * @param namedType the named type
54          * @param llBuilder the ll builder
55          * @return the introspector
56          */
57         public static Introspector newInstance(ModelType type, Object o, String namedType) {
58                 
59                 if (type.equals(ModelType.JSON)) {
60                         return new JSONStrategy(o, namedType);
61                 } else {
62                         throw new IllegalArgumentException("Unknown class type: " + type); 
63                 }
64                 
65         }
66 }