Initial OpenECOMP SDC commit
[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         ICON                            ("icon",                                        String.class,                           false,          false),
53         TAGS                            ("tags",                                        String.class,                   false,          false),
54         UUID                            ("uuid",                                        String.class,                           false,          true),
55         COST                            ("cost",                                        String.class,                           false,          false),
56         LICENSE_TYPE            ("licenseType",                         String.class,                           false,          false),
57         NORMALIZED_NAME         ("normalizedName",                      String.class,                           false,          true),
58         SYSTEM_NAME                     ("systemName",                          String.class,                           false,          true),
59         IS_DELETED                      ("deleted",                                     Boolean.class,                          false,          true),
60         RESOURCE_TYPE           ("resourceType",                        String.class,                           false,          true),
61         ENTRY_SCHEMA            ("entry_schema",                        String.class,                           false,          false),
62         CSAR_UUID                       ("csarUuid",                            String.class,                           false,          true),
63         CSAR_VERSION            ("csarVersion",                         String.class,                           false,          true),
64         IMPORTED_TOSCA_CHECKSUM ("importedToscaChecksum",                               String.class,                           false,          true),
65         GENERATED                       ("generated",                           Boolean.class,                          false,          false),
66         // User
67         USER_ID                         ("userId",                                      String.class,                           true,           true),
68         EMAIL                           ("email",                                       String.class,                           false,          false),
69         FIRST_NAME                      ("firstName",                           String.class,                           false,          false),
70         LAST_NAME                       ("lastName",                            String.class,                           false,          false),
71         ROLE                            ("role",                                        String.class,                           false,          true),
72         USER_STATUS                     ("status",                                      String.class,                           false,          true),
73         VALID_SOURCE_TYPES  ("validSourceTypes",        String.class,               false,              false),
74         NODE                            ("node",                                        String.class,                           false,          false),
75         VALUE                           ("value",                                       String.class,                           false,          false),
76         HIDDEN                          ("Hidden",                                      Boolean.class,                          false,          false),
77         PROPERTIES                      ("properties",                          String.class,                           false,          false),
78         POSITION_X                      ("positionX",                           String.class,                           false,          false),
79         POSITION_Y                      ("positionY",                           String.class,                           false,          false),
80         RELATIONSHIP_TYPE       ("relationshipType",            String.class,                           false,          false),
81         ARTIFACT_TYPE           ("artifactType",                        String.class,                           false,          true),
82         ARTIFACT_REF            ("artifactRef",                         String.class,                           false,          false),
83         ARTIFACT_REPOSITORY     ("artifactRepository",          String.class,                           false,          false),
84         ARTIFACT_CHECKSUM       ("artifactChecksum",            String.class,                           false,          false),
85         CREATOR                         ("creator",                                     String.class,                           false,          false),
86         ATT_CREATOR                     ("attCreator",                          String.class,                           false,          false),
87         LAST_UPDATER            ("lastUpdater",                         String.class,                           false,          false),
88         CREATOR_FULL_NAME       ("creatorFullName",                     String.class,                           false,          false),
89         UPDATER_FULL_NAME       ("updaterFullName",                     String.class,                           false,          false),
90         ES_ID                           ("esId",                                        String.class,                           false,          false),
91         ARTIFACT_LABEL          ("artifactLabel",                       String.class,                           false,          true),
92         ARTIFACT_DISPLAY_NAME("artifactDisplayName",    String.class,                           false,          true),
93         INSTANCE_COUNTER        ("instanceCounter",                     Integer.class,                          false,          false),
94         PROJECT_CODE            ("projectCode",                         String.class,                           false,          false),
95         DISTRIBUTION_STATUS     ("distributionStatus",          String.class,                           false,          false),
96         IS_VNF                          ("isVNF",                                       Boolean.class,                          false,          false),
97         LAST_LOGIN_TIME         ("lastLoginTime",                       Long.class,                                     false,          true),
98         ATTRIBUTE_COUNTER       ("attributeCounter",            Integer.class,                          false,          false),
99         INPUT_COUNTER           ("inputCounter",                        Integer.class,                          false,          false),
100         PROPERTY_COUNTER        ("propertyCounter",                     Integer.class,                          false,          false),
101         API_URL                         ("apiUrl",                                      String.class,                           false,          false),
102         SERVICE_API                     ("serviceApi",                          Boolean.class,                          false,          true),
103         ADDITIONAL_INFO_PARAMS ("additionalInfo",       String.class,              false,               false),
104         ADDITIONAL_INFO_ID_TO_KEY ("idToKey",                   String.class,              false,               false),
105         ARTIFACT_GROUP_TYPE ("artifactGroupType",       String.class,              false,               true),
106         ARTIFACT_TIMEOUT        ("timeout",                                     Integer.class,                          false,          false),
107         IS_ACTIVE                       ("isActive",                            Boolean.class,                          false,          true),
108         PROPERTY_VALUE_RULES ("propertyValueRules",             String.class,                           false,          false),
109         //authantication
110         CONSUMER_NAME           ("consumerName",                        String.class,                           true,           true),
111         CONSUMER_PASSWORD       ("consumerPassword",            String.class,                           false,          false),
112         CONSUMER_SALT           ("consumerSalt",                        String.class,                           false,          false),
113         CONSUMER_LAST_AUTHENTICATION_TIME       ("consumerLastAuthenticationTime",              Long.class,                             false,          false),
114         CONSUMER_DETAILS_LAST_UPDATED_TIME      ("consumerDetailsLastupdatedtime",              Long.class,                             false,          false),
115         LAST_MODIFIER_USER_ID("lastModfierUserId",              String.class,                           false,          false),
116         ARTIFACT_VERSION        ("artifactVersion",                     String.class,                           false,          false),
117         ARTIFACT_UUID           ("artifactUUID",                        String.class,                           false,          false),
118         PAYLOAD_UPDATE_DATE     ("payloadUpdateDate",           Long.class,                             false,          false),
119         HEAT_PARAMS_UPDATE_DATE ("heatParamsUpdateDate",Long.class,                             false,          false),
120         //product
121         FULL_NAME                       ("fullName",                            String.class,               false,              true),
122         //was changed as part of migration from 1602 to 1602 ( in 1602 was defined as unique. it's problem to reconfigure the index )
123         CONSTANT_UUID           ("constantUuidNew",                     String.class,               false,              true),
124         CONTACTS                        ("contacts",                            String.class,                           false,          false),
125         //categorys
126         ICONS                           ("icons",                                       String.class,                           false,          false),
127         //relation
128         CAPABILITY_OWNER_ID     ("capOwnerId",                          String.class,                           false,          false),
129         REQUIREMENT_OWNER_ID ("reqOwnerId",                             String.class,                           false,          false),
130         CAPABILITY_ID           ("capabiltyId",                         String.class,                           false,          false),
131         REQUIREMENT_ID          ("requirementId",                       String.class,                           false,          false),
132         PROPERTY_ID             ("propertyId",                          String.class,                           false,          false),
133         PROPERTY_NAME           ("propertyName",                        String.class,                           false,          false),
134         //component instance
135         ORIGIN_TYPE             ("originType",                          String.class,                           false,          false),
136         //requirement & capabilty
137         MIN_OCCURRENCES         ("minOccurrences",                      String.class,                           false,          false),
138         MAX_OCCURRENCES         ("maxOccurrences",                      String.class,                           false,          false),
139         //Data type
140         DERIVED_FROM            ("derivedFrom",                         String.class,                           false,          false), 
141         MEMBERS                         ("members",                                     String.class,                           false,          false),
142         TARGETS                         ("targets ",                            String.class,                           false,          false),
143         METADATA                        ("metadata",                            String.class,                           false,          false),
144         INVARIANT_UUID          ("invariantUuid",                       String.class,                           false,          true), 
145         IS_BASE                         ("isBase",                                      Boolean.class,                          false,          true), 
146         GROUP_UUID                      ("groupUuid",                       String.class,                               false,          true), 
147         STATUS                          ("status",                              String.class,                           false,          false),
148         FUNCTIONAL_MENU         ("functionalMenu",                      String.class,                           false,          false),
149         REQUIRED_ARTIFACTS      ("requiredArtifacts",           String.class,                           false,          false),
150         ;
151
152
153
154         private String property;
155         private Class clazz;
156         private boolean unique;
157         private boolean indexed;
158         
159         
160         GraphPropertiesDictionary(String property,Class clazz, boolean unique,boolean indexed) {
161                 this.property = property;
162                 this.clazz = clazz;
163                 this.unique = unique;
164                 this.indexed = indexed;
165         }
166         
167
168         public String getProperty() {
169                 return property;
170         }
171
172         public void setProperty(String property) {
173                 this.property = property;
174         }
175
176         public Class getClazz() {
177                 return clazz;
178         }
179         public void setClazz(Class clazz) {
180                 this.clazz = clazz;
181         }
182         
183         public boolean isUnique() {
184                 return unique;
185         }
186         public void setUnique(boolean unique) {
187                 this.unique = unique;
188         }
189
190         public boolean isIndexed() {
191                 return indexed;
192         }
193
194
195         public void setIndexed(boolean indexed) {
196                 this.indexed = indexed;
197         }
198
199
200         public static List<String> getAllProperties() {
201
202                 List<String> arrayList = new ArrayList<String>();
203
204                 for (GraphPropertiesDictionary graphProperty : GraphPropertiesDictionary
205                                 .values()) {
206                         arrayList.add(graphProperty.getProperty());
207                 }
208
209                 return arrayList;
210         }
211
212 }