summaryrefslogtreecommitdiffstats
path: root/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/GraphPropertyEnum.java
blob: ab3a05e560ac94bf06a67b3b6fab1dc71cdb1743 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*-
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.openecomp.sdc.be.datatypes.enums;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
@Getter
public enum GraphPropertyEnum {
    // @formatter:off
    // field name ,class type ,unique ,indexed
    UNIQUE_ID("uid", String.class, true, true),
    LABEL("nodeLabel", String.class, false, true),
    JSON("json", String.class, false, false),
    METADATA("metadata", String.class, false, false),
    VERSION("version", String.class, false, true),
    STATE("state", String.class, false, true),
    IS_HIGHEST_VERSION("highestVersion", Boolean.class, false, true),
    IS_DELETED("deleted", Boolean.class, false, true),
    NORMALIZED_NAME("normalizedName", String.class, false, true),
    NAME("name", String.class, false, true),
    TOSCA_RESOURCE_NAME("toscaResourceName", String.class, false, true),
    DISTRIBUTION_STATUS("distributionStatus", String.class, false, false),
    RESOURCE_TYPE("resourceType", String.class, false, true),
    COMPONENT_TYPE("componentType", String.class, false, true),
    UUID("uuid", String.class, false, true),
    SYSTEM_NAME("systemName", String.class, false, true),
    IS_ABSTRACT("abstract", Boolean.class, false, true),
    INVARIANT_UUID("invariantUuid", String.class, false, true),
    CSAR_UUID("csarUuid", String.class, false, true),
    CSAR_VERSION_UUID("csarVersionUuid", String.class, false, true),
    //used for user (old format, no json for users)
    USERID("userId", String.class, true, true),
    ROLE("role", String.class, false, false),
    FIRST_NAME("firstName", String.class, false, false),
    LAST_NAME("lastName", String.class, false, false),
    EMAIL("email", String.class, false, false),
    LAST_LOGIN_TIME("lastLoginTime", Long.class, false, false),
    //used for category (old format, no json for categories)
    ICONS("icons", String.class, false, false),
    METADATA_KEYS("metadataKeys", String.class, false, false),
    USE_SUBSTITUTION_FOR_NESTED_SERVICES("useServiceSubstitutionForNestedServices", Boolean.class, false, false),
    DATA_TYPES("data_types", Map.class, false, false),
    //Archive/Restore
    IS_ARCHIVED("isArchived", Boolean.class, false, true),
    IS_VSP_ARCHIVED("isVspArchived", Boolean.class, false, true),
    ARCHIVE_TIME("archiveTime", Long.class, false, true),
    PREV_CATALOG_UPDATE_TIME("previousUpdateTime", Long.class, false, true),
    CURRENT_CATALOG_UPDATE_TIME("currentUpdateTime", Long.class, false, true),
    //Healing
    HEALING_VERSION("healVersion", Integer.class, false, true),
    MODEL("model", String.class, false, false),
    MODEL_TYPE("modelType", String.class, false, false);
    // @formatter:on

    private final String property;
    private final Class<?> clazz;
    private final boolean unique;
    private final boolean indexed;

    public static GraphPropertyEnum getByProperty(String property) {
        for (GraphPropertyEnum currProperty : GraphPropertyEnum.values()) {
            if (currProperty.getProperty().equals(property)) {
                return currProperty;
            }
        }
        return null;
    }

    public static List<String> getAllProperties() {
        List<String> arrayList = new ArrayList<>();
        for (GraphPropertyEnum graphProperty : GraphPropertyEnum.values()) {
            arrayList.add(graphProperty.getProperty());
        }
        return arrayList;
    }
}