package eu.wietsevenema.lang.oberon.interpreter.values;
import eu.wietsevenema.lang.oberon.interpreter.ValueReference;
public class ArrayValue extends Value {
private ValueReference[] values;
public ArrayValue(Value template, Integer size) {
this.values = new ValueReference[size.intValue()];
for (int i = 0; i < values.length; i++) {
values[i] = new ValueReference((Value) template.clone());
}
}
private ArrayValue(ValueReference[] values) {
this.values = values;
}
@Override
public boolean equals(Object o) {
// TODO Auto-generated method stub
return false;
}
@Override
public Object clone() {
int size = this.values.length;
ValueReference[] values = new ValueReference[size];
for (int i = 0; i < size; i++) {
values[i] = new ValueReference((Value) this.values[i].getValue().clone());
}
return new ArrayValue(values);
}
public ValueReference getReference(int index) {
return values[index];
}
@Override
public void init() {
//This value is initialised by design.
}
}