5429d9995906772f01fe22b2854166d0f422bcbb
[aai/aai-common.git] / aai-core / src / main / java / org / openecomp / aai / introspection / Wanderer.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.openecomp.aai
4  * ================================================================================
5  * Copyright (C) 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
21 package org.openecomp.aai.introspection;
22
23 import org.openecomp.aai.exceptions.AAIException;
24
25 import java.util.List;
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, Introspector child);
62         
63         /**
64          * Creates the complex obj if null.
65          *
66          * @return true, if successful
67          */
68         public default boolean createComplexObjIfNull() {
69                 return false;
70         }
71         
72         /**
73          * Creates the complex list size.
74          *
75          * @param parent the parent
76          * @param child the child
77          * @return the int
78          */
79         public default int createComplexListSize(Introspector parent, Introspector child) {
80                 return 0;
81         }
82         
83 }