package org.testory.proxy.proxer; import static org.testory.proxy.ProxyException.check; import java.lang.reflect.Modifier; import org.testory.proxy.Handler; import org.testory.proxy.Proxer; import org.testory.proxy.Typing; public class NonFinalProxer implements Proxer { private final Proxer proxer; private NonFinalProxer(Proxer proxer) { this.proxer = proxer; } public static Proxer nonFinal(Proxer proxer) { check(proxer != null); return new NonFinalProxer(proxer); } public Object proxy(Typing typing, Handler handler) { check(!Modifier.isFinal(typing.superclass.getModifiers())); return proxer.proxy(typing, handler); } }