@Override public NavigationItem deserialize( JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject jsonObject = element.getAsJsonObject(); long identifier = BaseItemSerializer.identifierFromObject(jsonObject); NavigationItem item = new NavigationItem(identifier); BaseItemSerializer.deserializeFromObject(item, jsonObject); item.setGamesMustMatchAllTags( jsonObject.get(JsonConstants.PROPERTY_MUST_MATCH_ALL_TAGS).getAsBoolean()); item.setShowEligibleGames(jsonObject.get(JsonConstants.PROPERTY_SHOW_GAMES).getAsBoolean()); this.deserializeAssignedTags(item, jsonObject); return item; }
private void deserializeAssignedTags(NavigationItem item, JsonObject jsonObject) { JsonElement tagsElement = jsonObject.get(JsonConstants.PROPERTY_TAGS); if (tagsElement == null) return; JsonArray tagsArray = tagsElement.getAsJsonArray(); for (JsonElement jsonElement : tagsArray) { long tagIdentifier = jsonElement.getAsLong(); Tag tag = ArcadoidData.sharedInstance().getTagByIdentifier(tagIdentifier); if (tag != null) { item.getAssignedTags().add(tag); } } }