private void extractData(GameData data) { if (data instanceof Action) { for (GameData gameData : ((Action) data).getData()) { flatData.add(gameData); extractData(gameData); } } }
private void readData(GameData gameData) { if (gameData instanceof TagChange) { tagChange.read((TagChange) gameData); } if (gameData instanceof Action) { for (GameData data : ((Action) gameData).getData()) { readData(data); } } } }
public static void handle(String timestamp, String data, ParserState state) throws Exception { data = data.trim(); Matcher match = Regexes.SendChoicesChoicetypeRegex.matcher(data); if (match.matches()) { String id = match.group(1); String rawType = match.group(2); int type = ChoiceType.parseEnum(rawType); SendChoices sendChoices = new SendChoices(timestamp, new ArrayList<Choice>(), Integer.parseInt(id), type); state.setSendChoices(sendChoices); if (state.getNode().getType().isAssignableFrom(Game.class)) ((Game) state.getNode().getObject()).getData().add(sendChoices); else if (state.getNode().getType().isAssignableFrom(Action.class)) ((Action) state.getNode().getObject()).getData().add(sendChoices); else throw new Exception("Invalid node " + state.getNode().getType()); return; } match = Regexes.SendChoicesEntitiesRegex.matcher(data); if (match.matches()) { int index = Helper.parseEntity(match.group(1), state); int id = Helper.parseEntity(match.group(2), state); Choice choice = new Choice(id, index); state.getSendChoices().getChoices().add(choice); } }
((Action) state.getNode().getObject()).getData().add(cEntities);
((Action) state.getNode().getObject()).getData().add(state.getChoices());
((Action) state.getNode().getObject()).getData().add(action); ((Action) state.getNode().getObject()).getData().add(action); ((Action) state.getNode().getObject()).getData().add(action); ((Action) state.getNode().getObject()).getData().add(action); ((Action) state.getNode().getObject()).getData().add(action); ((Action) state.getNode().getObject()).getData().add(action); ((Action) state.getNode().getObject()).getData().add(metaData); ((Action) state.getNode().getObject()).getData().add(showEntity); ((Action) state.getNode().getObject()).getData().add(changeEntity); ((Action) state.getNode().getObject()).getData().add(hideEntity); ((Action) state.getNode().getObject()).getData().add(fullEntity); ((Action) state.getNode().getObject()).getData().add(tagChange);