package org.jboss.tools.hibernate.runtime.common; import java.util.ArrayList; import org.jboss.tools.hibernate.runtime.spi.IHQLQueryPlan; import org.jboss.tools.hibernate.runtime.spi.IQueryTranslator; public abstract class AbstractHQLQueryPlanFacade extends AbstractFacade implements IHQLQueryPlan { protected IQueryTranslator[] translators = null; public AbstractHQLQueryPlanFacade( IFacadeFactory facadeFactory, Object target) { super(facadeFactory, target); } @Override public IQueryTranslator[] getTranslators() { if (translators == null) { initializeTranslators(); } return translators; } protected void initializeTranslators() { Object[] targetTranslators = (Object[])Util.invokeMethod( getTarget(), "getTranslators", new Class[] {}, new Object[] {}); ArrayList<IQueryTranslator> destination = new ArrayList<IQueryTranslator>(targetTranslators.length); for (Object translator : targetTranslators) { destination.add(getFacadeFactory().createQueryTranslator(translator)); } translators = destination.toArray( new IQueryTranslator[targetTranslators.length]); } }