001 package org.maltparser.core.propagation;
002
003 import java.util.ArrayList;
004
005 import org.maltparser.core.exception.MaltChainedException;
006 import org.maltparser.core.propagation.spec.PropagationSpec;
007 import org.maltparser.core.propagation.spec.PropagationSpecs;
008 import org.maltparser.core.symbol.SymbolTableHandler;
009 import org.maltparser.core.syntaxgraph.edge.Edge;
010
011 public class Propagations {
012 private ArrayList<Propagation> propagations;
013 private SymbolTableHandler symbolTables;
014
015 public Propagations(PropagationSpecs specs, SymbolTableHandler symbolTables) throws MaltChainedException {
016 setSymbolTables(symbolTables);
017 propagations = new ArrayList<Propagation>(specs.size());
018 for (PropagationSpec spec : specs) {
019 propagations.add(new Propagation(spec, symbolTables));
020 }
021 }
022
023 public void propagate(Edge e) throws MaltChainedException {
024 for (Propagation propagation : propagations) {
025 propagation.propagate(e);
026 }
027 }
028
029 public SymbolTableHandler getSymbolTables() {
030 return symbolTables;
031 }
032
033 public void setSymbolTables(SymbolTableHandler symbolTables) {
034 this.symbolTables = symbolTables;
035 }
036
037 public ArrayList<Propagation> getPropagations() {
038 return propagations;
039 }
040
041 @Override
042 public String toString() {
043 return "Propagations [propagations=" + propagations + "]";
044 }
045
046
047 }