Examples of CollectionParser


Examples of com.firefly.utils.json.parser.CollectionParser

              if(types2.length != 1)
                throw new JsonException("not support the " + method);
             
              Type elementType = types2[0];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new CollectionParser(elementType));
            } else if (Map.class.isAssignableFrom(type)) { // Map元信息构造
              Type[] types = method.getGenericParameterTypes();
              if(types.length != 1 || !(types[0] instanceof ParameterizedType))
                throw new JsonException("not support the " + method);
             
              ParameterizedType paramType = (ParameterizedType) types[0];
              Type[] types2 = paramType.getActualTypeArguments();
              if(types2.length != 2)
                throw new JsonException("not support the " + method);
             
              Type key = types2[0];
              if (!((key instanceof Class) && key == String.class))
                throw new JsonException("not support the " + method);
             
              Type elementType = types2[1];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new MapParser(elementType));
            } else { // 获取对象、枚举或者数组Parser
              parserMetaInfo.setType(type);
              parserMetaInfo.setParser(ParserStateMachine.getParser(type));
            }
            fieldSet.add(parserMetaInfo);
    }
   
    for(Field field : clazz.getFields()) { // public字段反序列化构造
      if(Modifier.isTransient(field.getModifiers()) || field.isAnnotationPresent(Transient.class) || Modifier.isStatic(field.getModifiers()))
        continue;
     
      field.setAccessible(true);
     
      ParserMetaInfo parserMetaInfo = new ParserMetaInfo();
            parserMetaInfo.setPropertyNameString(field.getName());
            parserMetaInfo.setPropertyInvoke(new FieldInvoke(field));
           
            Class<?> type = field.getType();
            if (Collection.class.isAssignableFrom(type)) {
              Type fieldType = field.getGenericType();
              if(!(fieldType instanceof ParameterizedType))
                throw new JsonException("not support the " + field);
             
              ParameterizedType paramType = (ParameterizedType)fieldType;
              Type[] types2 = paramType.getActualTypeArguments();
              if(types2.length != 1)
                throw new JsonException("not support the " + field);
             
              Type elementType = types2[0];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new CollectionParser(elementType));
            } else if (Map.class.isAssignableFrom(type)) { // Map元信息构造
              Type fieldType = field.getGenericType();
              if(!(fieldType instanceof ParameterizedType))
                throw new JsonException("not support the " + field);
             
View Full Code Here

Examples of com.firefly.utils.json.parser.CollectionParser

    ParserMetaInfo p = pp[0];
    Assert.assertThat(p.getType().getName(), is(ArrayList.class.getName()));
   
    Parser parser = p.getParser();
    if(parser instanceof CollectionParser) {
      CollectionParser colp = (CollectionParser) parser;
      p = colp.getElementMetaInfo();
      Assert.assertThat(p.getType().getName(), is(LinkedList.class.getName()));
    }
   
    parser = p.getParser();
    if(parser instanceof CollectionParser) {
      CollectionParser colp = (CollectionParser) parser;
      p = colp.getElementMetaInfo();
      Assert.assertThat(p.getType().getName(), is(SimpleObj.class.getName()));
    }
  }
View Full Code Here

Examples of com.firefly.utils.json.parser.CollectionParser

 
  public static void test(ParserMetaInfo p) {
    System.out.println(p.getType());
    Parser parser = p.getParser();
    if(parser instanceof CollectionParser) {
      CollectionParser colp = (CollectionParser) parser;
      test(colp.getElementMetaInfo());
    }
  }
View Full Code Here

Examples of net.hamnaberg.json.parser.CollectionParser

            }
        }
    }

    private static void parseAndDump(InputStream stream) throws IOException {
        Collection collection = new CollectionParser().parse(stream);
        System.err.println("Parsed Collection with href: " + collection.getHref());
        System.out.println(collection.toString());
    }
View Full Code Here

Examples of net.hamnaberg.json.parser.CollectionParser

    @Test
    public void canParseGeneratedTemplate() throws Exception {
        Template template = Template.create(Arrays.asList(Property.value("one", Optional.of("One"), Optional.<Value>empty())));
        StringWriter writer = new StringWriter();
        template.writeTo(writer);
        Template parsed = new CollectionParser().parseTemplate(writer.toString());
        assertEquals(template, parsed);
    }
View Full Code Here

Examples of net.hamnaberg.json.parser.CollectionParser

        List<Item> items = new ArrayList<Item>();
        items.add(Item.create(COLLECTION_URI.resolve("item/1"), Arrays.asList(Property.value("one", Optional.of("One"), ValueFactory.createOptionalValue(1))), Collections.<Link>emptyList()));

        Collection collection = Collection.builder(COLLECTION_URI).addItems(items).build();
        String generated = collection.toString();
        Collection parsed = new CollectionParser().parse(generated);
        assertEquals(collection.toString(), parsed.toString());
    }
View Full Code Here

Examples of org.mvel2.util.CollectionParser

    return execGraph(collectionGraph, egressType, ctx, factory);
  }

  private void parseGraph(boolean compile, Class type, ParserContext pCtx) {
    CollectionParser parser = new CollectionParser();

    if (type == null) {
      collectionGraph = ((List) parser.parseCollection(expr, start, offset, compile, pCtx)).get(0);
    }
    else {
      collectionGraph = ((List) parser.parseCollection(expr, start, offset, compile, type, pCtx)).get(0);
    }

    trailingStart = parser.getCursor() + 2;
    trailingOffset = offset - (trailingStart - start);

    if (this.egressType == null) this.egressType = collectionGraph.getClass();
  }
View Full Code Here

Examples of org.mvel2.util.CollectionParser

    return execGraph(collectionGraph, egressType, ctx, factory);
  }

  private void parseGraph(boolean compile, Class type, ParserContext pCtx) {
    CollectionParser parser = new CollectionParser();

    if (type == null) {
      collectionGraph = ((List) parser.parseCollection(expr, start, offset, compile, pCtx)).get(0);
    }
    else {
      collectionGraph = ((List) parser.parseCollection(expr, start, offset, compile, type, pCtx)).get(0);
    }

    trailingStart = parser.getCursor() + 2;
    trailingOffset = offset - (trailingStart - start);

    if (this.egressType == null) this.egressType = collectionGraph.getClass();
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.