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