MorphicVectorFactory.java
package edu.udel.cis.vsl.tass.morph;
public class MorphicVectorFactory<T extends Morphic> extends
MorphicFactory<MorphicVector<T>> {
private MorphicFactoryIF<? super T> elementFactory;
public MorphicVectorFactory(MorphicFactoryIF<? super T> elementFactory) {
this.elementFactory = elementFactory;
}
public MorphicFactoryIF<? super T> elementFactory() {
return elementFactory;
}
public MorphicVector<T> newVector() {
return new MorphicVector<T>();
}
/** Returns a new vector with the given size, all elements null. */
public MorphicVector<T> newVector(int size) {
return new MorphicVector<T>(size);
}
public MorphicVector<T> newVector(MorphicVector<T> oldVector) {
return new MorphicVector<T>(oldVector);
}
@Override
protected void canonicalizeChildren(MorphicVector<T> vector) {
vector.canonicalizeChildren(elementFactory);
}
}