Ejemplo n.º 1
0
  public void testDecodeFromString() throws Exception {
    for (String str : new String[] {"abcdefgh", "1", "12", "123", "1234", "12345"}) {
      byte[] b64Encoded = B64Code.encode(str.getBytes("UTF-8"));

      byte[] decoded = B64Code.decode(b64Encoded);

      byte[] decodedFromString = B64Code.decode(new String(b64Encoded, "UTF-8"));

      assertEquals(STRING.deser(decoded), STRING.deser(decodedFromString));

      assertEquals(str, STRING.deser(decoded));
    }
  }
Ejemplo n.º 2
0
  public void testDecodeTo() throws Exception {
    for (String str : new String[] {"abcdefgh", "1", "12", "123", "1234", "12345"}) {
      byte[] b64Encoded = B64Code.encode(str.getBytes("UTF-8"));

      byte[] decoded = new byte[16];

      int decodedLen = B64Code.decodeTo(decoded, 0, b64Encoded, 0, b64Encoded.length);

      byte[] decodedFromString = B64Code.decode(new String(b64Encoded, "UTF-8"));

      assertEquals(STRING.deser(decoded, 0, decodedLen), STRING.deser(decodedFromString));

      assertEquals(str, STRING.deser(decoded, 0, decodedLen));
    }
  }
Ejemplo n.º 3
0
 @Override
 public int getSlotSize() {
   switch (type_) {
     case CHAR:
       if (len_ > CHAR_INLINE_LENGTH) return STRING.getSlotSize();
       return len_;
     case DECIMAL:
       return TypesUtil.getDecimalSlotSize(this);
     default:
       return type_.getSlotSize();
   }
 }
 public static ParameterType getById(final Long id) {
   if (STRING.getId().equals(id)) {
     return STRING;
   } else if (LONG.getId().equals(id)) {
     return LONG;
   } else if (DATE.getId().equals(id)) {
     return DATE;
   } else if (DOUBLE.getId().equals(id)) {
     return DOUBLE;
   } else {
     throw new SpringBatchLightminApplicationException("Unknown ParameterType for id: " + id);
   }
 }
 public static PropertyDataTypes getTypeByTypeNum(int typeNum) {
   if (STRING.getTypeNum() == typeNum) return STRING;
   else if (BINARY.getTypeNum() == typeNum) return BINARY;
   else if (LONG.getTypeNum() == typeNum) return LONG;
   else if (DOUBLE.getTypeNum() == typeNum) return DOUBLE;
   else if (DATE.getTypeNum() == typeNum) return DATE;
   else if (BOOLEAN.getTypeNum() == typeNum) return BOOLEAN;
   else if (NAME.getTypeNum() == typeNum) return NAME;
   else if (PATH.getTypeNum() == typeNum) return PATH;
   else if (REFERENCE.getTypeNum() == typeNum) return REFERENCE;
   else if (WEAKREFERENCE.getTypeNum() == typeNum) return WEAKREFERENCE;
   else if (URI.getTypeNum() == typeNum) return URI;
   else if (DECIMAL.getTypeNum() == typeNum) return DECIMAL;
   else return UNDEFINED;
 }
Ejemplo n.º 6
0
 /**
  * Returns a Server variable type requested by name
  *
  * @param type of server variable
  * @return Server Variable type
  */
 public static ServerVariableTypeEnum getEnum(String type) {
   if (type.equals(INT.name())) return INT;
   if (type.equals(STRING.name())) return STRING;
   if (type.equals(BOOLEAN.name())) return BOOLEAN;
   return null;
 }
Ejemplo n.º 7
0
  /**
   * Parses an object from the lexer
   *
   * @param lexer the lexer
   * @return a Map representing a JSON object
   */
  private Map parseObject(JsonLexer lexer) {
    Map content = new HashMap();

    JsonToken previousToken = null;
    JsonToken currentToken = null;

    for (; ; ) {
      currentToken = lexer.nextToken();

      if (currentToken == null) {
        throw new JsonException(
            "Expected a String key on line: "
                + lexer.getReader().getLine()
                + ", "
                + "column: "
                + lexer.getReader().getColumn()
                + ".\n"
                + "But got an unterminated object.");
      }

      // expect a string key, or already a closing curly brace

      if (currentToken.getType() == CLOSE_CURLY) {
        return content;
      } else if (currentToken.getType() != STRING) {
        throw new JsonException(
            "Expected "
                + STRING.getLabel()
                + " key "
                + "on line: "
                + currentToken.getStartLine()
                + ", "
                + "column: "
                + currentToken.getStartColumn()
                + ".\n"
                + "But got '"
                + currentToken.getText()
                + "' instead.");
      }

      String mapKey = (String) currentToken.getValue();

      currentToken = lexer.nextToken();

      if (currentToken == null) {
        throw new JsonException(
            "Expected a "
                + COLON.getLabel()
                + " "
                + "on line: "
                + lexer.getReader().getLine()
                + ", "
                + "column: "
                + lexer.getReader().getColumn()
                + ".\n"
                + "But got an unterminated object.");
      }

      // expect a colon between the key and value pair

      if (currentToken.getType() != COLON) {
        throw new JsonException(
            "Expected "
                + COLON.getLabel()
                + " "
                + "on line: "
                + currentToken.getStartLine()
                + ", "
                + "column: "
                + currentToken.getStartColumn()
                + ".\n"
                + "But got '"
                + currentToken.getText()
                + "' instead.");
      }

      currentToken = lexer.nextToken();

      if (currentToken == null) {
        throw new JsonException(
            "Expected a value "
                + "on line: "
                + lexer.getReader().getLine()
                + ", "
                + "column: "
                + lexer.getReader().getColumn()
                + ".\n"
                + "But got an unterminated object.");
      }

      // value can be an object, an array, a number, string, boolean or null values

      if (currentToken.getType() == OPEN_CURLY) {
        content.put(mapKey, parseObject(lexer));
      } else if (currentToken.getType() == OPEN_BRACKET) {
        content.put(mapKey, parseArray(lexer));
      } else if (currentToken.getType().ordinal() >= NULL.ordinal()) {
        content.put(mapKey, currentToken.getValue());
      } else {
        throw new JsonException(
            "Expected a value, an array, or an object "
                + "on line: "
                + currentToken.getStartLine()
                + ", "
                + "column: "
                + currentToken.getStartColumn()
                + ".\n"
                + "But got '"
                + currentToken.getText()
                + "' instead.");
      }

      previousToken = currentToken;
      currentToken = lexer.nextToken();

      // premature end of the object

      if (currentToken == null) {
        throw new JsonException(
            "Expected "
                + CLOSE_CURLY.getLabel()
                + " or "
                + COMMA.getLabel()
                + " "
                + "on line: "
                + previousToken.getEndLine()
                + ", "
                + "column: "
                + previousToken.getEndColumn()
                + ".\n"
                + "But got an unterminated object.");
      }

      // Expect a comma for an upcoming key/value pair
      // or a closing curly brace for the end of the object
      if (currentToken.getType() == CLOSE_CURLY) {
        break;
      } else if (currentToken.getType() != COMMA) {
        throw new JsonException(
            "Expected a value or "
                + CLOSE_CURLY.getLabel()
                + " "
                + "on line: "
                + currentToken.getStartLine()
                + ", "
                + "column: "
                + currentToken.getStartColumn()
                + ".\n"
                + "But got '"
                + currentToken.getText()
                + "' instead.");
      }
    }

    return content;
  }