156de4fdce7ea041fb3d4832512f7373baa66fbb
[aai/aai-common.git] / aai-core / src / main / java / org / onap / aai / introspection / Wanderer.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 import org.onap.aai.exceptions.AAIException;
25
26 import java.util.List;
27
28 public interface Wanderer {
29
30         /**
31          * Process primitive.
32          *
33          * @param propName the prop name
34          * @param obj the obj
35          */
36         public void processPrimitive(String propName, Introspector obj);
37         
38         /**
39          * Process primitive list.
40          *
41          * @param propName the prop name
42          * @param obj the obj
43          */
44         public void processPrimitiveList(String propName, Introspector obj);
45         
46         /**
47          * Process complex obj.
48          *
49          * @param obj the obj
50          * @throws AAIException 
51          */
52         public void processComplexObj(Introspector obj) throws AAIException;
53         
54         /**
55          * Modify complex list.
56          *
57          * @param list the list
58          * @param listReference TODO
59          * @param parent the parent
60          * @param child the child
61          */
62         public void modifyComplexList(List<Introspector> list, List<Object> listReference, Introspector parent, Introspector child);
63         
64         /**
65          * Creates the complex obj if null.
66          *
67          * @return true, if successful
68          */
69         public default boolean createComplexObjIfNull() {
70                 return false;
71         }
72         
73         /**
74          * Creates the complex list size.
75          *
76          * @param parent the parent
77          * @param child the child
78          * @return the int
79          */
80         public default int createComplexListSize(Introspector parent, Introspector child) {
81                 return 0;
82         }
83         
84 }