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