aboutsummaryrefslogtreecommitdiffstats
path: root/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/GraphPropertyEnum.java
blob: 09e1de6c7b12e9ac225ead235142eb19b89d027c (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*-
 * 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;


public enum GraphPropertyEnum {

    // 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),
    //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),

    //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);



    private String property;
    private Class clazz;
    private boolean unique;
    private boolean indexed;

    GraphPropertyEnum(String property, Class clazz, boolean unique, boolean indexed) {
        this.property = property;
        this.clazz = clazz;
        this.unique = unique;
        this.indexed = indexed;
    }

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

    public String getProperty() {
        return property;
    }

    public void setProperty(String property) {
        this.property = property;
    }

    public Class getClazz() {
        return clazz;
    }

    public void setClazz(Class clazz) {
        this.clazz = clazz;
    }

    public boolean isUnique() {
        return unique;
    }

    public void setUnique(boolean unique) {
        this.unique = unique;
    }

    public boolean isIndexed() {
        return indexed;
    }

    public void setIndexed(boolean indexed) {
        this.indexed = indexed;
    }

    public static List<String> getAllProperties() {

        List<String> arrayList = new ArrayList<>();

        for (GraphPropertyEnum graphProperty : GraphPropertyEnum.values()) {
            arrayList.add(graphProperty.getProperty());
        }

        return arrayList;
    }
}