https://github.com/fuxingloh/hibernate-validator-enum
So, null & unknown value handling for enum has always been an issue for me, saw the implementation on Amazon Java SDK packages and created @ValidEnum constraints to support using Hibernate Validator library.
https://github.com/fuxingloh/hibernate-validator-enum
bean enum enums hibernate-validator java json validation validator
Last synced: 3 months ago
JSON representation
So, null & unknown value handling for enum has always been an issue for me, saw the implementation on Amazon Java SDK packages and created @ValidEnum constraints to support using Hibernate Validator library.
- Host: GitHub
- URL: https://github.com/fuxingloh/hibernate-validator-enum
- Owner: fuxingloh
- License: apache-2.0
- Created: 2020-04-16T19:21:33.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-31T05:56:09.000Z (about 5 years ago)
- Last Synced: 2025-04-02T00:49:50.932Z (3 months ago)
- Topics: bean, enum, enums, hibernate-validator, java, json, validation, validator
- Language: Java
- Homepage:
- Size: 70.3 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Hibernate Validator Enum
So, `null` & unknown value handling for enum has always been an issue for me when converting from JSON to Java.
I saw an implementation on Amazon Java SDK packages.
Really liked the design, I expanded on it to support JSON using the Jackson packages.
I have also created @ValidEnum constraints to support using Hibernate Validator library.## This project consist of
* IntelliJ Live Template
* ValidEnum annotation
* JSON, Jackson support
* Enum `null`, `unknown value` handling.## Examples
### Creating the enum with live template
> Using the live template to create enum, my keyword is: `UNKNOWN_TO_SDK_VERSION`
```java
public enum Status {
ALLOWED("ALLOWED"),
UNKNOWN_TO_SDK_VERSION(null);private final String value;
Status(String value) {
this.value = value;
}@Override
@JsonValue
public String toString() {
return String.valueOf(value);
}/**
* Use this in place of valueOf to convert the raw string returned by the service into the enum value.
*
* @param value real value
* @return Status corresponding to the value
*/
@JsonCreator
public static Status fromValue(String value) {
if (value == null) {
return null;
}
return Stream.of(Status.values()).filter(e -> e.toString().equals(value)).findFirst()
.orElse(UNKNOWN_TO_SDK_VERSION);
}public static Set knownValues() {
return Stream.of(values()).filter(v -> v != UNKNOWN_TO_SDK_VERSION).collect(Collectors.toSet());
}
}
```### Adding bean validation
```java
public class Bean {
@ValidEnum
public Status status;
}
```## Download
### Maven
```xmldev.fuxing
hibernate-validator-enum
1.0.0```
### Gradle
```groovy
compile group: 'dev.fuxing', name: 'hibernate-validator-enum', version: '1.0.0'
```