package org.jboss.tools.hibernate.runtime.common; import org.jboss.tools.hibernate.runtime.spi.IMappings; import org.jboss.tools.hibernate.runtime.spi.IPersistentClass; public abstract class AbstractMappingsFacade extends AbstractFacade implements IMappings { public AbstractMappingsFacade( IFacadeFactory facadeFactory, Object target) { super(facadeFactory, target); } @Override public void addClass(IPersistentClass persistentClass) { assert persistentClass instanceof IFacade; Util.invokeMethod( getTarget(), "addClass", new Class[] { getPersistentClassClass() }, new Object[] { getPersistentClassTarget(persistentClass) }); } private Object getPersistentClassTarget(IPersistentClass persistentClass) { return Util.invokeMethod( persistentClass, "getTarget", new Class[] {}, new Object[] {}); } protected Class<?> getPersistentClassClass() { return Util.getClass( getPersistentClassClassName(), getFacadeFactoryClassLoader()); } protected String getPersistentClassClassName() { return "org.hibernate.mapping.PersistentClass"; } }