package org.jboss.tools.hibernate.runtime.common;
import org.jboss.tools.hibernate.runtime.spi.ICfg2HbmTool;
import org.jboss.tools.hibernate.runtime.spi.IPersistentClass;
import org.jboss.tools.hibernate.runtime.spi.IProperty;
public abstract class AbstractCfg2HbmToolFacade
extends AbstractFacade
implements ICfg2HbmTool {
public AbstractCfg2HbmToolFacade(IFacadeFactory facadeFactory, Object target) {
super(facadeFactory, target);
}
private Class<?> getPersistentClassClass() {
return Util.getClass("org.hibernate.mapping.PersistentClass", getFacadeFactoryClassLoader());
}
private Class<?> getPropertyClass() {
return Util.getClass("org.hibernate.mapping.Property", getFacadeFactoryClassLoader());
}
private Object getTarget(Object object) {
return Util.invokeMethod(object, "getTarget", new Class[] {}, new Object[] {});
}
@Override
public String getTag(IPersistentClass persistentClass) {
return (String)Util.invokeMethod(
getTarget(),
"getTag",
new Class[] { getPersistentClassClass() },
new Object[] { getTarget(persistentClass) });
}
@Override
public String getTag(IProperty property) {
return (String)Util.invokeMethod(
getTarget(),
"getTag",
new Class[] { getPropertyClass() },
new Object[] { getTarget(property) });
}
}