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