下面列出了怎么用com.fasterxml.jackson.annotation.JsonTypeInfo.Id的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* <p>processType</p>
*
* @param logger a {@link com.google.gwt.core.ext.TreeLogger} object.
* @param typeOracle a {@link com.github.nmorel.gwtjackson.rebind.JacksonTypeOracle} object.
* @param configuration a {@link com.github.nmorel.gwtjackson.rebind.RebindConfiguration} object.
* @param typeOracle a {@link com.github.nmorel.gwtjackson.rebind.JacksonTypeOracle} object.
* @param type a {@link com.google.gwt.core.ext.typeinfo.JClassType} object.
* @param jsonTypeInfo a {@link com.google.gwt.thirdparty.guava.common.base.Optional} object.
* @param propertySubTypes a {@link com.google.gwt.thirdparty.guava.common.base.Optional} object.
* @return a {@link com.google.gwt.thirdparty.guava.common.base.Optional} object.
* @throws com.google.gwt.core.ext.UnableToCompleteException if any.
*/
public static Optional<BeanTypeInfo> processType( TreeLogger logger, JacksonTypeOracle typeOracle, RebindConfiguration configuration,
JClassType type, Optional<JsonTypeInfo> jsonTypeInfo, Optional<JsonSubTypes>
propertySubTypes ) throws UnableToCompleteException {
if ( !jsonTypeInfo.isPresent() ) {
jsonTypeInfo = findFirstEncounteredAnnotationsOnAllHierarchy( configuration, type, JsonTypeInfo.class );
if ( !jsonTypeInfo.isPresent() ) {
return Optional.absent();
}
}
Id use = jsonTypeInfo.get().use();
As include = jsonTypeInfo.get().include();
String propertyName = jsonTypeInfo.get().property().isEmpty() ? jsonTypeInfo.get().use().getDefaultPropertyName() : jsonTypeInfo
.get().property();
Optional<JsonSubTypes> typeSubTypes = findFirstEncounteredAnnotationsOnAllHierarchy( configuration, type, JsonSubTypes.class );
// TODO we could do better, we actually extract metadata twice for a lot of classes
ImmutableMap<JClassType, String> classToSerializationMetadata = extractMetadata( logger, configuration, type, jsonTypeInfo,
propertySubTypes, typeSubTypes, CreatorUtils
.filterSubtypesForSerialization( logger, configuration, type ) );
ImmutableMap<JClassType, String> classToDeserializationMetadata = extractMetadata( logger, configuration, type, jsonTypeInfo,
propertySubTypes, typeSubTypes, CreatorUtils
.filterSubtypesForDeserialization( logger, configuration, type ) );
return Optional.of(
new BeanTypeInfo( use, include, propertyName, classToSerializationMetadata, classToDeserializationMetadata ) );
}
BeanTypeInfo( Id use, As include, String propertyName, ImmutableMap<JClassType, String> mapTypeToSerializationMetadata,
ImmutableMap<JClassType, String> mapTypeToDeserializationMetadata ) {
this.use = use;
this.include = include;
this.propertyName = propertyName;
this.mapTypeToSerializationMetadata = mapTypeToSerializationMetadata;
this.mapTypeToDeserializationMetadata = mapTypeToDeserializationMetadata;
}
@Override
public Id getMechanism() {
return Id.CUSTOM;
}
@Override
public Id getMechanism()
{
return Id.NAME;
}
@JsonTypeInfo(use=Id.CLASS, defaultImpl=Object.class)
public T getPayload()
{
return payload;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestFormProperty.class)
public List<RestFormProperty> getProperties() {
return properties;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
@ApiModelProperty(value ="Array of variables (in the general variables format) to use as payload to pass along with the signal. Cannot be used in case async is set to true, this will result in an error.")
public List<RestVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getTransientVariables() {
return transientVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getTransientVariables() {
return transientVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public void setProcessInstanceVariables(List<QueryVariable> processInstanceVariables) {
this.processInstanceVariables = processInstanceVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getTaskVariables() {
return taskVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getProcessInstanceVariables() {
return processInstanceVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public void setTransientVariables(List<RestVariable> transientVariables) {
this.transientVariables = transientVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getTaskVariables() {
return taskVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getProcessVariables() {
return processVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getVariables() {
return variables;
}
@Override
public Id getMechanism() {
return Id.CUSTOM;
}
@Override
public Id getMechanism() {
return Id.CUSTOM;
}
@Override
public Id getMechanism() {
return Id.CUSTOM;
}
@Override
public Id getMechanism() {
return Id.NAME;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public List<QueryVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = QueryVariable.class)
public void setCaseInstanceVariables(List<QueryVariable> caseInstanceVariables) {
this.caseInstanceVariables = caseInstanceVariables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getVariables() {
return variables;
}
@JsonTypeInfo(use = Id.CLASS, defaultImpl = RestVariable.class)
public List<RestVariable> getTransientVariables() {
return transientVariables;
}