86a171633d66d42e041348ded0752fe49cd13693
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / dao / neo4j / GraphPropertiesDictionary.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.sdc.be.dao.neo4j;
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26
27 public enum GraphPropertiesDictionary {
28 //                                              field name                                      class type                              unique          indexed 
29 //                                                                                                      stored in graph                         index   
30         // Common
31         LABEL                           ("nodeLabel",                           String.class,                           false,          true),
32         HEALTH_CHECK            ("healthcheckis",                       String.class,                           true,           true), //yavivi
33         // Resource
34         NAME                            ("name",                                        String.class,                           false,          true),
35         TOSCA_RESOURCE_NAME     ("toscaResourceName",           String.class,                           false,          true),
36         CATEGORY_NAME           ("categoryName",                        String.class,                           false,          true), // ?
37         VERSION                         ("version",                                     String.class,                           false,          true),
38         CREATION_DATE           ("creationDate",                        Long.class,                             false,          false),
39         LAST_UPDATE_DATE        ("modificationDate",            Long.class,                             false,          false),
40         IS_HIGHEST_VERSION      ("highestVersion",                      Boolean.class,                          false,          true),
41         IS_ABSTRACT                     ("abstract",                            Boolean.class,                          false,          true),
42         DESCRIPTION                     ("description",                         String.class,                           false,          false),
43         UNIQUE_ID                       ("uid",                                         String.class,                           true,           true),
44         STATE                           ("state",                                       String.class,                           false,          true),
45         TYPE                            ("type",                                        String.class,                           false,          true),
46         REQUIRED                        ("required",                            Boolean.class,                          false,          false),
47         DEFAULT_VALUE           ("defaultValue",                        String.class,                           false,          false),
48         CONSTRAINTS                     ("constraints",                         String.class,                   false,          false),
49         CONTACT_ID                      ("contactId",                           String.class,                           false,          false),
50         VENDOR_NAME                     ("vendorName",                          String.class,                           false,          false),
51         VENDOR_RELEASE          ("vendorRelease",                       String.class,                           false,          false),
52         CONFORMANCE_LEVEL       ("conformanceLevel",            String.class,                           false,          false),
53         ICON                            ("icon",                                        String.class,                           false,          false),
54         TAGS                            ("tags",                                        String.class,                   false,          false),
55         UUID                            ("uuid",                                        String.class,                           false,          true),
56         COST                            ("cost",                                        String.class,                           false,          false),
57         LICENSE_TYPE            ("licenseType",                         String.class,                           false,          false),
58         NORMALIZED_NAME         ("normalizedName",                      String.class,                           false,          true),
59         SYSTEM_NAME                     ("systemName",                          String.class,                           false,          true),
60         IS_DELETED                      ("deleted",                                     Boolean.class,                          false,          true),
61         RESOURCE_TYPE           ("resourceType",                        String.class,                           false,          true),
62         ENTRY_SCHEMA            ("entry_schema",                        String.class,                           false,          false),
63         CSAR_UUID                       ("csarUuid",                            String.class,                           false,          true),
64         CSAR_VERSION            ("csarVersion",                         String.class,                           false,          true),
65         IMPORTED_TOSCA_CHECKSUM ("importedToscaChecksum",                               String.class,                           false,          true),
66         GENERATED                       ("generated",                           Boolean.class,                          false,          false),
67         // User
68         USERID                          ("userId",                                      String.class,                           true,           true),
69         EMAIL                           ("email",                                       String.class,                           false,          false),
70         FIRST_NAME                      ("firstName",                           String.class,                           false,          false),
71         LAST_NAME                       ("lastName",                            String.class,                           false,          false),
72         ROLE                            ("role",                                        String.class,                           false,          true),
73         USER_STATUS                     ("status",                                      String.class,                           false,          true),
74         VALID_SOURCE_TYPES  ("validSourceTypes",        String.class,               false,              false),
75         NODE                            ("node",                                        String.class,                           false,          false),
76         VALUE                           ("value",                                       String.class,                           false,          false),
77         HIDDEN                          ("Hidden",                                      Boolean.class,                          false,          false),
78         PROPERTIES                      ("properties",                          String.class,                           false,          false),
79         POSITION_X                      ("positionX",                           String.class,                           false,          false),
80         POSITION_Y                      ("positionY",                           String.class,                           false,          false),
81         RELATIONSHIP_TYPE       ("relationshipType",            String.class,                           false,          false),
82         ARTIFACT_TYPE           ("artifactType",                        String.class,                           false,          true),
83         ARTIFACT_REF            ("artifactRef",                         String.class,                           false,          false),
84         ARTIFACT_REPOSITORY     ("artifactRepository",          String.class,                           false,          false),
85         ARTIFACT_CHECKSUM       ("artifactChecksum",            String.class,                           false,          false),
86         CREATOR                         ("creator",                                     String.class,                           false,          false),
87         CREATOR_ID          ("creatorId",                               String.class,                           false,          false),
88         LAST_UPDATER            ("lastUpdater",                         String.class,                           false,          false),
89         CREATOR_FULL_NAME       ("creatorFullName",                     String.class,                           false,          false),
90         UPDATER_FULL_NAME       ("updaterFullName",                     String.class,                           false,          false),
91         ES_ID                           ("esId",                                        String.class,                           false,          false),
92         ARTIFACT_LABEL          ("artifactLabel",                       String.class,                           false,          true),
93         ARTIFACT_DISPLAY_NAME("artifactDisplayName",    String.class,                           false,          true),
94         INSTANCE_COUNTER        ("instanceCounter",                     Integer.class,                          false,          false),
95         PROJECT_CODE            ("projectCode",                         String.class,                           false,          false),
96         DISTRIBUTION_STATUS     ("distributionStatus",          String.class,                           false,          false),
97         IS_VNF                          ("isVNF",                                       Boolean.class,                          false,          false),
98         LAST_LOGIN_TIME         ("lastLoginTime",                       Long.class,                                     false,          true),
99         ATTRIBUTE_COUNTER       ("attributeCounter",            Integer.class,                          false,          false),
100         INPUT_COUNTER           ("inputCounter",                        Integer.class,                          false,          false),
101         PROPERTY_COUNTER        ("propertyCounter",                     Integer.class,                          false,          false),
102         API_URL                         ("apiUrl",                                      String.class,                           false,          false),
103         SERVICE_API                     ("serviceApi",                          Boolean.class,                          false,          true),
104         ADDITIONAL_INFO_PARAMS ("additionalInfo",       String.class,              false,               false),
105         ADDITIONAL_INFO_ID_TO_KEY ("idToKey",                   String.class,              false,               false),
106         ARTIFACT_GROUP_TYPE ("artifactGroupType",       String.class,              false,               true),
107         ARTIFACT_TIMEOUT        ("timeout",                                     Integer.class,                          false,          false),
108         IS_ACTIVE                       ("isActive",                            Boolean.class,                          false,          true),
109         PROPERTY_VALUE_RULES ("propertyValueRules",             String.class,                           false,          false),
110         //authantication
111         CONSUMER_NAME           ("consumerName",                        String.class,                           true,           true),
112         CONSUMER_PASSWORD       ("consumerPassword",            String.class,                           false,          false),
113         CONSUMER_SALT           ("consumerSalt",                        String.class,                           false,          false),
114         CONSUMER_LAST_AUTHENTICATION_TIME       ("consumerLastAuthenticationTime",              Long.class,                             false,          false),
115         CONSUMER_DETAILS_LAST_UPDATED_TIME      ("consumerDetailsLastupdatedtime",              Long.class,                             false,          false),
116         LAST_MODIFIER_USER_ID("lastModfierUserId",              String.class,                           false,          false),
117         ARTIFACT_VERSION        ("artifactVersion",                     String.class,                           false,          false),
118         ARTIFACT_UUID           ("artifactUUID",                        String.class,                           false,          false),
119         PAYLOAD_UPDATE_DATE     ("payloadUpdateDate",           Long.class,                             false,          false),
120         HEAT_PARAMS_UPDATE_DATE ("heatParamsUpdateDate",Long.class,                             false,          false),
121         //product
122         FULL_NAME                       ("fullName",                            String.class,               false,              true),
123         //was changed as part of migration from 1602 to 1602 ( in 1602 was defined as unique. it's problem to reconfigure the index )
124         CONSTANT_UUID           ("constantUuidNew",                     String.class,               false,              true),
125         CONTACTS                        ("contacts",                            String.class,                           false,          false),
126         //categorys
127         ICONS                           ("icons",                                       String.class,                           false,          false),
128         //relation
129         CAPABILITY_OWNER_ID     ("capOwnerId",                          String.class,                           false,          false),
130         REQUIREMENT_OWNER_ID ("reqOwnerId",                             String.class,                           false,          false),
131         CAPABILITY_ID           ("capabiltyId",                         String.class,                           false,          false),
132         REQUIREMENT_ID          ("requirementId",                       String.class,                           false,          false),
133         PROPERTY_ID             ("propertyId",                          String.class,                           false,          false),
134         PROPERTY_NAME           ("propertyName",                        String.class,                           false,          false),
135         //component instance
136         ORIGIN_TYPE             ("originType",                          String.class,                           false,          false),
137         //requirement & capabilty
138         MIN_OCCURRENCES         ("minOccurrences",                      String.class,                           false,          false),
139         MAX_OCCURRENCES         ("maxOccurrences",                      String.class,                           false,          false),
140         //Data type
141         DERIVED_FROM            ("derivedFrom",                         String.class,                           false,          false), 
142         MEMBERS                         ("members",                                     String.class,                           false,          false),
143         TARGETS                         ("targets ",                            String.class,                           false,          false),
144         METADATA                        ("metadata",                            String.class,                           false,          false),
145         INVARIANT_UUID          ("invariantUuid",                       String.class,                           false,          true), 
146         IS_BASE                         ("isBase",                                      Boolean.class,                          false,          true), 
147         GROUP_UUID                      ("groupUuid",                       String.class,                               false,          true), 
148         STATUS                          ("status",                              String.class,                           false,          false),
149         FUNCTIONAL_MENU         ("functionalMenu",                      String.class,                           false,          false),
150         REQUIRED_ARTIFACTS      ("requiredArtifacts",           String.class,                           false,          false),
151         CUSTOMIZATION_UUID      ("customizationUUID",           String.class,                           false,          false),
152         ;
153
154
155
156         private String property;
157         private Class clazz;
158         private boolean unique;
159         private boolean indexed;
160         
161         
162         GraphPropertiesDictionary(String property,Class clazz, boolean unique,boolean indexed) {
163                 this.property = property;
164                 this.clazz = clazz;
165                 this.unique = unique;
166                 this.indexed = indexed;
167         }
168         
169
170         public String getProperty() {
171                 return property;
172         }
173
174         public void setProperty(String property) {
175                 this.property = property;
176         }
177
178         public Class getClazz() {
179                 return clazz;
180         }
181         public void setClazz(Class clazz) {
182                 this.clazz = clazz;
183         }
184         
185         public boolean isUnique() {
186                 return unique;
187         }
188         public void setUnique(boolean unique) {
189                 this.unique = unique;
190         }
191
192         public boolean isIndexed() {
193                 return indexed;
194         }
195
196
197         public void setIndexed(boolean indexed) {
198                 this.indexed = indexed;
199         }
200
201
202         public static List<String> getAllProperties() {
203
204                 List<String> arrayList = new ArrayList<String>();
205
206                 for (GraphPropertiesDictionary graphProperty : GraphPropertiesDictionary
207                                 .values()) {
208                         arrayList.add(graphProperty.getProperty());
209                 }
210
211                 return arrayList;
212         }
213
214 }