Update license files, sonar plugin and fix tests
[aai/aai-common.git] / aai-core / src / main / java / org / openecomp / aai / introspection / PropertyPredicates.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 java.util.Map;
24 import java.util.Set;
25
26 import org.openecomp.aai.schema.enums.PropertyMetadata;
27
28 public final class PropertyPredicates {
29
30         private PropertyPredicates() {
31                 
32         }
33         
34         public static PropertyPredicate<Introspector, String> includeInTestGeneration() {
35                 return (obj, prop) -> {
36                         final Map<PropertyMetadata, String> map = obj.getPropertyMetadata(prop);
37                         if (map.containsKey(PropertyMetadata.VISIBILITY)) {
38                                 return !(Visibility.internal.equals(Visibility.valueOf(map.get(PropertyMetadata.VISIBILITY))) 
39                                                 || Visibility.deployment.equals(Visibility.valueOf(map.get(PropertyMetadata.VISIBILITY))));
40                         }
41                         if (map.containsKey("dataLocation")) {
42                                 return false;
43                         }
44                         return true;
45                 };
46         }
47          
48         public static PropertyPredicate<Introspector, String> isVisible() {
49                 return (obj, prop) -> {
50                         final Map<PropertyMetadata, String> map = obj.getPropertyMetadata(prop);
51                         if (map.containsKey(PropertyMetadata.VISIBILITY)) {
52                                 return !Visibility.internal.equals(Visibility.valueOf(map.get(PropertyMetadata.VISIBILITY)));
53                         }
54                         return true;
55                 };
56         }
57         
58         public static PropertyPredicate<Introspector, String> includeInExamples() {
59                 return (obj, prop) -> {
60                         final Map<PropertyMetadata, String> map = obj.getPropertyMetadata(prop);
61                         if (map.containsKey(PropertyMetadata.VISIBILITY)) {
62                                 return !Visibility.internal.equals(Visibility.valueOf(map.get(PropertyMetadata.VISIBILITY)));
63                         }
64                         if (map.containsKey("dataLocation")) {
65                                 return false;
66                         }
67                         return true;
68                 };
69         }
70         
71         public static PropertyPredicate<Introspector, String> isIndexed() {
72                 return (obj, prop) -> {
73                         Set<String> indexed = obj.getIndexedProperties();
74                         return indexed.contains(prop);
75                 };
76         }
77 }