MCPcopy Create free account
hub / github.com/atas76/openengine / parseDirective

Method parseDirective

src/main/java/org/ttn/parser/ParserUtil.java:246–287  ·  view source on GitHub ↗
(List<String> tokens)

Source from the content-addressed store, hash-verified

244 }
245
246 public static Directive parseDirective(List<String> tokens) throws ParserException {
247 final int tokensNumber = tokens.size();
248 checkMissingTokens(tokensNumber, 0, "':'");
249 if (!":".equals(tokens.get(0))) {
250 throw new ParserException("Directives must start with ':'");
251 }
252 checkMissingTokens(tokensNumber, 1, "directive");
253 MatchDataElement.DirectiveType directiveType = expectDirective(tokens.get(1));
254 switch(tokens.get(1)) {
255 case "break":
256 case "HT":
257 case "injury":
258 case "fair_play":
259 return new Directive(directiveType);
260 case "phase":
261 InPlayPhaseType phase = expectInPlayPhase(tokens.get(2));
262 checkMissingTokens(tokensNumber, 3, "team");
263 return new Directive(phase, tokens.get(3));
264 case "intention":
265 Intention intention = expectIntentionDirective(tokens.get(2));
266 return new Directive(intention);
267 case "set":
268 checkMissingTokens(tokensNumber, 2, "team");
269 checkMissingTokens(tokensNumber, 3, "':'");
270 expectToken(":", tokens.get(3));
271 checkMissingTokens(tokensNumber, 4, "set piece keyword");
272 return new Directive(directiveType, tokens.get(2),
273 Parser.setPieceMapping.get(tokens.get(4)));
274 case "substitution":
275 checkMissingTokens(tokensNumber, 2, "team");
276 checkMissingTokens(tokensNumber, 3, "':'");
277 expectToken(":", tokens.get(3));
278 checkMissingTokens(tokensNumber, 4, "tactical position");
279 return new Directive(directiveType, tokens.get(2) , parseTacticalPosition(tokens.subList(4, tokens.size())));
280 case "possessor":
281 checkMissingTokens(tokensNumber, 2, "tactical position");
282 return new Directive(directiveType, parseTacticalPosition(tokens.subList(2, tokens.size())));
283 default:
284 checkMissingTokens(tokensNumber, 2, "team");
285 return new Directive(directiveType, tokens.get(2));
286 }
287 }
288
289 public static void checkMissingTokens(int tokensNumber, int tokenIndex, String expectedToken) throws MissingTokenException {
290 if (tokenIndex > tokensNumber - 1) throw new MissingTokenException("Expected: " + expectedToken);

Callers 15

testAttackInPlayPhaseMethod · 0.95
testPenaltyKickChainMethod · 0.95
testThrowInChainMethod · 0.95
testCornerKickChainMethod · 0.95
testFreekickChainMethod · 0.95
testInjuryDirectiveMethod · 0.95

Calls 7

checkMissingTokensMethod · 0.95
expectDirectiveMethod · 0.95
expectInPlayPhaseMethod · 0.95
expectTokenMethod · 0.95
parseTacticalPositionMethod · 0.95
equalsMethod · 0.45

Tested by 15

testAttackInPlayPhaseMethod · 0.76
testPenaltyKickChainMethod · 0.76
testThrowInChainMethod · 0.76
testCornerKickChainMethod · 0.76
testFreekickChainMethod · 0.76
testInjuryDirectiveMethod · 0.76