00001
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 package gov.lanl.isr.sensix.sensing;
00036
00037 import java.util.*;
00038 import gov.lanl.isr.sensix.*;
00039
00040
00041 public class CollectionImpl extends CollectionPOA
00042 {
00043 protected Sensory sensory;
00044 protected ArrayList<Data> data;
00045
00046 private SensoryImpl del;
00047
00048
00049 public CollectionImpl(byte l, Sensory s) {
00050 Functor[] array = new Functor[1];
00051 array[0] = s;
00052 del = new SensoryImpl(l, s.sensor(), array);
00053 sensory = s;
00054 data = new ArrayList<Data>();
00055 }
00056
00057 public CollectionImpl(Sensory s) {
00058 Functor[] array = new Functor[1];
00059 array[0] = s;
00060 del = new SensoryImpl(array);
00061 sensory = s;
00062 data = new ArrayList<Data>();
00063 }
00064
00065 public CollectionImpl(byte l, Sensory s, int seq) {
00066 Functor[] array = new Functor[1];
00067 array[0] = s;
00068 del = new SensoryImpl(l, s.sensor(), array, seq);
00069 sensory = s;
00070 data = new ArrayList<Data>();
00071 }
00072
00073
00074 public Sensory sense() {
00075 return sensory;
00076 }
00077
00078 public void sense(Sensory s) {
00079 sensory = s;
00080 }
00081
00082 public byte sensor() {
00083 return sensory.sensor();
00084 }
00085
00086 public long timeused() {
00087 long max = 0;
00088 if (sensory.timeused() > max)
00089 max = sensory.timeused();
00090 return max;
00091 }
00092
00093 public void timeused(long t) {}
00094
00095 public double energyused() {
00096 double sum = 0.0;
00097 sum += sensory.energyused();
00098 return sum;
00099 }
00100
00101 public void energyused(double e) {}
00102
00103 public byte priority() {
00104 return sensory.priority();
00105 }
00106
00107 public void priority(byte p) {
00108 sensory.priority(p);
00109 }
00110
00111 public Data[] results() {
00112 Data[] ds = new Data[data.size()];
00113 ds = data.toArray(ds);
00114 if (ds == null)
00115 ds = new Data[0];
00116 return ds;
00117 }
00118
00119 public void results(Data[] d) {
00120 if (d != null) {
00121 for (int i = 0; i < d.length; i++)
00122 data.add(d[i]);
00123 }
00124 }
00125
00126 public FunctorError[] errors() {
00127 if (sensory.errors() == null)
00128 return new FunctorError[0];
00129 int num = 0;
00130 num += sensory.errors().length;
00131 FunctorError[] e = new FunctorError[num];
00132 System.arraycopy(sensory.errors(), 0, e, 0, e.length);
00133 return e;
00134 }
00135
00136 public void errors(FunctorError[] e) {}
00137
00138
00139
00140
00141
00142 public String asString() {
00143 return del.asString();
00144 }
00145
00146 public byte identifier() {
00147 return del.identifier();
00148 }
00149
00150 public int sequencer() {
00151 return del.sequencer();
00152 }
00153
00154 public byte level() {
00155 return del.level();
00156 }
00157
00158 public Functor[] subfunctors() {
00159 return del.subfunctors();
00160 }
00161
00162 public void subfunctors(Functor[] fs) {
00163 del.subfunctors(fs);
00164 }
00165 }