package org.maltparser.parser.algorithm.planar3TLabelStrat;


import org.maltparser.core.exception.MaltChainedException;

import org.maltparser.parser.Algorithm;
import org.maltparser.parser.TransitionSystem;
import org.maltparser.parser.guide.OracleGuide;
import org.maltparser.parser.history.GuideUserHistory;

public class NivrePlanar3TLabelStratArcEagerFactory extends Planar3TLabelStratFactory {
	public NivrePlanar3TLabelStratArcEagerFactory(Algorithm algorithm) {
		super(algorithm);
	}
	
	public TransitionSystem makeTransitionSystem() throws MaltChainedException {
		if (manager.getConfigLogger().isInfoEnabled()) {
			manager.getConfigLogger().info("  Transition system    : Planar 3T Label Strategy Arc-Eager\n");
		}
		TransitionSystem ts = new Planar3TLabelStrat();
		ts.setPropagationManager(manager.getPropagationManager());
		return ts;
	}
	
	public OracleGuide makeOracleGuide(GuideUserHistory history) throws MaltChainedException {
		if (manager.getConfigLogger().isInfoEnabled()) {
			manager.getConfigLogger().info("  Oracle               : Planar 3T Label Strategy Arc-Eager\n");
		}
		return new Planar3TLabelStratArcEagerOracle(manager, history);
	}
}
