    001    package calhoun.analysis.crf.io;
    002
    003    import java.util.Collection;
    004
    005    import calhoun.util.Assert;
    006
    007    /** an input sequence where the elements of the sequence are integer values. */
    008    public class InputSequenceInt implements InputSequence<Integer> {
    009            int[] data;
    010
    011            /** default constructor */
    012            public InputSequenceInt() { }
    013
    014            /** creates an input sequence using data from this int array
    015             * @param a an int array containing the input sequence */
    016            public InputSequenceInt(int[] a) {
    017                    data = a;
    018            }
    019
    020            /** gets the int array containing the data for this sequence.
    021             * @return the int array containing the data for this sequence
    022             */
    023            public int[] getData() {
    024                    return data;
    025            }
    026
    027            public Integer getX(int ix) {
    028                    return data[ix];
    029            }
    030
    031            public int length() {
    032                    return data == null ? 0 : data.length;
    033            }
    034
    035            public InputSequence<?> getComponent(String name) {
    036                    throw new UnsupportedOperationException();
    037            }
    038
    039            public Collection<String> listComponents() {
    040                    throw new UnsupportedOperationException();
    041            }
    042
    043            public InputSequence<Integer> subSequence(int start, int end) {
    044                    Assert.a(start >= 1);
    045                    Assert.a(end <= this.length());
    046                    Assert.a(start <= end);
    047                    int[] newdata = new int[end-start+1];
    048                    for (int j=0; j<(end-start+1); j++) {
    049                            newdata[j] = data[j+start-1];
    050                    }
    051                    InputSequenceInt B = new InputSequenceInt(newdata);
    052                    return B;
    053            }
    054    }