Files
plexjava/src/main/java/dev/plexapi/sdk/models/operations/GetSearchAllLibrariesShowOrdering.java

202 lines
7.8 KiB
Java

/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
package dev.plexapi.sdk.models.operations;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import java.io.IOException;
import java.lang.Override;
import java.lang.String;
import java.lang.SuppressWarnings;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
/**
* <p>Wrapper class for an "open" enum. "Open" enums are those that are expected
* to evolve (particularly with the addition of enum members over time). If an
* open enum is used then the appearance of unexpected enum values (say in a
* response from an updated an API) will not bring about a runtime error thus
* ensuring that non-updated client versions can continue to work without error.
*
* <p>Note that instances are immutable and are singletons (an internal thread-safe
* cache is maintained to ensure that). As a consequence instances created with the
* same value will satisfy reference equality (via {@code ==}).
*
* <p>This class is intended to emulate an enum (in terms of common usage and with
* reference equality) but with the ability to carry unknown values. Unfortunately
* Java does not permit the use of an instance in a switch expression but you can
* use the {@code asEnum()} method (after dealing with the `Optional` appropriately).
*
*/
/**
* GetSearchAllLibrariesShowOrdering
*
* <p>Setting that indicates the episode ordering for the show.
* None = Library default,
* tmdbAiring = The Movie Database (Aired),
* aired = TheTVDB (Aired),
* dvd = TheTVDB (DVD),
* absolute = TheTVDB (Absolute)).
*/
@JsonDeserialize(using = GetSearchAllLibrariesShowOrdering._Deserializer.class)
@JsonSerialize(using = GetSearchAllLibrariesShowOrdering._Serializer.class)
public class GetSearchAllLibrariesShowOrdering {
public static final GetSearchAllLibrariesShowOrdering None = new GetSearchAllLibrariesShowOrdering("None");
public static final GetSearchAllLibrariesShowOrdering TmdbAiring = new GetSearchAllLibrariesShowOrdering("tmdbAiring");
public static final GetSearchAllLibrariesShowOrdering TvdbAired = new GetSearchAllLibrariesShowOrdering("aired");
public static final GetSearchAllLibrariesShowOrdering TvdbDvd = new GetSearchAllLibrariesShowOrdering("dvd");
public static final GetSearchAllLibrariesShowOrdering TvdbAbsolute = new GetSearchAllLibrariesShowOrdering("absolute");
// This map will grow whenever a Color gets created with a new
// unrecognized value (a potential memory leak if the user is not
// careful). Keep this field lower case to avoid clashing with
// generated member names which will always be upper cased (Java
// convention)
private static final Map<String, GetSearchAllLibrariesShowOrdering> values = createValuesMap();
private static final Map<String, GetSearchAllLibrariesShowOrderingEnum> enums = createEnumsMap();
private final String value;
private GetSearchAllLibrariesShowOrdering(String value) {
this.value = value;
}
/**
* Returns a GetSearchAllLibrariesShowOrdering with the given value. For a specific value the
* returned object will always be a singleton so reference equality
* is satisfied when the values are the same.
*
* @param value value to be wrapped as GetSearchAllLibrariesShowOrdering
*/
public static GetSearchAllLibrariesShowOrdering of(String value) {
synchronized (GetSearchAllLibrariesShowOrdering.class) {
return values.computeIfAbsent(value, v -> new GetSearchAllLibrariesShowOrdering(v));
}
}
public String value() {
return value;
}
public Optional<GetSearchAllLibrariesShowOrderingEnum> asEnum() {
return Optional.ofNullable(enums.getOrDefault(value, null));
}
public boolean isKnown() {
return asEnum().isPresent();
}
@Override
public int hashCode() {
return Objects.hash(value);
}
@Override
public boolean equals(java.lang.Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
GetSearchAllLibrariesShowOrdering other = (GetSearchAllLibrariesShowOrdering) obj;
return Objects.equals(value, other.value);
}
@Override
public String toString() {
return "GetSearchAllLibrariesShowOrdering [value=" + value + "]";
}
// return an array just like an enum
public static GetSearchAllLibrariesShowOrdering[] values() {
synchronized (GetSearchAllLibrariesShowOrdering.class) {
return values.values().toArray(new GetSearchAllLibrariesShowOrdering[] {});
}
}
private static final Map<String, GetSearchAllLibrariesShowOrdering> createValuesMap() {
Map<String, GetSearchAllLibrariesShowOrdering> map = new LinkedHashMap<>();
map.put("None", None);
map.put("tmdbAiring", TmdbAiring);
map.put("aired", TvdbAired);
map.put("dvd", TvdbDvd);
map.put("absolute", TvdbAbsolute);
return map;
}
private static final Map<String, GetSearchAllLibrariesShowOrderingEnum> createEnumsMap() {
Map<String, GetSearchAllLibrariesShowOrderingEnum> map = new HashMap<>();
map.put("None", GetSearchAllLibrariesShowOrderingEnum.None);
map.put("tmdbAiring", GetSearchAllLibrariesShowOrderingEnum.TmdbAiring);
map.put("aired", GetSearchAllLibrariesShowOrderingEnum.TvdbAired);
map.put("dvd", GetSearchAllLibrariesShowOrderingEnum.TvdbDvd);
map.put("absolute", GetSearchAllLibrariesShowOrderingEnum.TvdbAbsolute);
return map;
}
@SuppressWarnings("serial")
public static final class _Serializer extends StdSerializer<GetSearchAllLibrariesShowOrdering> {
protected _Serializer() {
super(GetSearchAllLibrariesShowOrdering.class);
}
@Override
public void serialize(GetSearchAllLibrariesShowOrdering value, JsonGenerator g, SerializerProvider provider)
throws IOException, JsonProcessingException {
g.writeObject(value.value);
}
}
@SuppressWarnings("serial")
public static final class _Deserializer extends StdDeserializer<GetSearchAllLibrariesShowOrdering> {
protected _Deserializer() {
super(GetSearchAllLibrariesShowOrdering.class);
}
@Override
public GetSearchAllLibrariesShowOrdering deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JacksonException {
String v = p.readValueAs(new TypeReference<String>() {});
// use the factory method to ensure we get singletons
return GetSearchAllLibrariesShowOrdering.of(v);
}
}
public enum GetSearchAllLibrariesShowOrderingEnum {
None("None"),
TmdbAiring("tmdbAiring"),
TvdbAired("aired"),
TvdbDvd("dvd"),
TvdbAbsolute("absolute"),;
private final String value;
private GetSearchAllLibrariesShowOrderingEnum(String value) {
this.value = value;
}
public String value() {
return value;
}
}
}