29 lines
1.3 KiB
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;
|
|
}
|
|
}
|