Java 类com.fasterxml.jackson.core.util.ByteArrayBuilder 实例源码

项目:GitHub    文件:JsonStringEncoder.java   
private int _appendByte(int ch, int esc, ByteArrayBuilder bb, int ptr)
{
    bb.setCurrentSegmentLength(ptr);
    bb.append('\\');
    if (esc < 0) { // standard escape
        bb.append('u');
        if (ch > 0xFF) {
            int hi = (ch >> 8);
            bb.append(HB[hi >> 4]);
            bb.append(HB[hi & 0xF]);
            ch &= 0xFF;
        } else {
            bb.append('0');
            bb.append('0');
        }
        bb.append(HB[ch >> 4]);
        bb.append(HB[ch & 0xF]);
    } else { // 2-char simple escape
        bb.append((byte) esc);
    }
    return bb.getCurrentSegmentLength();
}
项目:GitHub    文件:UTF8DataInputJsonParserTest.java   
@Test
public void testReadBinaryValueThrowsIOException() {
    BufferRecycler bufferRecycler = new BufferRecycler();
    IOContext ioContext = new IOContext(bufferRecycler, this, false);
    ByteQuadsCanonicalizer byteQuadsCanonicalizer = ByteQuadsCanonicalizer.createRoot();
    UTF8DataInputJsonParser uTF8DataInputJsonParser = new UTF8DataInputJsonParser(ObjectReadContext.empty(),
            ioContext, (-53), null, byteQuadsCanonicalizer, 48);
    ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder(bufferRecycler, 1);

    try {
        uTF8DataInputJsonParser.readBinaryValue(null, byteArrayBuilder);
        fail("Expecting exception: IOException");
    } catch (IOException e) {
        assertEquals(JsonParser.class.getName(), e.getStackTrace()[0].getClassName());
    }
}
项目:GitHub    文件:Base64VariantTest.java   
@Test
public void testDecodeTaking2ArgumentsThrowsIllegalArgumentException() {
    Base64Variant base64Variant = new Base64Variant("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
            false,
            'x',
            'x');

    assertEquals(120, base64Variant.getMaxLineLength());
    assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", base64Variant.toString());
    assertFalse(base64Variant.usesPadding());
    assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", base64Variant.getName());
    assertEquals((byte) 120, base64Variant.getPaddingByte());
    assertEquals('x', base64Variant.getPaddingChar());

    ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder();

    try {
        base64Variant.decode("-%8en$9m=>$m", byteArrayBuilder);
        fail("Expecting exception: IllegalArgumentException");
    } catch (IllegalArgumentException e) {
        assertEquals(Base64Variant.class.getName(), e.getStackTrace()[0].getClassName());
    }
}
项目:GitHub    文件:Base64VariantTest.java   
@Test
public void testDecodeTaking2ArgumentsOne() {
    Base64Variant base64Variant = new Base64Variant("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
            false,
            'R',
            4);
    BufferRecycler bufferRecycler = new BufferRecycler();
    ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder(bufferRecycler);

    base64Variant.decode("PEM", byteArrayBuilder);

    assertFalse(base64Variant.usesPadding());
    assertEquals('R', base64Variant.getPaddingChar());
    assertEquals(4, base64Variant.getMaxLineLength());
    assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", base64Variant.toString());
    assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", base64Variant.getName());
    assertEquals((byte) 82, base64Variant.getPaddingByte());
}
项目:Gaffer    文件:RoaringBitmapJsonSerialisationTest.java   
@Test
public void testCanSerialiseAndDeserialise() throws IOException {
    final ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder();
    JsonGenerator jsonGenerator = JSON_FACTORY.createGenerator(byteArrayBuilder);
    RoaringBitmap testBitmap = new RoaringBitmap();
    testBitmap.add(2);
    testBitmap.add(3000);
    testBitmap.add(300000);
    for (int i=400000; i<500000; i+=2) {
        testBitmap.add(i);
    }
    SERIALISER.serialize(testBitmap, jsonGenerator, null);
    jsonGenerator.flush();
    byte[] serialisedBitmap = byteArrayBuilder.toByteArray();
    JsonParser parser = JSON_FACTORY.createParser(serialisedBitmap);
    parser.setCodec(new ObjectMapper());
    Object o = DESERIALISER.deserialize(parser, null);
    assertEquals(RoaringBitmap.class, o.getClass());
    assertEquals(testBitmap, o);
}
项目:Gaffer    文件:RoaringBitmapJsonSerialisationTest.java   
@Test
public void testCanSerialiseAndDeserialiseWithRuns() throws IOException {
    final ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder();
    JsonGenerator jsonGenerator = JSON_FACTORY.createGenerator(byteArrayBuilder);
    RoaringBitmap testBitmap = new RoaringBitmap();
    testBitmap.add(2);
    testBitmap.add(3000);
    testBitmap.add(300000);
    for (int i=400000; i<500000; i+=2) {
        testBitmap.add(i);
    }
    testBitmap.runOptimize();
    SERIALISER.serialize(testBitmap, jsonGenerator, null);
    jsonGenerator.flush();
    byte[] serialisedBitmap = byteArrayBuilder.toByteArray();
    JsonParser parser = JSON_FACTORY.createParser(serialisedBitmap);
    parser.setCodec(new ObjectMapper());
    Object o = DESERIALISER.deserialize(parser, null);
    assertEquals(RoaringBitmap.class, o.getClass());
    assertEquals(testBitmap, o);
}
项目:QuizUpWinner    文件:ObjectWriter.java   
public byte[] writeValueAsBytes(Object paramObject)
{
  ByteArrayBuilder localByteArrayBuilder = new ByteArrayBuilder(this._jsonFactory._getBufferRecycler());
  try
  {
    _configAndWriteValue(this._jsonFactory.createGenerator(localByteArrayBuilder, JsonEncoding.UTF8), paramObject);
  }
  catch (JsonProcessingException localJsonProcessingException)
  {
    throw localJsonProcessingException;
  }
  catch (IOException localIOException)
  {
    throw JsonMappingException.fromUnexpectedIOE(localIOException);
  }
  byte[] arrayOfByte = localByteArrayBuilder.toByteArray();
  localByteArrayBuilder.release();
  return arrayOfByte;
}
项目:QuizUpWinner    文件:UTF8StreamJsonParser.java   
public final byte[] getBinaryValue(Base64Variant paramBase64Variant)
{
  if ((this._currToken != JsonToken.VALUE_STRING) && ((this._currToken != JsonToken.VALUE_EMBEDDED_OBJECT) || (this._binaryValue == null)))
    _reportError("Current token (" + this._currToken + ") not VALUE_STRING or VALUE_EMBEDDED_OBJECT, can not access as binary");
  if (this._tokenIncomplete)
  {
    try
    {
      this._binaryValue = _decodeBase64(paramBase64Variant);
    }
    catch (IllegalArgumentException localIllegalArgumentException)
    {
      throw _constructError("Failed to decode VALUE_STRING as base64 (" + paramBase64Variant + "): " + localIllegalArgumentException.getMessage());
    }
    this._tokenIncomplete = false;
  }
  else if (this._binaryValue == null)
  {
    ByteArrayBuilder localByteArrayBuilder = _getByteArrayBuilder();
    _decodeBase64(getText(), localByteArrayBuilder, paramBase64Variant);
    this._binaryValue = localByteArrayBuilder.toByteArray();
  }
  return this._binaryValue;
}
项目:QuizUpWinner    文件:ReaderBasedJsonParser.java   
public final byte[] getBinaryValue(Base64Variant paramBase64Variant)
{
  if ((this._currToken != JsonToken.VALUE_STRING) && ((this._currToken != JsonToken.VALUE_EMBEDDED_OBJECT) || (this._binaryValue == null)))
    _reportError("Current token (" + this._currToken + ") not VALUE_STRING or VALUE_EMBEDDED_OBJECT, can not access as binary");
  if (this._tokenIncomplete)
  {
    try
    {
      this._binaryValue = _decodeBase64(paramBase64Variant);
    }
    catch (IllegalArgumentException localIllegalArgumentException)
    {
      throw _constructError("Failed to decode VALUE_STRING as base64 (" + paramBase64Variant + "): " + localIllegalArgumentException.getMessage());
    }
    this._tokenIncomplete = false;
  }
  else if (this._binaryValue == null)
  {
    ByteArrayBuilder localByteArrayBuilder = _getByteArrayBuilder();
    _decodeBase64(getText(), localByteArrayBuilder, paramBase64Variant);
    this._binaryValue = localByteArrayBuilder.toByteArray();
  }
  return this._binaryValue;
}
项目:Beam    文件:JsonStringEncoder.java   
private int _appendByteEscape(int ch, int escCode, ByteArrayBuilder byteBuilder, int ptr)
{
    byteBuilder.setCurrentSegmentLength(ptr);
    byteBuilder.append(INT_BACKSLASH);
    if (escCode < 0) { // standard escape
        byteBuilder.append(INT_U);
        if (ch > 0xFF) {
            int hi = (ch >> 8);
            byteBuilder.append(HEX_BYTES[hi >> 4]);
            byteBuilder.append(HEX_BYTES[hi & 0xF]);
            ch &= 0xFF;
        } else {
            byteBuilder.append(INT_0);
            byteBuilder.append(INT_0);
        }
        byteBuilder.append(HEX_BYTES[ch >> 4]);
        byteBuilder.append(HEX_BYTES[ch & 0xF]);
    } else { // 2-char simple escape
        byteBuilder.append((byte) escCode);
    }
    return byteBuilder.getCurrentSegmentLength();
}
项目:joyplus-tv    文件:JsonStringEncoder.java   
private int _appendByteEscape(int ch, int escCode, ByteArrayBuilder byteBuilder, int ptr)
{
    byteBuilder.setCurrentSegmentLength(ptr);
    byteBuilder.append(INT_BACKSLASH);
    if (escCode < 0) { // standard escape
        byteBuilder.append(INT_U);
        if (ch > 0xFF) {
            int hi = (ch >> 8);
            byteBuilder.append(HEX_BYTES[hi >> 4]);
            byteBuilder.append(HEX_BYTES[hi & 0xF]);
            ch &= 0xFF;
        } else {
            byteBuilder.append(INT_0);
            byteBuilder.append(INT_0);
        }
        byteBuilder.append(HEX_BYTES[ch >> 4]);
        byteBuilder.append(HEX_BYTES[ch & 0xF]);
    } else { // 2-char simple escape
        byteBuilder.append((byte) escCode);
    }
    return byteBuilder.getCurrentSegmentLength();
}
项目:GitHub    文件:ParserBase.java   
@SuppressWarnings("resource")
@Override
public byte[] getBinaryValue(Base64Variant variant) throws IOException
{
    if (_binaryValue == null) {
        if (_currToken != JsonToken.VALUE_STRING) {
            _reportError("Current token (%s) not VALUE_EMBEDDED_OBJECT or VALUE_STRING, can not access as binary", _currToken);
        }
        ByteArrayBuilder builder = _getByteArrayBuilder();
        _decodeBase64(getText(), builder, variant);
        _binaryValue = builder.toByteArray();
    }
    return _binaryValue;
}
项目:GitHub    文件:ParserMinimalBase.java   
/**
 * Helper method that can be used for base64 decoding in cases where
 * encoded content has already been read as a String.
 */
protected void _decodeBase64(String str, ByteArrayBuilder builder, Base64Variant b64variant) throws IOException
{
    try {
        b64variant.decode(str, builder);
    } catch (IllegalArgumentException e) {
        _reportError(e.getMessage());
    }
}
项目:GitHub    文件:NonBlockingJsonParserBase.java   
@Override
public byte[] getBinaryValue(Base64Variant b64variant) throws IOException
{
    if (_currToken != JsonToken.VALUE_STRING) {
        _reportError("Current token (%s) not VALUE_STRING or VALUE_EMBEDDED_OBJECT, can not access as binary",
                _currToken);
    }
    if (_binaryValue == null) {
        @SuppressWarnings("resource")
        ByteArrayBuilder builder = _getByteArrayBuilder();
        _decodeBase64(getText(), builder, b64variant);
        _binaryValue = builder.toByteArray();
    }
    return _binaryValue;
}
项目:curiostack    文件:MessageMarshaller.java   
/**
 * Converts a {@link Message} into JSON as UTF-8 encoded bytes.
 *
 * @throws InvalidProtocolBufferException if there are unknown Any types in the message.
 */
public <T extends Message> byte[] writeValueAsBytes(T message) throws IOException {
  checkNotNull(message, "message");
  ByteArrayBuilder builder = new ByteArrayBuilder(jsonFactory._getBufferRecycler());
  JsonGenerator gen = jsonFactory.createGenerator(builder);
  writeValue(message, gen);
  return builder.toByteArray();
}
项目:Gaffer    文件:JSONSerialiser.java   
/**
 * Serialises an object.
 *
 * @param object          the object to be serialised
 * @param prettyPrint     true if the object should be serialised with pretty printing
 * @param fieldsToExclude optional property names to exclude from the json
 * @return the provided object serialised (with pretty printing) into bytes
 * @throws SerialisationException if the object fails to serialise
 */
public static byte[] serialise(final Object object, final boolean prettyPrint, final String... fieldsToExclude) throws SerialisationException {
    final ByteArrayBuilder byteArrayBuilder = new ByteArrayBuilder();
    try {
        serialise(object, JSON_FACTORY.createGenerator(byteArrayBuilder, JsonEncoding.UTF8), prettyPrint, fieldsToExclude);
    } catch (final IOException e) {
        throw new SerialisationException(e.getMessage(), e);
    }

    return byteArrayBuilder.toByteArray();
}
项目:QuizUpWinner    文件:TokenBuffer.java   
public final byte[] getBinaryValue(Base64Variant paramBase64Variant)
{
  if (this._currToken == JsonToken.VALUE_EMBEDDED_OBJECT)
  {
    Object localObject2 = _currentObject();
    if ((localObject2 instanceof byte[]))
      return (byte[])localObject2;
  }
  if (this._currToken != JsonToken.VALUE_STRING)
    throw _constructError("Current token (" + this._currToken + ") not VALUE_STRING (or VALUE_EMBEDDED_OBJECT with byte[]), can not access as binary");
  String str = getText();
  if (str == null)
    return null;
  ByteArrayBuilder localByteArrayBuilder1 = this._byteBuilder;
  Object localObject1 = localByteArrayBuilder1;
  if (localByteArrayBuilder1 == null)
  {
    ByteArrayBuilder localByteArrayBuilder2 = new ByteArrayBuilder(100);
    localObject1 = localByteArrayBuilder2;
    this._byteBuilder = localByteArrayBuilder2;
  }
  else
  {
    this._byteBuilder.reset();
  }
  _decodeBase64(str, (ByteArrayBuilder)localObject1, paramBase64Variant);
  return ((ByteArrayBuilder)localObject1).toByteArray();
}
项目:QuizUpWinner    文件:ParserMinimalBase.java   
public void _decodeBase64(String paramString, ByteArrayBuilder paramByteArrayBuilder, Base64Variant paramBase64Variant)
{
  try
  {
    paramBase64Variant.decode(paramString, paramByteArrayBuilder);
    return;
  }
  catch (IllegalArgumentException localIllegalArgumentException)
  {
    _reportError(localIllegalArgumentException.getMessage());
  }
}
项目:QuizUpWinner    文件:JsonStringEncoder.java   
private int _appendByteEscape(int paramInt1, int paramInt2, ByteArrayBuilder paramByteArrayBuilder, int paramInt3)
{
  paramByteArrayBuilder.setCurrentSegmentLength(paramInt3);
  paramByteArrayBuilder.append(92);
  if (paramInt2 < 0)
  {
    paramByteArrayBuilder.append(117);
    if (paramInt1 > 255)
    {
      int i = paramInt1 >> 8;
      paramByteArrayBuilder.append(HEX_BYTES[(i >> 4)]);
      paramByteArrayBuilder.append(HEX_BYTES[(i & 0xF)]);
      paramInt1 &= 255;
    }
    else
    {
      paramByteArrayBuilder.append(48);
      paramByteArrayBuilder.append(48);
    }
    paramByteArrayBuilder.append(HEX_BYTES[(paramInt1 >> 4)]);
    paramByteArrayBuilder.append(HEX_BYTES[(paramInt1 & 0xF)]);
  }
  else
  {
    paramByteArrayBuilder.append((byte)paramInt2);
  }
  return paramByteArrayBuilder.getCurrentSegmentLength();
}
项目:otj-logging    文件:JsonLogEncoder.java   
protected byte[] getLogMessage(final ObjectNode event) {
    ByteArrayBuilder buf = new ByteArrayBuilder();
    try {
        mapper.writeValue(buf, event);
    } catch (IOException e) {
        addError("while serializing log event", e);
        return NADA;
    }
    buf.append('\n');
    return buf.toByteArray();
}
项目:Beam    文件:ParserMinimalBase.java   
/**
 * Helper method that can be used for base64 decoding in cases where
 * encoded content has already been read as a String.
 */
protected void _decodeBase64(String str, ByteArrayBuilder builder, Base64Variant b64variant)
    throws IOException, JsonParseException
{
    // just call helper method introduced in 2.2.3
    try {
        b64variant.decode(str, builder);
    } catch (IllegalArgumentException e) {
        _reportError(e.getMessage());
    }
}
项目:jackson-jr    文件:JSONComposer.java   
protected JSONComposer(int features, JsonGenerator gen, ByteArrayBuilder w)
{
    super(gen);
    _features = features;
    _stringWriter = null;
    _byteWriter = w;
    _closeGenerator = true;
}
项目:joyplus-tv    文件:TokenBuffer.java   
@Override
public byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException
{
    // First: maybe we some special types?
    if (_currToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
        // Embedded byte array would work nicely...
        Object ob = _currentObject();
        if (ob instanceof byte[]) {
            return (byte[]) ob;
        }
        // fall through to error case
    }
    if (_currToken != JsonToken.VALUE_STRING) {
        throw _constructError("Current token ("+_currToken+") not VALUE_STRING (or VALUE_EMBEDDED_OBJECT with byte[]), can not access as binary");
    }
    final String str = getText();
    if (str == null) {
        return null;
    }
    ByteArrayBuilder builder = _byteBuilder;
    if (builder == null) {
        _byteBuilder = builder = new ByteArrayBuilder(100);
    } else {
        _byteBuilder.reset();
    }
    _decodeBase64(str, builder, b64variant);
    return builder.toByteArray();
}
项目:QuizUpWinner    文件:Base64Variant.java   
public final void decode(String paramString, ByteArrayBuilder paramByteArrayBuilder)
{
  int i = 0;
  int j = paramString.length();
  while (i < j)
  {
    char c1;
    do
    {
      int k = i;
      i++;
      c1 = paramString.charAt(k);
      if (i >= j)
        break;
    }
    while (c1 <= ' ');
    int m = decodeBase64Char(c1);
    if (m < 0)
      _reportInvalidBase64(c1, 0, null);
    if (i >= j)
      _reportBase64EOF();
    int n = i;
    int i1 = i + 1;
    char c2 = paramString.charAt(n);
    int i2 = decodeBase64Char(c2);
    if (i2 < 0)
      _reportInvalidBase64(c2, 1, null);
    int i3 = i2 | m << 6;
    if (i1 >= j)
    {
      if (!usesPadding())
      {
        paramByteArrayBuilder.append(i3 >> 4);
        return;
      }
      _reportBase64EOF();
    }
    int i4 = i1 + 1;
    char c3 = paramString.charAt(i1);
    int i5 = decodeBase64Char(c3);
    if (i5 < 0)
    {
      if (i5 != -2)
        _reportInvalidBase64(c3, 2, null);
      if (i4 >= j)
        _reportBase64EOF();
      i = i4 + 1;
      char c5 = paramString.charAt(i4);
      if (!usesPaddingChar(c5))
        _reportInvalidBase64(c5, 3, "expected padding character '" + getPaddingChar() + "'");
      paramByteArrayBuilder.append(i3 >> 4);
    }
    else
    {
      int i6 = i5 | i3 << 6;
      if (i4 >= j)
      {
        if (!usesPadding())
        {
          paramByteArrayBuilder.appendTwoBytes(i6 >> 2);
          return;
        }
        _reportBase64EOF();
      }
      i = i4 + 1;
      char c4 = paramString.charAt(i4);
      int i7 = decodeBase64Char(c4);
      if (i7 < 0)
      {
        if (i7 != -2)
          _reportInvalidBase64(c4, 3, null);
        paramByteArrayBuilder.appendTwoBytes(i6 >> 2);
      }
      else
      {
        paramByteArrayBuilder.appendThreeBytes(i7 | i6 << 6);
      }
    }
  }
}
项目:QuizUpWinner    文件:Base64Variant.java   
public final byte[] decode(String paramString)
{
  ByteArrayBuilder localByteArrayBuilder = new ByteArrayBuilder();
  decode(paramString, localByteArrayBuilder);
  return localByteArrayBuilder.toByteArray();
}
项目:jackson-jr    文件:JSONComposer.java   
public static JSONComposer<byte[]> bytesComposer(int features,
        JsonGenerator gen, ByteArrayBuilder w) {
    return new JSONComposer<byte[]>(features, gen, w);
}
项目:jackson-jr    文件:JSON.java   
public JSONComposer<byte[]> composeBytes() throws IOException, JSONObjectException {
    ByteArrayBuilder out = new ByteArrayBuilder(_streamFactory._getBufferRecycler());
    JsonGenerator gen = _config(_streamFactory.createGenerator(this, out));
    return JSONComposer.bytesComposer(_features, gen, out);
}
项目:GitHub    文件:Base64Variant.java   
/**
 * Convenience method for decoding contents of a Base64-encoded String,
 * using this variant's settings.
 * 
 * @param input
 * 
 * @since 2.2.3
 *
 * @throws IllegalArgumentException if input is not valid base64 encoded data
 */
@SuppressWarnings("resource")
public byte[] decode(String input) throws IllegalArgumentException
{
    ByteArrayBuilder b = new ByteArrayBuilder();
    decode(input, b);
    return b.toByteArray();
}
项目:Beam    文件:Base64Variant.java   
/**
 * Convenience method for decoding contents of a Base64-encoded String,
 * using this variant's settings.
 * 
 * @param input
 * 
 * @since 2.2.3
 *
 * @throws IllegalArgumentException if input is not valid base64 encoded data
 */
@SuppressWarnings("resource")
public byte[] decode(String input) throws IllegalArgumentException
{
    ByteArrayBuilder b = new ByteArrayBuilder();
    decode(input, b);
    return b.toByteArray();
}