/** output-wrapper can also be an array of strings that will be concatenated together. */ @Override public void apply(JsonArray outputWrapperParts, Config.Builder builder) { StringBuilder outputWrapper = new StringBuilder(); for (JsonElement item : outputWrapperParts) { outputWrapper.append(GsonUtil.stringOrNull(item)); } apply(outputWrapper.toString(), builder); }
@Override public void apply(JsonArray functions, Config.Builder builder) { for (JsonElement item : functions) { String function = GsonUtil.stringOrNull(item); if (function != null) { apply(function, builder); } } }
@Override public void apply(JsonArray properties, Config.Builder builder) { for (JsonElement item : properties) { String property = GsonUtil.stringOrNull(item); if (property != null) { apply(property, builder); } } }
@Override public void apply(JsonArray inputs, Config.Builder builder) { for (JsonElement item : inputs) { String define = GsonUtil.stringOrNull(item); if (define != null) { apply(define, builder); } } }
@Override public void apply(JsonArray paths, Config.Builder builder) { for (JsonElement item : paths) { String path = GsonUtil.stringOrNull(item); if (path != null) { apply(path, builder); } } }
@Override public void apply(JsonArray externs, Config.Builder builder) { for (JsonElement item : externs) { String extern = GsonUtil.stringOrNull(item); if (extern != null) { apply(extern, builder); } } }
@Override public void apply(JsonArray idGenerators, Config.Builder builder) { ImmutableSet.Builder<String> idGeneratorsBuilder = ImmutableSet.builder(); for (JsonElement item : idGenerators) { String idGenerator = GsonUtil.stringOrNull(item); if (idGenerator != null) { idGeneratorsBuilder.add(idGenerator); } } builder.setIdGenerators(idGeneratorsBuilder.build()); }
@Override public void apply(JsonArray types, Config.Builder builder) { ImmutableSet.Builder<String> typesBuilder = ImmutableSet.builder(); for (JsonElement item : types) { String type = GsonUtil.stringOrNull(item); if (type != null) { typesBuilder.add(type); } } builder.setStripTypePrefixes(typesBuilder.build()); }
@Override public void apply(JsonArray suffixes, Config.Builder builder) { ImmutableSet.Builder<String> suffixesBuilder = ImmutableSet.builder(); for (JsonElement item : suffixes) { String suffix = GsonUtil.stringOrNull(item); if (suffix != null) { suffixesBuilder.add(suffix); } } builder.setStripNameSuffixes(suffixesBuilder.build()); }
@Override public void apply(JsonObject obj, Config.Builder builder) { Map<String, CheckLevel> groups = Maps.newHashMap(); for (Map.Entry<String, JsonElement> entry : obj.entrySet()) { String checkLevelString = GsonUtil.stringOrNull(entry.getValue()); if (checkLevelString == null) { continue; } CheckLevel checkLevel = CheckLevel.valueOf(checkLevelString.toUpperCase()); groups.put(entry.getKey(), checkLevel); } builder.setCheckLevelsForDiagnosticGroups(groups); }
@Test @Ignore public void testSerialization() { // setup: final String output = "\"2011-01-03T10:52:32.587+01:00\""; final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+01:00")); calendar.set(Calendar.YEAR, 2011); calendar.set(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 3); calendar.set(Calendar.HOUR_OF_DAY, 10); calendar.set(Calendar.MINUTE, 52); calendar.set(Calendar.SECOND, 32); calendar.set(Calendar.MILLISECOND, 587); // exercise: final String json = GsonUtil.serialize(calendar.getTime()); // verify: assertEquals(output, json); }
@Test public void testDeserialization() { // setup: final String input = "\"2011-01-03T10:52:32.587+01:00\""; final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+01:00")); // exercise: final Date date = GsonUtil.deserialize(input, Date.class); calendar.setTime(date); // verify: assertEquals(2011, calendar.get(Calendar.YEAR)); assertEquals(0, calendar.get(Calendar.MONTH)); assertEquals(3, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(10, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(52, calendar.get(Calendar.MINUTE)); assertEquals(32, calendar.get(Calendar.SECOND)); assertEquals(587, calendar.get(Calendar.MILLISECOND)); assertEquals(3600 * 1000, calendar.get(Calendar.ZONE_OFFSET)); }