From 02da43ad0305817efb487530aff08430b6461950 Mon Sep 17 00:00:00 2001 From: Koen Aers Date: Tue, 27 Feb 2024 15:56:25 +0100 Subject: [PATCH] HBX-2733: Create Interface for Cfg2HbmWrapper - Use newly created 'Cfg2HbmToolWrapperFactory' in method 'org.hibernate.tool.orm.jbt.wrp.WrapperFactory#createCfg2HbmWrapper()' - Remove unneeded factory class 'org.hibernate.tool.orm.jbt.wrp.Cfg2HbmToolWrapperFactory' Signed-off-by: Koen Aers --- .../jbt/wrp/Cfg2HbmToolWrapperFactory.java | 74 ------------------- .../tool/orm/jbt/wrp/WrapperFactory.java | 1 + 2 files changed, 1 insertion(+), 74 deletions(-) delete mode 100644 jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/Cfg2HbmToolWrapperFactory.java diff --git a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/Cfg2HbmToolWrapperFactory.java b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/Cfg2HbmToolWrapperFactory.java deleted file mode 100644 index 9241dacbde..0000000000 --- a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/Cfg2HbmToolWrapperFactory.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.hibernate.tool.orm.jbt.wrp; - -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; - -import org.hibernate.mapping.PersistentClass; -import org.hibernate.mapping.Property; -import org.hibernate.mapping.SimpleValue; -import org.hibernate.tool.internal.export.hbm.Cfg2HbmTool; -import org.hibernate.tool.internal.export.hbm.HBMTagForValueVisitor; - -public class Cfg2HbmToolWrapperFactory { - - public static Cfg2HbmToolWrapper createCfg2HbmToolWrapper() { - return (Cfg2HbmToolWrapper)Proxy.newProxyInstance( - Cfg2HbmToolWrapperFactory.class.getClassLoader(), - new Class[] { Cfg2HbmToolWrapper.class }, - new Cfg2HbmToolInvocationHandler(new Cfg2HbmTool())); - } - - static interface Cfg2HbmToolWrapper extends Wrapper { - @Override Cfg2HbmTool getWrappedObject(); - default String getTag(PersistentClass pc) { - return getWrappedObject().getTag(pc); - } - default String getTag(Property p) { - if (p instanceof Wrapper) { - p = (Property)((Wrapper)p).getWrappedObject(); - } - PersistentClass persistentClass = p.getPersistentClass(); - if(persistentClass!=null) { - Property v = persistentClass.getVersion(); - if (v instanceof Wrapper) { - v = (Property)((Wrapper)v).getWrappedObject(); - } - if(v==p) { - String typeName = ((SimpleValue)p.getValue()).getTypeName(); - if("timestamp".equals(typeName) || "dbtimestamp".equals(typeName)) { - return "timestamp"; - } else { - return "version"; - } - } - } - String toolTag = (String) p.getValue().accept(HBMTagForValueVisitor.INSTANCE); - if ("component".equals(toolTag) && "embedded".equals(p.getPropertyAccessorName())){ - toolTag = "properties"; - } - return toolTag; - } - } - - private static class Cfg2HbmToolInvocationHandler implements InvocationHandler, Cfg2HbmToolWrapper { - - private Cfg2HbmTool delegate = null; - - public Cfg2HbmToolInvocationHandler(Cfg2HbmTool cfg2HbmTool) { - delegate = cfg2HbmTool; - } - - @Override - public Cfg2HbmTool getWrappedObject() { - return delegate; - } - - @Override - public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - return method.invoke(this, args); - } - - } - -} diff --git a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/WrapperFactory.java b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/WrapperFactory.java index 73c09ae447..0833a58b95 100644 --- a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/WrapperFactory.java +++ b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/WrapperFactory.java @@ -30,6 +30,7 @@ import org.hibernate.tool.internal.reveng.strategy.OverrideRepository; import org.hibernate.tool.internal.reveng.strategy.TableFilter; import org.hibernate.tool.orm.jbt.internal.factory.ArtifactCollectorWrapperFactory; +import org.hibernate.tool.orm.jbt.internal.factory.Cfg2HbmToolWrapperFactory; import org.hibernate.tool.orm.jbt.util.DummyMetadataBuildingContext; import org.hibernate.tool.orm.jbt.util.JpaConfiguration; import org.hibernate.tool.orm.jbt.util.MetadataHelper;