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 }