001 package org.broadinstitute.genee.matrix;
002
003 import java.util.Collection;
004 import java.util.Comparator;
005
006 /**
007 *
008 * A collection of values of the same type.
009 *
010 */
011 public interface Vector {
012 /**
013 * Returns the most specific superclass for all the values in this vector.
014 *
015 * @return the common ancestor class of the object values in this instance
016 */
017 public Class<?> getColumnClass();
018
019 /**
020 * Returns the comparator used to compare values in this vector.
021 *
022 * @return the comparator
023 */
024 public Comparator<Object> getComparator();
025
026 /**
027 * Returns the name of this vector.
028 *
029 * @return the name
030 */
031 public String getName();
032
033 /**
034 * Returns a collection of all property keys in this vector.
035 *
036 * @return the collection of keys
037 */
038 public Collection<Object> getPropertyKeys();
039
040 /**
041 * Gets the value for the specified key.
042 *
043 * @param key
044 * the key
045 * @return the value
046 */
047 public Object getProperty(Object key);
048
049 /**
050 * Returns the value at the specified index.
051 *
052 * @param index
053 * the index
054 * @return the value.
055 */
056 public Object getValue(int index);
057
058 /**
059 * Sets the most specific superclass for all the values in this vector.
060 *
061 * @param columnClass
062 * the common ancestor class of the object values in this
063 * instance
064 */
065 public void setColumnClass(Class<?> columnClass);
066
067 /**
068 * Sets the comparator used to compare values in this vector.
069 *
070 * @param comparator
071 * the comparator
072 */
073 public void setComparator(Comparator<Object> comparator);
074
075 /**
076 * Sets the property for the specified key.
077 *
078 * @param key
079 * the key
080 * @param value
081 * the value
082 */
083 public void setProperty(Object key, Object value);
084
085 /**
086 * Sets the value at the specified index.
087 *
088 * @param index
089 * the index
090 * @param value
091 * the value
092 */
093 public void setValue(int index, Object value);
094
095 /**
096 * Returns the number of elements in this vector.
097 *
098 * @return the size.
099 */
100 public int size();
101 }