Java tutorial
/* * Copyright 2015 Ignacio del Valle Alles idelvall@brutusin.org. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.brutusin.json.impl.serializers; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.json.JsonWriteContext; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; import java.io.IOException; import java.io.InputStream; /** * * @author Ignacio del Valle Alles idelvall@brutusin.org */ public class InputStreamSerializer extends StdSerializer<InputStream> { public InputStreamSerializer() { super(InputStream.class); } @Override public void serialize(InputStream value, JsonGenerator gen, SerializerProvider provider) throws IOException { JsonWriteContext ctx = (JsonWriteContext) gen.getOutputContext(); int status = ctx.writeValue(); switch (status) { case JsonWriteContext.STATUS_OK_AFTER_COMMA: gen.writeRaw(','); break; case JsonWriteContext.STATUS_OK_AFTER_COLON: gen.writeRaw(':'); break; case JsonWriteContext.STATUS_OK_AFTER_SPACE: gen.writeRaw(' '); break; } ; if (value == null) { gen.writeRaw("null"); } else { SerializationContext sCtx = SerializationContext.getCurrentContext(); if (sCtx == null) { sCtx = new SerializationContext(); SerializationContext.setCurrentContext(sCtx); } gen.writeRaw("\"" + sCtx.addStream(value) + "\""); } } }