private void addInterfaceIfNeeded(Class interfaceClass) { if (implementsInterface(interfaceClass)) return; _classFab.addInterface(interfaceClass); _addedInterfaces.add(interfaceClass); }
private void addInterfaceIfNeeded(Class interfaceClass) { if (implementsInterface(interfaceClass)) return; _classFab.addInterface(interfaceClass); _addedInterfaces.add(interfaceClass); }
/** @since 1.1 */ private void addSerializable(String pointId) { _classFab.addInterface(Serializable.class); BodyBuilder bb = new BodyBuilder(); bb.add( "return {0}.getServiceSerializationSupport().getServiceTokenForService(\"{1}\");", ServiceSerializationHelper.class.getName(), pointId); MethodSignature sig = new MethodSignature(Object.class, "writeReplace", null, null); _classFab.addMethod(Modifier.PRIVATE, sig, bb.toString()); }
ClassFab generateClassFab(CompiledExpression compiled) throws Exception { if (compiled.getGeneratedClass() != null) return compiled.getGeneratedClass(); ClassFab classFab = _classFactory.newClass(ClassFabUtils.generateClassName(compiled.getExpression().getClass()), Object.class); classFab.addInterface(ExpressionAccessor.class); compiled.setGeneratedClass(classFab); return classFab; }
ClassFab generateClassFab(CompiledExpression compiled) throws Exception { if (compiled.getGeneratedClass() != null) return compiled.getGeneratedClass(); ClassFab classFab = _classFactory.newClass(ClassFabUtils.generateClassName(compiled.getExpression().getClass()), Object.class); classFab.addInterface(ExpressionAccessor.class); compiled.setGeneratedClass(classFab); return classFab; }
private Class constructInterceptorClass(InterceptorStack stack, List parameters) { Class serviceInterfaceClass = stack.getServiceInterface(); String name = ClassFabUtils.generateClassName(serviceInterfaceClass); ClassFab classFab = _factory.newClass(name, Object.class); classFab.addInterface(serviceInterfaceClass); createInfrastructure(stack, classFab); addServiceMethods(stack, classFab, parameters); return classFab.createClass(); }
_classFab.addInterface(_serviceInterface);
classFab.addInterface(ExpressionAccessor.class);
classFab.addInterface(ExpressionAccessor.class);
/** @since 1.1 */ private static void addDelegateAccessor(ClassFab classFab, ServicePoint servicePoint, Object delegate) { classFab.addField("_shutdown", boolean.class); Class delegateClass = ClassFabUtils.getInstanceClass(delegate, servicePoint .getServiceInterface()); classFab.addField("_delegate", delegateClass); classFab.addConstructor(new Class[] { delegateClass }, null, "{ super(); _delegate = $1; }"); classFab.addInterface(RegistryShutdownListener.class); if( RegistryShutdownListener.class.isAssignableFrom( delegateClass ) ) { classFab.addMethod(Modifier.PUBLIC | Modifier.FINAL, new MethodSignature(void.class, "registryDidShutdown", null, null), "{ _delegate.registryDidShutdown(); _delegate = null; _shutdown = true; }"); } else { classFab.addMethod(Modifier.PUBLIC | Modifier.FINAL, new MethodSignature(void.class, "registryDidShutdown", null, null), "{ _delegate = null; _shutdown = true; }"); } BodyBuilder builder = new BodyBuilder(); builder.begin(); builder.addln("if (_shutdown)"); builder.addln(" throw org.apache.hivemind.HiveMind#createRegistryShutdownException();"); builder.add("return _delegate;"); builder.end(); classFab.addMethod(Modifier.FINAL | Modifier.PRIVATE, new MethodSignature(delegateClass, DELEGATE_ACCESSOR_METHOD_NAME, null, null), builder.toString()); }
"_instantiateServiceImplementation", null, null), body.toString()); classFab.addInterface(SingletonInnerProxy.class);
if (!RegistryShutdownListener.class.isAssignableFrom(serviceInterface)) classFab.addInterface(RegistryShutdownListener.class);