Open Kilda Java Documentation
LinkStatus.java
Go to the documentation of this file.
1 /* Copyright 2018 Telstra Open Source
2  *
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 
16 package org.openkilda.northbound.dto.links;
17 
18 import com.fasterxml.jackson.annotation.JsonCreator;
19 import com.fasterxml.jackson.annotation.JsonProperty;
20 
21 import java.util.Arrays;
22 
23 public enum LinkStatus {
27  DISCOVERED("DISCOVERED"),
28 
32  FAILED("FAILED"),
33 
37  MOVED("MOVED"),
38 
42  CACHED("CACHED"),
43 
47  OTHER_UPDATE("OTHER_UPDATE");
48 
52  @JsonProperty("type")
53  private final String type;
54 
60  @JsonCreator
61  LinkStatus(final String type) {
62  this.type = type;
63  }
64 
68  @Override
69  public String toString() {
70  return type;
71  }
72 
78  public static LinkStatus from(String state) {
79  return Arrays.stream(LinkStatus.values())
80  .filter(item -> item.type.equalsIgnoreCase(state))
81  .findFirst()
82  .orElseThrow(() -> new IllegalArgumentException(String.format("Incorrect isl state: %s", state)));
83  }
84 
85 }