package com.jsoniter.annotation;
import com.jsoniter.spi.Decoder;
import com.jsoniter.spi.Encoder;
import com.jsoniter.spi.JsoniterSpi;
import java.lang.annotation.Annotation;
public class JacksonAnnotationSupport extends JsoniterAnnotationSupport {
public static void enable() {
JsoniterSpi.registerExtension(new JacksonAnnotationSupport());
}
@Override
protected JsonIgnore getJsonIgnore(Annotation[] annotations) {
JsonIgnore jsoniterObj = super.getJsonIgnore(annotations);
if (jsoniterObj != null) {
return jsoniterObj;
}
final com.fasterxml.jackson.annotation.JsonIgnore jacksonObj = getAnnotation(
annotations, com.fasterxml.jackson.annotation.JsonIgnore.class);
if (jacksonObj == null) {
return null;
}
return new JsonIgnore() {
@Override
public boolean value() {
return jacksonObj.value();
}
@Override
public Class<? extends Annotation> annotationType() {
return JsonIgnore.class;
}
};
}
@Override
protected JsonProperty getJsonProperty(Annotation[] annotations) {
JsonProperty jsoniterObj = super.getJsonProperty(annotations);
if (jsoniterObj != null) {
return jsoniterObj;
}
final com.fasterxml.jackson.annotation.JsonProperty jacksonObj = getAnnotation(
annotations, com.fasterxml.jackson.annotation.JsonProperty.class);
if (jacksonObj == null) {
return null;
}
return new JsonProperty() {
@Override
public String value() {
return jacksonObj.value();
}
@Override
public String[] from() {
return new String[0];
}
@Override
public String[] to() {
return new String[0];
}
@Override
public boolean required() {
return jacksonObj.required();
}
@Override
public Class<? extends Decoder> decoder() {
return Decoder.class;
}
@Override
public Class<?> implementation() {
return Object.class;
}
@Override
public Class<? extends Encoder> encoder() {
return Encoder.class;
}
@Override
public boolean nullable() {
return true;
}
@Override
public boolean collectionValueNullable() {
return true;
}
@Override
public boolean omitNull() {
return true;
}
@Override
public Class<? extends Annotation> annotationType() {
return JsonProperty.class;
}
};
}
@Override
protected JsonCreator getJsonCreator(Annotation[] annotations) {
JsonCreator jsoniterObj = super.getJsonCreator(annotations);
if (jsoniterObj != null) {
return jsoniterObj;
}
com.fasterxml.jackson.annotation.JsonCreator jacksonObj = getAnnotation(
annotations, com.fasterxml.jackson.annotation.JsonCreator.class);
if (jacksonObj == null) {
return null;
}
return new JsonCreator() {
@Override
public Class<? extends Annotation> annotationType() {
return JsonCreator.class;
}
};
}
}