text: package org.frameworkset.web.socket.sockjs;
  
  import java.io.IOException;
  import java.io.InputStream;
  
  import org.frameworkset.http.converter.json.Jackson2ObjectMapperBuilder;
  import org.frameworkset.util.Assert;
  
  import com.fasterxml.jackson.core.io.JsonStringEncoder;
  import com.fasterxml.jackson.databind.ObjectMapper;
  
  public class Jackson2SockJsMessageCodec extends AbstractSockJsMessageCodec {
  
  	private final ObjectMapper objectMapper;
  
  
  	public Jackson2SockJsMessageCodec() {
  		this.objectMapper = Jackson2ObjectMapperBuilder.json().build();
  	}
  
  	public Jackson2SockJsMessageCodec(ObjectMapper objectMapper) {
  		Assert.notNull(objectMapper, "ObjectMapper must not be null");
  		this.objectMapper = objectMapper;
  	}
  
  
  	@Override
  	public String[] decode(String content) throws IOException {
  		return this.objectMapper.readValue(content, String[].class);
  	}
  
  	@Override
  	public String[] decodeInputStream(InputStream content) throws IOException {
  		return this.objectMapper.readValue(content, String[].class);
  	}
  
  	@Override
  	protected char[] applyJsonQuoting(String content) {
  		return JsonStringEncoder.getInstance().quoteAsString(content);
  	}
  
  }
  