@Override public <T> T getReference(BasicRuntime runtime, final NodeAddress nodeId, final Class<T> iClass, final Object id) { ReferenceFactory<T> factory = getFactory(iClass); final T reference = factory.createReference(String.valueOf(id)); if (nodeId != null) { RemoteReference.setAddress((RemoteReference<?>) reference, nodeId); } if (runtime != null) { ((RemoteReference) reference).runtime = runtime; } return reference; }
public ObjectInvoker<?> getInvoker(final int interfaceId) { final ClassDescriptor descriptor = getDescriptor(interfaceId); if (descriptor == null) { return getInvoker(DefaultClassDictionary.get().getClassById(interfaceId)); } if (descriptor.invoker == null) { descriptor.invoker = dynamicReferenceFactory.getInvokerFor(descriptor.factory.getInterface()); } return descriptor.invoker; }
@SuppressWarnings("unchecked") private ClassDescriptor getDescriptor(final Class<?> aInterface) { ClassDescriptor descriptor = descriptorMapByInterface.get(aInterface); if (descriptor == null) { if (aInterface == Actor.class || aInterface == ActorObserver.class) { return null; } descriptor = new ClassDescriptor(); descriptor.isObserver = ActorObserver.class.isAssignableFrom(aInterface); if (aInterface.isInterface()) { descriptor.factory = dynamicReferenceFactory.getFactoryFor(aInterface); descriptor.invoker = (ObjectInvoker<Object>) descriptor.factory.getInvoker(); } ClassDescriptor concurrentInterfaceDescriptor = descriptorMapByInterface.putIfAbsent(aInterface, descriptor); if (concurrentInterfaceDescriptor != null) { descriptorMapByInterfaceId.put(DefaultClassDictionary.get().getClassId(aInterface), concurrentInterfaceDescriptor); return concurrentInterfaceDescriptor; } descriptorMapByInterfaceId.put(DefaultClassDictionary.get().getClassId(aInterface), descriptor); } return descriptor; }
public ObjectInvoker<?> getInvoker(final int interfaceId) { final ClassDescriptor descriptor = getDescriptor(interfaceId); if (descriptor == null) { return getInvoker(DefaultClassDictionary.get().getClassById(interfaceId)); } if (descriptor.invoker == null) { descriptor.invoker = dynamicReferenceFactory.getInvokerFor(descriptor.factory.getInterface()); } return descriptor.invoker; }
@Override public <T> T getReference(BasicRuntime runtime, final NodeAddress nodeId, final Class<T> iClass, final Object id) { ReferenceFactory<T> factory = getFactory(iClass); final T reference = factory.createReference(String.valueOf(id)); if (nodeId != null) { RemoteReference.setAddress((RemoteReference<?>) reference, nodeId); } if (runtime != null) { ((RemoteReference) reference).runtime = runtime; } return reference; }
@SuppressWarnings("unchecked") private ClassDescriptor getDescriptor(final Class<?> aInterface) { ClassDescriptor descriptor = descriptorMapByInterface.get(aInterface); if (descriptor == null) { if (aInterface == Actor.class || aInterface == ActorObserver.class) { return null; } descriptor = new ClassDescriptor(); descriptor.isObserver = ActorObserver.class.isAssignableFrom(aInterface); if (aInterface.isInterface()) { descriptor.factory = dynamicReferenceFactory.getFactoryFor(aInterface); descriptor.invoker = (ObjectInvoker<Object>) descriptor.factory.getInvoker(); } ClassDescriptor concurrentInterfaceDescriptor = descriptorMapByInterface.putIfAbsent(aInterface, descriptor); if (concurrentInterfaceDescriptor != null) { descriptorMapByInterfaceId.put(DefaultClassDictionary.get().getClassId(aInterface), concurrentInterfaceDescriptor); return concurrentInterfaceDescriptor; } descriptorMapByInterfaceId.put(DefaultClassDictionary.get().getClassId(aInterface), descriptor); } return descriptor; }