/
FieldName.java
45 lines (36 loc) · 1.25 KB
/
FieldName.java
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
/* Copyright 2018-2022 contributors to the Marquez project */
/* SPDX-License-Identifier: Apache-2.0 */
package marquez.common.models;
import static marquez.common.base.MorePreconditions.checkNotBlank;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.util.StdConverter;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;
import lombok.ToString;
@EqualsAndHashCode
@ToString
@JsonDeserialize(converter = FieldName.FromValue.class)
@JsonSerialize(converter = FieldName.ToValue.class)
public final class FieldName {
@Getter private final String value;
public FieldName(@NonNull final String value) {
this.value = checkNotBlank(value, "value must not be blank");
}
public static FieldName of(final String value) {
return new FieldName(value);
}
public static class FromValue extends StdConverter<String, FieldName> {
@Override
public FieldName convert(@NonNull String value) {
return FieldName.of(value);
}
}
public static class ToValue extends StdConverter<FieldName, String> {
@Override
public String convert(@NonNull FieldName name) {
return name.getValue();
}
}
}