Backend support for operation milestones with activities
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / enums / FilterKeyEnum.java
1 /*-
2  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *      http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 package org.openecomp.sdc.be.datatypes.enums;
16
17 import java.util.Arrays;
18 import java.util.Collections;
19 import java.util.List;
20
21 import lombok.AllArgsConstructor;
22 import lombok.Getter;
23
24 @Getter
25 @AllArgsConstructor
26 public enum FilterKeyEnum {
27     RESOURCE_TYPE("resourceType"),
28     SUB_CATEGORY("subCategory"),
29     CATEGORY("category"),
30     VERSION("version"),
31     METADATA("metadata"),
32     INCLUDE("include"),
33     DISTRIBUTION_STATUS("distributionStatus"),
34     NAME_FRAGMENT("nameFragment");
35     private final String name;
36
37     private static final List<String> RESOURCES_FILTERED = Arrays.asList(
38             RESOURCE_TYPE.getName(),
39             SUB_CATEGORY.getName(),
40             CATEGORY.getName());
41     private static final List<String> SERVICES_FILTERED = Arrays.asList(
42             CATEGORY.getName(),
43             DISTRIBUTION_STATUS.getName(),
44             VERSION.getName(),
45             INCLUDE.getName(),
46             METADATA.getName());
47
48     public static List<String> getValidFiltersByAssetType(ComponentTypeEnum assetType) {
49         if (assetType == null) {
50             return Collections.emptyList();
51         }
52         switch (assetType) {
53             case RESOURCE:
54                 return RESOURCES_FILTERED;
55             case SERVICE:
56                 return SERVICES_FILTERED;
57             default:
58                 return Collections.emptyList();
59         }
60     }
61 }