AAI-1523 Batch reformat aai-core
[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
21 package org.onap.aai.introspection;
22
23 import java.util.List;
24
25 import org.onap.aai.exceptions.AAIException;
26
27 public interface Wanderer {
28
29     /**
30      * Process primitive.
31      *
32      * @param propName the prop name
33      * @param obj the obj
34      */
35     public void processPrimitive(String propName, Introspector obj);
36
37     /**
38      * Process primitive list.
39      *
40      * @param propName the prop name
41      * @param obj the obj
42      */
43     public void processPrimitiveList(String propName, Introspector obj);
44
45     /**
46      * Process complex obj.
47      *
48      * @param obj the obj
49      * @throws AAIException
50      */
51     public void processComplexObj(Introspector obj) throws AAIException;
52
53     /**
54      * Modify complex list.
55      *
56      * @param list the list
57      * @param listReference TODO
58      * @param parent the parent
59      * @param child the child
60      */
61     public void modifyComplexList(List<Introspector> list, List<Object> listReference, Introspector parent,
62             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 }