@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(name = "one", value = PayloadOne.class), @JsonSubTypes.Type(name = "two", value = org.immutables.fixture.jackson.poly2.PayloadTwo.class) }) @JsonProperty("payload") public abstract Payload getPayload();
@Override public List<NamedType> findSubtypes(Annotated a) { JsonSubTypes t = _findAnnotation(a, JsonSubTypes.class); if (t == null) return null; JsonSubTypes.Type[] types = t.value(); ArrayList<NamedType> result = new ArrayList<NamedType>(types.length); for (JsonSubTypes.Type type : types) { result.add(new NamedType(type.value(), type.name())); } return result; }
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") @JsonTypeName("TaskStepUpdateParameters") @JsonSubTypes({ @JsonSubTypes.Type(name = "Docker", value = DockerBuildStepUpdateParameters.class), @JsonSubTypes.Type(name = "FileTask", value = FileTaskStepUpdateParameters.class), @JsonProperty(value = "contextPath") private String contextPath;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(name = KafkaUserTlsClientAuthentication.TYPE_TLS, value = KafkaUserTlsClientAuthentication.class), @JsonSubTypes.Type(name = KafkaUserScramSha512ClientAuthentication.TYPE_SCRAM_SHA_512, value = KafkaUserScramSha512ClientAuthentication.class), }) @JsonInclude(JsonInclude.Include.NON_NULL) public abstract class KafkaUserAuthentication implements Serializable { private static final long serialVersionUID = 1L; private Map<String, Object> additionalProperties; @Description("Authentication type.") public abstract String getType(); @JsonAnyGetter public Map<String, Object> getAdditionalProperties() { return this.additionalProperties; } @JsonAnySetter public void setAdditionalProperty(String name, Object value) { if (this.additionalProperties == null) { this.additionalProperties = new HashMap<>(); } this.additionalProperties.put(name, value); } }
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type") @JsonSubTypes({ @JsonSubTypes.Type(value = CreateHandle.class, name = "CreateHandle"), @JsonSubTypes.Type(value = InsertHandle.class, name = "InsertHandle"), @JsonSubTypes.Type(value = DeleteHandle.class, name = "DeleteHandle")}) @SuppressWarnings({"EmptyClass", "ClassMayBeInterface"}) public abstract static class WriterTarget { @Override public abstract String toString(); }
@JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeName("commandStatuses") @JsonTypeInfo( include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonSubTypes({}) public class CommandStatuses extends HashMap<CommandId, CommandStatus.Status> { @JsonCreator public CommandStatuses(final Map<CommandId, CommandStatus.Status> statuses) { super(statuses); } public static CommandStatuses fromFullStatuses(final Map<CommandId, CommandStatus> fullStatuses) { final Map<CommandId, CommandStatus.Status> statuses = fullStatuses.entrySet().stream().collect( Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().getStatus()) ); return new CommandStatuses(statuses); } }
@JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeName("commandStatus") @JsonSubTypes({}) public class CommandStatus { public enum Status { QUEUED, PARSING, EXECUTING, RUNNING, TERMINATED, SUCCESS, ERROR }
final JsonSubTypes jsonSubTypes = beanClass.getAnnotation(JsonSubTypes.class); final JsonTypeInfo jsonTypeInfo = beanClass.getAnnotation(JsonTypeInfo.class); if (jsonSubTypes != null && jsonTypeInfo != null && jsonTypeInfo.include() == JsonTypeInfo.As.PROPERTY) { final String propertyName = jsonTypeInfo.property(); for (JsonSubTypes.Type subType : jsonSubTypes.value()) { String propertyValue = null; if (jsonTypeInfo.use() == JsonTypeInfo.Id.NAME) { if (subType.name().equals("")) { final JsonTypeName jsonTypeName = subType.value().getAnnotation(JsonTypeName.class); if (jsonTypeName != null) { propertyValue = jsonTypeName.value(); propertyValue = subType.name();
@Override public void injectFields(final TypescriptInterface iface, final Class<?> javaClass) { final JsonTypeInfo typeInfoAnnotation = javaClass.getSuperclass().getAnnotation(JsonTypeInfo.class); final JsonSubTypes subTypesAnnotation = javaClass.getSuperclass().getAnnotation(JsonSubTypes.class); for (JsonSubTypes.Type subType : subTypesAnnotation.value()) { if (subType.value().equals(javaClass)) { final TypescriptField field = new TypescriptField(typeInfoAnnotation.property(), new TypescriptStringConstantType(subType.name()), TypescriptField.MANDATORY); iface.field(field); } } }
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") @JsonTypeName("RunRequest") @JsonSubTypes({ @JsonSubTypes.Type(name = "DockerBuildRequest", value = DockerBuildRequest.class), @JsonSubTypes.Type(name = "FileTaskRunRequest", value = FileTaskRunRequest.class), @JsonProperty(value = "isArchiveEnabled") private Boolean isArchiveEnabled;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(name = InlineLogging.TYPE_INLINE, value = InlineLogging.class), @JsonSubTypes.Type(name = ExternalLogging.TYPE_EXTERNAL, value = ExternalLogging.class), }) @JsonInclude(JsonInclude.Include.NON_NULL) public abstract class Logging implements Serializable {
/** */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") @JsonSubTypes(value = { @JsonSubTypes.Type(name = "timeBoundary", value = TimeBoundaryTieredBrokerSelectorStrategy.class), @JsonSubTypes.Type(name = "priority", value = PriorityTieredBrokerSelectorStrategy.class), @JsonSubTypes.Type(name = "javascript", value = JavaScriptTieredBrokerSelectorStrategy.class) }) public interface TieredBrokerSelectorStrategy { Optional<String> getBrokerServiceName(TieredBrokerConfig config, Query query); }
@JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("KsqlServerInfo") @JsonSubTypes({}) public class ServerInfo { private final String version;
@JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeName("description") @JsonSubTypes({}) public class SourceDescription {
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") @JsonTypeName("TaskStepProperties") @JsonSubTypes({ @JsonSubTypes.Type(name = "Docker", value = DockerTaskStep.class), @JsonSubTypes.Type(name = "FileTask", value = FileTaskStep.class), @JsonProperty(value = "baseImageDependencies", access = JsonProperty.Access.WRITE_ONLY) private List<BaseImageDependency> baseImageDependencies; @JsonProperty(value = "contextPath") private String contextPath;
@NotNull @Valid @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT) @JsonSubTypes({ @JsonSubTypes.Type(name = "postgres", value = Postgres.class), @JsonSubTypes.Type(name = "mysql", value = MySql.class) }) @JsonProperty(required = true) public BackendImplementation getBackendImplementation() { return super.getBackendImplementation(); }
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(name = KafkaUserAuthorizationSimple.TYPE_SIMPLE, value = KafkaUserAuthorizationSimple.class), }) @JsonInclude(JsonInclude.Include.NON_NULL) public abstract class KafkaUserAuthorization implements Serializable { private static final long serialVersionUID = 1L;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", defaultImpl = RandomServerSelectorStrategy.class) @JsonSubTypes(value = { @JsonSubTypes.Type(name = "random", value = RandomServerSelectorStrategy.class), @JsonSubTypes.Type(name = "connectionCount", value = ConnectionCountServerSelectorStrategy.class) }) public interface ServerSelectorStrategy { QueryableDruidServer pick(Set<QueryableDruidServer> servers, DataSegment segment); List<QueryableDruidServer> pick(Set<QueryableDruidServer> servers, DataSegment segment, int numServersToPick); }
/** * A condition for the delivery rule. */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "name") @JsonTypeName("DeliveryRuleCondition") @JsonSubTypes({ @JsonSubTypes.Type(name = "UrlPath", value = DeliveryRuleUrlPathCondition.class), @JsonSubTypes.Type(name = "UrlFileExtension", value = DeliveryRuleUrlFileExtensionCondition.class) }) public class DeliveryRuleCondition { }
static List<Class<?>> subtypes(Class<?> crdClass) { JsonSubTypes subtypes = crdClass.getAnnotation(JsonSubTypes.class); if (subtypes != null) { ArrayList<Class<?>> result = new ArrayList<>(subtypes.value().length); for (JsonSubTypes.Type type : subtypes.value()) { result.add(type.value()); } return result; } else { return emptyList(); } }