001 package calhoun.analysis.crf.io;
002
003 import java.util.Iterator;
004 import java.util.Map;
005
006 /** utility adapter class for creating an iterator of input components from an {@link InputSequenceComposite} iterator.
007 * */
008 public class IteratorAdapterInputComponent implements Iterator<Map<String, InputSequence<?>>> {
009
010 Iterator<? extends InputSequence<?>> parent;
011
012 /** constructs an iterator that separates out the input components of the parent iterator
013 * @param parent the iterator over composite input sequences
014 */
015 public IteratorAdapterInputComponent(Iterator<? extends InputSequence<?>> parent) {
016 this.parent = parent;
017 }
018
019 public boolean hasNext() {
020 return parent.hasNext();
021 }
022
023 public Map<String, InputSequence<?>> next() {
024 InputSequenceComposite seq = (InputSequenceComposite) parent.next();
025 return seq.getComponents();
026 }
027
028 public void remove() {
029 throw new UnsupportedOperationException();
030 }
031 }