@Override public Object field(Object target) { Object result = results.get(slot); if (result == ParsingUtils.NOT_FOUND) { return FieldExtractor.NOT_FOUND; } return (returnAsJson ? StringUtils.toJsonString(result) : result); }
static Object extractConstant(String value, boolean autoQuote) { // check for quote and automatically add them, if needed for non-numbers if (autoQuote && !value.startsWith("\"") && !value.endsWith("\"")) { // constant values if (!("null".equals(value) || "true".equals(value) || "false".equals(value))) { // try number parsing if (value.startsWith("-")) { value = value.substring(1); } boolean isNumber = true; for (int i = 0; i < value.length(); i++) { if (!Character.isDigit(value.charAt(i))) { isNumber = false; break; } } if (!isNumber) { value = StringUtils.toJsonString(value); } } } return new RawJson(value); } }
@Override public Object field(Object target) { // lazy init to have the settings in place if (value == null) { value = new RawJson(StringUtils.toJsonString(settings.getMappingVersionType())); } return value; } };
@Override public Object field(Object target) { List<Object> list = new ArrayList<Object>(params.size()); int entries = 0; // construct the param list but keep the value exposed to be properly transformed (if it's extracted from the runtime) list.add(new RawJson("{")); for (Entry<String, FieldExtractor> entry : params.entrySet()) { String val = StringUtils.toJsonString(entry.getKey()) + ":"; if (entries > 0) { val = "," + val; } list.add(new RawJson(val)); Object field = entry.getValue().field(target); if (field == FieldExtractor.NOT_FOUND) { lastFailingFieldExtractor = entry.getValue(); return FieldExtractor.NOT_FOUND; } // add the param as is - it will be translated to JSON as part of the list later list.add(field); entries++; } list.add(new RawJson("}")); return list; }
void doWrite(Object value) { // common-case - constants or JDK types if (value instanceof String || jsonInput || value instanceof Number || value instanceof Boolean || value == null) { String valueString = (value == null ? "null" : value.toString()); if (value instanceof String && !jsonInput) { valueString = StringUtils.toJsonString(valueString); } pool.get().bytes(valueString); } else if (value instanceof Date) { String valueString = (value == null ? "null": Long.toString(((Date) value).getTime())); pool.get().bytes(valueString); } else if (value instanceof RawJson) { pool.get().bytes(((RawJson) value).json()); } // library specific type - use the value writer (a bit overkill but handles collections/arrays properly) else { BytesArray ba = pool.get(); JacksonJsonGenerator generator = new JacksonJsonGenerator(new FastByteArrayOutputStream(ba)); valueWriter.write(value, generator); generator.flush(); generator.close(); } }
@Override public Object field(Object target) { Object result = results.get(slot); if (result == ParsingUtils.NOT_FOUND) { return FieldExtractor.NOT_FOUND; } return (returnAsJson ? StringUtils.toJsonString(result) : result); }
@Override public Object field(Object target) { Object result = results.get(slot); if (result == ParsingUtils.NOT_FOUND) { return FieldExtractor.NOT_FOUND; } return (returnAsJson ? StringUtils.toJsonString(result) : result); }
@Override public Object field(Object target) { Object result = results.get(slot); if (result == ParsingUtils.NOT_FOUND) { return FieldExtractor.NOT_FOUND; } return (returnAsJson ? StringUtils.toJsonString(result) : result); }
@Override public Object field(Object target) { Object result = results.get(slot); if (result == ParsingUtils.NOT_FOUND) { return FieldExtractor.NOT_FOUND; } return (returnAsJson ? StringUtils.toJsonString(result) : result); }
static Object extractConstant(String value, boolean autoQuote) { // check for quote and automatically add them, if needed for non-numbers if (autoQuote && !value.startsWith("\"") && !value.endsWith("\"")) { // constant values if (!("null".equals(value) || "true".equals(value) || "false".equals(value))) { // try number parsing if (value.startsWith("-")) { value = value.substring(1); } boolean isNumber = true; for (int i = 0; i < value.length(); i++) { if (!Character.isDigit(value.charAt(i))) { isNumber = false; break; } } if (!isNumber) { value = StringUtils.toJsonString(value); } } } return new RawJson(value); } }
@Override public Object field(Object target) { // lazy init to have the settings in place if (value == null) { value = new RawJson(StringUtils.toJsonString(settings.getMappingVersionType())); } return value; } };
@Override public Object field(Object target) { // lazy init to have the settings in place if (value == null) { value = new RawJson(StringUtils.toJsonString(settings.getMappingVersionType())); } return value; } };
@Override public Object field(Object target) { // lazy init to have the settings in place if (value == null) { value = new RawJson(StringUtils.toJsonString(settings.getMappingVersionType())); } return value; } };
@Override public Object field(Object target) { // lazy init to have the settings in place if (value == null) { value = new RawJson(StringUtils.toJsonString(settings.getMappingVersionType())); } return value; } };
@Override public Object field(Object target) { List<Object> list = new ArrayList<Object>(params.size()); int entries = 0; // construct the param list but keep the value exposed to be properly transformed (if it's extracted from the runtime) list.add(new RawJson("{")); for (Entry<String, FieldExtractor> entry : params.entrySet()) { String val = StringUtils.toJsonString(entry.getKey()) + ":"; if (entries > 0) { val = "," + val; } list.add(new RawJson(val)); Object field = entry.getValue().field(target); if (field == FieldExtractor.NOT_FOUND) { lastFailingFieldExtractor = entry.getValue(); return FieldExtractor.NOT_FOUND; } // add the param as is - it will be translated to JSON as part of the list later list.add(field); entries++; } list.add(new RawJson("}")); return list; }
@Override public Object field(Object target) { List<Object> list = new ArrayList<Object>(params.size()); int entries = 0; // construct the param list but keep the value exposed to be properly transformed (if it's extracted from the runtime) list.add(new RawJson("{")); for (Entry<String, FieldExtractor> entry : params.entrySet()) { String val = StringUtils.toJsonString(entry.getKey()) + ":"; if (entries > 0) { val = "," + val; } list.add(new RawJson(val)); Object field = entry.getValue().field(target); if (field == FieldExtractor.NOT_FOUND) { lastFailingFieldExtractor = entry.getValue(); return FieldExtractor.NOT_FOUND; } // add the param as is - it will be translated to JSON as part of the list later list.add(field); entries++; } list.add(new RawJson("}")); return list; }
@Override public Object field(Object target) { List<Object> list = new ArrayList<Object>(params.size()); int entries = 0; // construct the param list but keep the value exposed to be properly transformed (if it's extracted from the runtime) list.add(new RawJson("{")); for (Entry<String, FieldExtractor> entry : params.entrySet()) { String val = StringUtils.toJsonString(entry.getKey()) + ":"; if (entries > 0) { val = "," + val; } list.add(new RawJson(val)); Object field = entry.getValue().field(target); if (field == FieldExtractor.NOT_FOUND) { lastFailingFieldExtractor = entry.getValue(); return FieldExtractor.NOT_FOUND; } // add the param as is - it will be translated to JSON as part of the list later list.add(field); entries++; } list.add(new RawJson("}")); return list; }
void doWrite(Object value) { // common-case - constants or JDK types if (value instanceof String || jsonInput || value instanceof Number || value instanceof Boolean || value == null) { String valueString = (value == null ? "null" : value.toString()); if (value instanceof String && !jsonInput) { valueString = StringUtils.toJsonString(valueString); } pool.get().bytes(valueString); } else if (value instanceof Date) { String valueString = (value == null ? "null": Long.toString(((Date) value).getTime())); pool.get().bytes(valueString); } else if (value instanceof RawJson) { pool.get().bytes(((RawJson) value).json()); } // library specific type - use the value writer (a bit overkill but handles collections/arrays properly) else { BytesArray ba = pool.get(); JacksonJsonGenerator generator = new JacksonJsonGenerator(new FastByteArrayOutputStream(ba)); valueWriter.write(value, generator); generator.flush(); generator.close(); } }
void doWrite(Object value) { // common-case - constants or JDK types if (value instanceof String || jsonInput || value instanceof Number || value instanceof Boolean || value == null) { String valueString = (value == null ? "null" : value.toString()); if (value instanceof String && !jsonInput) { valueString = StringUtils.toJsonString(valueString); } pool.get().bytes(valueString); } else if (value instanceof Date) { String valueString = (value == null ? "null": Long.toString(((Date) value).getTime())); pool.get().bytes(valueString); } else if (value instanceof RawJson) { pool.get().bytes(((RawJson) value).json()); } // library specific type - use the value writer (a bit overkill but handles collections/arrays properly) else { BytesArray ba = pool.get(); JacksonJsonGenerator generator = new JacksonJsonGenerator(new FastByteArrayOutputStream(ba)); valueWriter.write(value, generator); generator.flush(); generator.close(); } }
void doWrite(Object value) { // common-case - constants or JDK types if (value instanceof String || jsonInput || value instanceof Number || value instanceof Boolean || value == null) { String valueString = (value == null ? "null" : value.toString()); if (value instanceof String && !jsonInput) { valueString = StringUtils.toJsonString(valueString); } pool.get().bytes(valueString); } else if (value instanceof RawJson) { pool.get().bytes(((RawJson) value).json()); } // library specific type - use the value writer (a bit overkill but handles collections/arrays properly) else { BytesArray ba = pool.get(); JacksonJsonGenerator generator = new JacksonJsonGenerator(new FastByteArrayOutputStream(ba)); valueWriter.write(value, generator); generator.flush(); generator.close(); } }