This repository has been archived on 2022-12-21. You can view files and clone it, but cannot push or open issues or pull requests.
sdm03/src/main/java/com/github/dtschust/zork/parser/ParserIOC.java

29 lines
1.3 KiB
Java

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