MorphicArrayFactory.java

package edu.udel.cis.vsl.tass.morph;

public class MorphicArrayFactory<T extends Morphic> extends
		MorphicFactory<MorphicArray<T>> {

	private MorphicFactoryIF<? super T> elementFactory;

	public MorphicArrayFactory(MorphicFactoryIF<? super T> elementFactory) {
		this.elementFactory = elementFactory;
	}

	public MorphicArray<T> newArray(int length) {
		return new MorphicArray<T>(length);
	}

	public MorphicArray<T> newArray(MorphicArray<T> oldArray) {
		return new MorphicArray<T>(oldArray);
	}

	public MorphicFactoryIF<? super T> elementFactory() {
		return elementFactory;
	}

	@Override
	protected void canonicalizeChildren(MorphicArray<T> component) {
		component.canonicalizeChildren(elementFactory);
	}

}