package samplest.jacksonviews;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.google.common.base.Strings;
import restx.factory.Component;
import javax.inject.Named;
import java.io.IOException;
/**
* Demonstrates that a serializer can be a restx component.
* Here we inject a String, but it can be any component.
*/
@Component
public class JacksonSerializerComponent extends JsonSerializer<String> {
private final String appPackage;
public JacksonSerializerComponent(@Named("restx.app.package") String appPackage) {
this.appPackage = appPackage;
}
@Override
public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeString(appPackage + "-" + value);
}
}