package org.jboss.tools.hibernate.runtime.common;
import org.jboss.tools.hibernate.runtime.spi.ICollectionMetadata;
import org.jboss.tools.hibernate.runtime.spi.IType;
public abstract class AbstractCollectionMetadataFacade
extends AbstractFacade
implements ICollectionMetadata {
private IType elementType = null;
public AbstractCollectionMetadataFacade(
IFacadeFactory facadeFactory,
Object target) {
super(facadeFactory, target);
}
@Override
public IType getElementType() {
if (elementType == null) {
elementType = getFacadeFactory().createType(getTargetElementType());
}
return elementType;
}
private Object getTargetElementType() {
return Util.invokeMethod(getTarget(), "getElementType", new Class[] {}, new Object[] {});
}
}