new unit tests for sdc-dao
[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), //yavivi
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         NODE                            ("node",                                        String.class,                           false,          false),
72         VALUE                           ("value",                                       String.class,                           false,          false),
73         HIDDEN                          ("Hidden",                                      Boolean.class,                          false,          false),
74         PROPERTIES                      ("properties",                          String.class,                           false,          false),
75         POSITION_X                      ("positionX",                           String.class,                           false,          false),
76         POSITION_Y                      ("positionY",                           String.class,                           false,          false),
77         RELATIONSHIP_TYPE       ("relationshipType",            String.class,                           false,          false),
78         ARTIFACT_TYPE           ("artifactType",                        String.class,                           false,          true),
79         ARTIFACT_REF            ("artifactRef",                         String.class,                           false,          false),
80         ARTIFACT_REPOSITORY     ("artifactRepository",          String.class,                           false,          false),
81         ARTIFACT_CHECKSUM       ("artifactChecksum",            String.class,                           false,          false),
82         CREATOR                         ("creator",                                     String.class,                           false,          false),
83         CREATOR_ID          ("creatorId",                               String.class,                           false,          false),
84         LAST_UPDATER            ("lastUpdater",                         String.class,                           false,          false),
85         CREATOR_FULL_NAME       ("creatorFullName",                     String.class,                           false,          false),
86         UPDATER_FULL_NAME       ("updaterFullName",                     String.class,                           false,          false),
87         ES_ID                           ("esId",                                        String.class,                           false,          false),
88         ARTIFACT_LABEL          ("artifactLabel",                       String.class,                           false,          true),
89         ARTIFACT_DISPLAY_NAME("artifactDisplayName",    String.class,                           false,          true),
90         INSTANCE_COUNTER        ("instanceCounter",                     Integer.class,                          false,          false),
91         PROJECT_CODE            ("projectCode",                         String.class,                           false,          false),
92         DISTRIBUTION_STATUS     ("distributionStatus",          String.class,                           false,          false),
93         IS_VNF                          ("isVNF",                                       Boolean.class,                          false,          false),
94         LAST_LOGIN_TIME         ("lastLoginTime",                       Long.class,                                     false,          true),
95         ATTRIBUTE_COUNTER       ("attributeCounter",            Integer.class,                          false,          false),
96         INPUT_COUNTER           ("inputCounter",                        Integer.class,                          false,          false),
97         PROPERTY_COUNTER        ("propertyCounter",                     Integer.class,                          false,          false),
98         API_URL                         ("apiUrl",                                      String.class,                           false,          false),
99         SERVICE_API                     ("serviceApi",                          Boolean.class,                          false,          true),
100         ADDITIONAL_INFO_PARAMS ("additionalInfo",       String.class,              false,               false),
101         ADDITIONAL_INFO_ID_TO_KEY ("idToKey",                   String.class,              false,               false),
102         ARTIFACT_GROUP_TYPE ("artifactGroupType",       String.class,              false,               true),
103         ARTIFACT_TIMEOUT        ("timeout",                                     Integer.class,                          false,          false),
104         IS_ACTIVE                       ("isActive",                            Boolean.class,                          false,          true),
105         PROPERTY_VALUE_RULES ("propertyValueRules",             String.class,                           false,          false),
106         //authantication
107         CONSUMER_NAME           ("consumerName",                        String.class,                           true,           true),
108         CONSUMER_PASSWORD       ("consumerPassword",            String.class,                           false,          false),
109         CONSUMER_SALT           ("consumerSalt",                        String.class,                           false,          false),
110         CONSUMER_LAST_AUTHENTICATION_TIME       ("consumerLastAuthenticationTime",              Long.class,                             false,          false),
111         CONSUMER_DETAILS_LAST_UPDATED_TIME      ("consumerDetailsLastupdatedtime",              Long.class,                             false,          false),
112         LAST_MODIFIER_USER_ID("lastModfierUserId",              String.class,                           false,          false),
113         ARTIFACT_VERSION        ("artifactVersion",                     String.class,                           false,          false),
114         ARTIFACT_UUID           ("artifactUUID",                        String.class,                           false,          false),
115         PAYLOAD_UPDATE_DATE     ("payloadUpdateDate",           Long.class,                             false,          false),
116         HEAT_PARAMS_UPDATE_DATE ("heatParamsUpdateDate",Long.class,                             false,          false),
117         //product
118         FULL_NAME                       ("fullName",                            String.class,               false,              true),
119         //was changed as part of migration from 1602 to 1602 ( in 1602 was defined as unique. it's problem to reconfigure the index )
120         CONSTANT_UUID           ("constantUuidNew",                     String.class,               false,              true),
121         CONTACTS                        ("contacts",                            String.class,                           false,          false),
122         //categorys
123         ICONS                           ("icons",                                       String.class,                           false,          false),
124         //relation
125         CAPABILITY_OWNER_ID     ("capOwnerId",                          String.class,                           false,          false),
126         REQUIREMENT_OWNER_ID ("reqOwnerId",                             String.class,                           false,          false),
127         CAPABILITY_ID           ("capabiltyId",                         String.class,                           false,          false),
128         REQUIREMENT_ID          ("requirementId",                       String.class,                           false,          false),
129         PROPERTY_ID             ("propertyId",                          String.class,                           false,          false),
130         PROPERTY_NAME           ("propertyName",                        String.class,                           false,          false),
131         //component instance
132         ORIGIN_TYPE             ("originType",                          String.class,                           false,          false),
133         //requirement & capabilty
134         MIN_OCCURRENCES         ("minOccurrences",                      String.class,                           false,          false),
135         MAX_OCCURRENCES         ("maxOccurrences",                      String.class,                           false,          false),
136         //Data type
137         DERIVED_FROM            ("derivedFrom",                         String.class,                           false,          false), 
138         MEMBERS                         ("members",                                     String.class,                           false,          false),
139         TARGETS                         ("targets ",                            String.class,                           false,          false),
140         METADATA                        ("metadata",                            String.class,                           false,          false),
141         INVARIANT_UUID          ("invariantUuid",                       String.class,                           false,          true), 
142         IS_BASE                         ("isBase",                                      Boolean.class,                          false,          true), 
143         GROUP_UUID                      ("groupUuid",                       String.class,                               false,          true), 
144         STATUS                          ("status",                              String.class,                           false,          false),
145         FUNCTIONAL_MENU         ("functionalMenu",                      String.class,                           false,          false),
146         REQUIRED_ARTIFACTS      ("requiredArtifacts",           String.class,                           false,          false),
147         CUSTOMIZATION_UUID      ("customizationUUID",           String.class,                           false,          false),
148         ;
149
150
151
152         private final String property;
153         private final Class clazz;
154         private final boolean unique;
155         private final boolean indexed;
156         
157         
158         GraphPropertiesDictionary(String property,Class clazz, boolean unique,boolean indexed) {
159                 this.property = property;
160                 this.clazz = clazz;
161                 this.unique = unique;
162                 this.indexed = indexed;
163         }
164         
165
166         public String getProperty() {
167                 return property;
168         }
169
170         public Class getClazz() {
171                 return clazz;
172         }
173         
174         public boolean isUnique() {
175                 return unique;
176         }
177
178         public boolean isIndexed() {
179                 return indexed;
180         }
181 }