package com.github.dtschust.zork.parser; import com.github.dtschust.zork.ZorkCondition; import com.github.dtschust.zork.parser.strategies.*; import com.github.dtschust.zork.objects.ZorkContainer; import com.github.dtschust.zork.objects.ZorkCreature; import com.github.dtschust.zork.objects.ZorkItem; import com.github.dtschust.zork.objects.ZorkRoom; /** * Inversion of control for Zork parse strategies */ public final class ParserIOC { private static final PropertyParseStrategy condition = new ZorkConditionParseStrategy(); private static final TriggerPropertyParseStrategy trigger = new ZorkTriggerParseStrategy(condition); private static final PropertyParseStrategy container = new ZorkContainerParseStrategy(trigger); private static final PropertyParseStrategy item = new ZorkItemParseStrategy(trigger); private static final PropertyParseStrategy room = new ZorkRoomParseStrategy(trigger); private static final PropertyParseStrategy creature = new ZorkCreatureParseStrategy(condition, trigger); private static final ZorkParser xmlParser = new ZorkXMLParser(creature, container, item, room); private ParserIOC() { } public static ZorkParser xmlParser() { return xmlParser; } }