Search in sources :

Example 21 with Category

use of com.codename1.rad.nodes.ActionNode.Category in project CodeRAD by shannah.

the class ResultParserTest method manualJSONTest.

private void manualJSONTest() throws Exception {
    String jsonData = "{\n" + "  \"colors\": [\n" + "    {\n" + "      \"color\": \"black\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [255,255,255,1],\n" + "        \"hex\": \"#000\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"white\",\n" + "      \"category\": \"value\",\n" + "      \"code\": {\n" + "        \"rgba\": [0,0,0,1],\n" + "        \"hex\": \"#FFF\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"red\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [255,0,0,1],\n" + "        \"hex\": \"#FF0\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"blue\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [0,0,255,1],\n" + "        \"hex\": \"#00F\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"yellow\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [255,255,0,1],\n" + "        \"hex\": \"#FF0\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"green\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"secondary\",\n" + "      \"code\": {\n" + "        \"rgba\": [0,255,0,1],\n" + "        \"hex\": \"#0F0\"\n" + "      }\n" + "    },\n" + "  ]\n" + "}";
    class Color extends BaseEntity {
    }
    Tag type = new Tag("type");
    Tag red = new Tag("red"), green = new Tag("green"), blue = new Tag("blue"), alpha = new Tag("alpha");
    EntityType colorType = entityTypeBuilder(Color.class).string(Thing.name).string(Product.category).string(type).Integer(red).Integer(green).Integer(blue).Integer(alpha).factory(cls -> {
        return new Color();
    }).build();
    class Colors extends EntityList<Color> {
    }
    EntityType.registerList(Colors.class, Color.class, cls -> {
        return new Colors();
    });
    Tag colors = new Tag("colors");
    class ColorSet extends BaseEntity {
    }
    EntityType colorsetType = entityTypeBuilder(ColorSet.class).list(Colors.class, colors).factory(cls -> {
        return new ColorSet();
    }).build();
    ResultParser parser = resultParser(ColorSet.class).property("colors", colors).entityType(Color.class).string("color", Thing.name).string("category", Product.category).string("type", type).Integer("code/rgba[0]", red).Integer("code/rgba[1]", green).Integer("code/rgba[2]", blue).Integer("code/rgba[3]", alpha);
    ColorSet colorSet = (ColorSet) parser.parseJSON(jsonData, new ColorSet());
    Colors theColors = (Colors) colorSet.get(colors);
    assertEqual(6, theColors.size());
    assertEqual(6, colorSet.getEntityList(colors).size());
    assertEqual("black", theColors.get(0).getText(Thing.name));
    assertEqual("hue", theColors.get(0).getText(Product.category));
    assertEqual("primary", theColors.get(0).getText(type));
    assertEqual(255, (int) theColors.get(0).getInt(red));
    assertEqual(255, (int) theColors.get(0).getInt(green));
    assertEqual(255, (int) theColors.get(0).getInt(blue));
    assertEqual(1, (int) theColors.get(0).getInt(alpha));
    assertEqual("green", theColors.get(5).getText(Thing.name));
    assertEqual(0, (int) theColors.get(5).getInt(red));
    assertEqual(255, (int) theColors.get(5).getInt(green));
    assertEqual(0, (int) theColors.get(5).getInt(blue));
    assertEqual(1, (int) theColors.get(5).getInt(alpha));
    class CodeParser implements PropertyParserCallback {

        private int index;

        CodeParser(int index) {
            this.index = index;
        }

        @Override
        public Object parse(Object codeMap) {
            if (!(codeMap instanceof Map)) {
                return 0;
            }
            Map m = (Map) codeMap;
            List rgba = (List) m.get("rgba");
            if (rgba == null) {
                return 0;
            }
            if (index < 0 || index >= rgba.size()) {
                return 0;
            }
            return rgba.get(index);
        }
    }
    parser = resultParser(ColorSet.class).property("colors", colors).entityType(Color.class).string("color", Thing.name).string("category", Product.category).string("type", type).property("code", red, new CodeParser(0)).property("code", green, new CodeParser(1)).property("code", blue, new CodeParser(2)).property("code", alpha, new CodeParser(3));
    colorSet = (ColorSet) parser.parseJSON(jsonData, new ColorSet());
    theColors = (Colors) colorSet.get(colors);
    assertEqual(6, theColors.size());
    assertEqual(6, colorSet.getEntityList(colors).size());
    assertEqual("black", theColors.get(0).getText(Thing.name));
    assertEqual("hue", theColors.get(0).getText(Product.category));
    assertEqual("primary", theColors.get(0).getText(type));
    assertEqual(255, (int) theColors.get(0).getInt(red));
    assertEqual(255, (int) theColors.get(0).getInt(green));
    assertEqual(255, (int) theColors.get(0).getInt(blue));
    assertEqual(1, (int) theColors.get(0).getInt(alpha));
    assertEqual("green", theColors.get(5).getText(Thing.name));
    assertEqual(0, (int) theColors.get(5).getInt(red));
    assertEqual(255, (int) theColors.get(5).getInt(green));
    assertEqual(0, (int) theColors.get(5).getInt(blue));
    assertEqual(1, (int) theColors.get(5).getInt(alpha));
}
Also used : AbstractTest(com.codename1.testing.AbstractTest) Person(com.codename1.rad.schemas.Person) SimpleDateFormat(com.codename1.l10n.SimpleDateFormat) BaseEntity.entityTypeBuilder(com.codename1.rad.models.BaseEntity.entityTypeBuilder) Element(com.codename1.xml.Element) Log(com.codename1.io.Log) ParseException(com.codename1.l10n.ParseException) com.codename1.rad.models(com.codename1.rad.models) PropertyParserCallback(com.codename1.rad.io.ResultParser.PropertyParserCallback) XMLParser(com.codename1.xml.XMLParser) List(java.util.List) ResultParser.resultParser(com.codename1.rad.io.ResultParser.resultParser) StringReader(java.io.StringReader) ParsingService(com.codename1.rad.io.ParsingService) Product(com.codename1.rad.schemas.Product) Map(java.util.Map) Thing(com.codename1.rad.schemas.Thing) Result(com.codename1.rad.processing.Result) ResultParser(com.codename1.rad.io.ResultParser) Entity(com.codename1.rad.models.Entity) PropertyParserCallback(com.codename1.rad.io.ResultParser.PropertyParserCallback) List(java.util.List) ResultParser(com.codename1.rad.io.ResultParser) Map(java.util.Map)

Example 22 with Category

use of com.codename1.rad.nodes.ActionNode.Category in project CodeRAD by shannah.

the class ResultParserTest method parserServiceTest.

private void parserServiceTest() throws Exception {
    String jsonData = "{\n" + "  \"colors\": [\n" + "    {\n" + "      \"color\": \"black\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [255,255,255,1],\n" + "        \"hex\": \"#000\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"white\",\n" + "      \"category\": \"value\",\n" + "      \"code\": {\n" + "        \"rgba\": [0,0,0,1],\n" + "        \"hex\": \"#FFF\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"red\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [255,0,0,1],\n" + "        \"hex\": \"#FF0\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"blue\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [0,0,255,1],\n" + "        \"hex\": \"#00F\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"yellow\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"primary\",\n" + "      \"code\": {\n" + "        \"rgba\": [255,255,0,1],\n" + "        \"hex\": \"#FF0\"\n" + "      }\n" + "    },\n" + "    {\n" + "      \"color\": \"green\",\n" + "      \"category\": \"hue\",\n" + "      \"type\": \"secondary\",\n" + "      \"code\": {\n" + "        \"rgba\": [0,255,0,1],\n" + "        \"hex\": \"#0F0\"\n" + "      }\n" + "    },\n" + "  ]\n" + "}";
    class Color extends BaseEntity {
    }
    Tag type = new Tag("type");
    Tag red = new Tag("red"), green = new Tag("green"), blue = new Tag("blue"), alpha = new Tag("alpha");
    EntityType colorType = entityTypeBuilder(Color.class).string(Thing.name).string(Product.category).string(type).Integer(red).Integer(green).Integer(blue).Integer(alpha).factory(cls -> {
        return new Color();
    }).build();
    class Colors extends EntityList<Color> {
    }
    EntityType.registerList(Colors.class, Color.class, cls -> {
        return new Colors();
    });
    Tag colors = new Tag("colors");
    class ColorSet extends BaseEntity {
    }
    EntityType colorsetType = entityTypeBuilder(ColorSet.class).list(Colors.class, colors).factory(cls -> {
        return new ColorSet();
    }).build();
    ResultParser parser = resultParser(ColorSet.class).property("colors", colors).entityType(Color.class).string("color", Thing.name).string("category", Product.category).string("type", type).Integer("code/rgba[0]", red).Integer("code/rgba[1]", green).Integer("code/rgba[2]", blue).Integer("code/rgba[3]", alpha);
    ParsingService parserService = new ParsingService();
    Throwable[] errors = new Throwable[1];
    parserService.parseJSON(jsonData, parser, new ColorSet()).ready(colorSet -> {
        Colors theColors = (Colors) colorSet.get(colors);
        assertEqual(6, theColors.size());
        assertEqual(6, colorSet.getEntityList(colors).size());
        assertEqual("black", theColors.get(0).getText(Thing.name));
        assertEqual("hue", theColors.get(0).getText(Product.category));
        assertEqual("primary", theColors.get(0).getText(type));
        assertEqual(255, (int) theColors.get(0).getInt(red));
        assertEqual(255, (int) theColors.get(0).getInt(green));
        assertEqual(255, (int) theColors.get(0).getInt(blue));
        assertEqual(1, (int) theColors.get(0).getInt(alpha));
        assertEqual("green", theColors.get(5).getText(Thing.name));
        assertEqual(0, (int) theColors.get(5).getInt(red));
        assertEqual(255, (int) theColors.get(5).getInt(green));
        assertEqual(0, (int) theColors.get(5).getInt(blue));
        assertEqual(1, (int) theColors.get(5).getInt(alpha));
        System.out.println("Finished ready callback");
    }).except(err -> {
        errors[0] = err;
    }).await();
    System.out.println("Finished await");
    if (errors[0] != null) {
        if (errors[0] instanceof RuntimeException) {
            throw (RuntimeException) errors[0];
        } else {
            throw (Exception) errors[0];
        }
    }
    class CodeParser implements PropertyParserCallback {

        private int index;

        CodeParser(int index) {
            this.index = index;
        }

        @Override
        public Object parse(Object codeMap) {
            if (!(codeMap instanceof Map)) {
                return 0;
            }
            Map m = (Map) codeMap;
            List rgba = (List) m.get("rgba");
            if (rgba == null) {
                return 0;
            }
            if (index < 0 || index >= rgba.size()) {
                return 0;
            }
            return rgba.get(index);
        }
    }
    parser = resultParser(ColorSet.class).property("colors", colors).entityType(Color.class).string("color", Thing.name).string("category", Product.category).string("type", type).property("code", red, new CodeParser(0)).property("code", green, new CodeParser(1)).property("code", blue, new CodeParser(2)).property("code", alpha, new CodeParser(3));
    parserService.parseJSON(jsonData, parser, new ColorSet()).ready(colorSet -> {
        Colors theColors = (Colors) colorSet.get(colors);
        assertEqual(6, theColors.size());
        assertEqual(6, colorSet.getEntityList(colors).size());
        assertEqual("black", theColors.get(0).getText(Thing.name));
        assertEqual("hue", theColors.get(0).getText(Product.category));
        assertEqual("primary", theColors.get(0).getText(type));
        assertEqual(255, (int) theColors.get(0).getInt(red));
        assertEqual(255, (int) theColors.get(0).getInt(green));
        assertEqual(255, (int) theColors.get(0).getInt(blue));
        assertEqual(1, (int) theColors.get(0).getInt(alpha));
        assertEqual("green", theColors.get(5).getText(Thing.name));
        assertEqual(0, (int) theColors.get(5).getInt(red));
        assertEqual(255, (int) theColors.get(5).getInt(green));
        assertEqual(0, (int) theColors.get(5).getInt(blue));
        assertEqual(1, (int) theColors.get(5).getInt(alpha));
        System.out.println("Finished ready callback");
    }).except(err -> {
        errors[0] = err;
    }).await();
    System.out.println("Finished await");
    if (errors[0] != null) {
        if (errors[0] instanceof RuntimeException) {
            throw (RuntimeException) errors[0];
        } else {
            throw (Exception) errors[0];
        }
    }
    parserService.stop();
}
Also used : AbstractTest(com.codename1.testing.AbstractTest) Person(com.codename1.rad.schemas.Person) SimpleDateFormat(com.codename1.l10n.SimpleDateFormat) BaseEntity.entityTypeBuilder(com.codename1.rad.models.BaseEntity.entityTypeBuilder) Element(com.codename1.xml.Element) Log(com.codename1.io.Log) ParseException(com.codename1.l10n.ParseException) com.codename1.rad.models(com.codename1.rad.models) PropertyParserCallback(com.codename1.rad.io.ResultParser.PropertyParserCallback) XMLParser(com.codename1.xml.XMLParser) List(java.util.List) ResultParser.resultParser(com.codename1.rad.io.ResultParser.resultParser) StringReader(java.io.StringReader) ParsingService(com.codename1.rad.io.ParsingService) Product(com.codename1.rad.schemas.Product) Map(java.util.Map) Thing(com.codename1.rad.schemas.Thing) Result(com.codename1.rad.processing.Result) ResultParser(com.codename1.rad.io.ResultParser) Entity(com.codename1.rad.models.Entity) PropertyParserCallback(com.codename1.rad.io.ResultParser.PropertyParserCallback) ParsingService(com.codename1.rad.io.ParsingService) ParseException(com.codename1.l10n.ParseException) List(java.util.List) ResultParser(com.codename1.rad.io.ResultParser) Map(java.util.Map)

Aggregations

IOException (java.io.IOException)8 Paint (android.graphics.Paint)5 PushAction (com.codename1.push.PushAction)4 PushActionCategory (com.codename1.push.PushActionCategory)4 FileInputStream (java.io.FileInputStream)4 InputStream (java.io.InputStream)4 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)3 RemoteException (android.os.RemoteException)3 BufferedInputStream (com.codename1.io.BufferedInputStream)3 MediaException (com.codename1.media.AsyncMedia.MediaException)3 Result (com.codename1.rad.processing.Result)3 Element (com.codename1.xml.Element)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)3 URISyntaxException (java.net.URISyntaxException)3 ParseException (java.text.ParseException)3 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)3 JSONException (org.json.JSONException)3 SAXException (org.xml.sax.SAXException)3 Element (android.renderscript.Element)2 ConnectionRequest (com.codename1.io.ConnectionRequest)2