/** * Returns the licence with the specified licence key. * * @param key Licence key. * * @return The licence with the specified key is returned. * * @throws IllegalArgumentException if there is no licence with the specified key. */ public static Licence get( String key ) { JsonNode licence = database.get( key ); if ( licence == null ) { throw new IllegalArgumentException( _( "error-licence", key ) ); } return new Licence( licence.get( "name" ).getTextValue(), licence.get( "resource" ).getTextValue() ); }
protected JsonNode currentNumericNode() throws JsonParseException { JsonNode n = currentNode(); if (n == null || !n.isNumber()) { JsonToken t = (n == null) ? null : n.asToken(); throw _constructError( "Current token (" + t + ") not numeric, can not use numeric value accessors"); } return n; }
public Object getEmbeddedObject() { if (!_closed) { JsonNode n = currentNode(); if (n != null && n.isPojo()) { return ((POJONode) n).getPojo(); } } return null; }
public TreeTraversingParser(JsonNode n, ObjectCodec codec) { _objectCodec = codec; if (n.isArray()) { _nextToken = JsonToken.START_ARRAY; _nodeCursor = new NodeCursor.Array(n, null); } else if (n.isObject()) { _nextToken = JsonToken.START_OBJECT; _nodeCursor = new NodeCursor.Object(n, null); } else { // value node _nodeCursor = new NodeCursor.RootValue(n, null); } }
@Test public void testMetadataInputStream() throws Exception { MetaDataInputStream mis = new MetaDataInputStream( getClass() .getClassLoader() .getResourceAsStream("META-INF/services/org.brutusin.json.spi.JsonCodec"), null, null, Long.MIN_VALUE); TestClass instance = new TestClass(); String json = JsonCodec.getInstance().transform(instance); assertTrue(!json.contains("\"metaDataInputStream\"")); instance.setMetaDataInputStream(mis); json = JsonCodec.getInstance().transform(instance); assertTrue(json.contains("\"metaDataInputStream\":\"#1#")); JsonNode node = JsonCodec.getInstance().toJsonNode(instance); assertEquals(node.get("metaDataInputStream").asStream(), mis); TestClass instance2 = JsonCodec.getInstance().load(node, TestClass.class); assertEquals(instance.getMetaDataInputStream(), instance2.getMetaDataInputStream()); Map<String, InputStream> streams = new HashMap(); streams.put(node.get("metaDataInputStream").asString(), mis); JsonNode node2 = JsonCodec.getInstance().parse(node.toString(), streams); assertEquals(node2.get("metaDataInputStream").asStream(), mis); JsonNode node3 = JsonCodec.getInstance().parse(node.toString(), streams); TestClass instance3 = JsonCodec.getInstance().load(node3, TestClass.class); assertEquals(instance.getInputStream(), instance3.getInputStream()); assertTrue( JsonCodec.getInstance() .getReferencedStreamCount(node, JsonCodec.getInstance().getSchema(TestClass.class)) .equals(1)); }
@Override public byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException { // Multiple possibilities... JsonNode n = currentNode(); if (n != null) { // binary node? byte[] data = n.getBinaryValue(); // (or TextNode, which can also convert automatically!) if (data != null) { return data; } // Or maybe byte[] as POJO? if (n.isPojo()) { Object ob = ((POJONode) n).getPojo(); if (ob instanceof byte[]) { return (byte[]) ob; } } } // otherwise return null to mark we have no binary content return null; }
@Override public String getText() { if (_closed) { return null; } // need to separate handling a bit... switch (_currToken) { case FIELD_NAME: return _nodeCursor.getCurrentName(); case VALUE_STRING: return currentNode().getTextValue(); case VALUE_NUMBER_INT: case VALUE_NUMBER_FLOAT: return String.valueOf(currentNode().getNumberValue()); case VALUE_EMBEDDED_OBJECT: JsonNode n = currentNode(); if (n != null && n.isBinary()) { // this will convert it to base64 return n.getValueAsText(); } } return (_currToken == null) ? null : _currToken.asString(); }
@Override public NumberType getNumberType() throws IOException, JsonParseException { JsonNode n = currentNumericNode(); return (n == null) ? null : n.getNumberType(); }
private void func_27328_a(JsonNode p_27328_1_, Writer p_27328_2_) throws IOException { boolean flag = true; switch (CompactJsonFormatter_JsonNodeType.field_27341_a[p_27328_1_.func_27218_a().ordinal()]) { case 1: // '\001' p_27328_2_.append('['); JsonNode jsonnode; for (Iterator iterator = p_27328_1_.func_27215_d().iterator(); iterator.hasNext(); func_27328_a(jsonnode, p_27328_2_)) { jsonnode = (JsonNode) iterator.next(); if (!flag) { p_27328_2_.append(','); } flag = false; } p_27328_2_.append(']'); break; case 2: // '\002' p_27328_2_.append('{'); JsonStringNode jsonstringnode; for (Iterator iterator1 = (new TreeSet(p_27328_1_.func_27214_c().keySet())).iterator(); iterator1.hasNext(); func_27328_a((JsonNode) p_27328_1_.func_27214_c().get(jsonstringnode), p_27328_2_)) { jsonstringnode = (JsonStringNode) iterator1.next(); if (!flag) { p_27328_2_.append(','); } flag = false; func_27328_a(((JsonNode) (jsonstringnode)), p_27328_2_); p_27328_2_.append(':'); } p_27328_2_.append('}'); break; case 3: // '\003' p_27328_2_ .append('"') .append((new JsonEscapedString(p_27328_1_.func_27216_b())).toString()) .append('"'); break; case 4: // '\004' p_27328_2_.append(p_27328_1_.func_27216_b()); break; case 5: // '\005' p_27328_2_.append("false"); break; case 6: // '\006' p_27328_2_.append("true"); break; case 7: // '\007' p_27328_2_.append("null"); break; default: throw new RuntimeException( (new StringBuilder()) .append("Coding failure in Argo: Attempt to format a JsonNode of unknown type [") .append(p_27328_1_.func_27218_a()) .append("];") .toString()); } }
public boolean func_27070_a(JsonNode par1JsonNode) { return JsonNodeType.OBJECT == par1JsonNode.getType(); }
public Map func_27071_b(JsonNode par1JsonNode) { return par1JsonNode.getFields(); }