String toString(Object obj) { if (obj instanceof String) { return (String) obj; } if (obj instanceof AbstractActor) { final RemoteReference ref = RemoteReference.from((AbstractActor) obj); return RemoteReference.getInterfaceClass(ref).getSimpleName() + ":" + RemoteReference.getId(ref); } if (obj instanceof RemoteReference) { return RemoteReference.getInterfaceClass((RemoteReference<?>) obj).getSimpleName() + ":" + RemoteReference.getId((RemoteReference<?>) obj); } return String.valueOf(obj); }
String toString(Object obj) { if (obj instanceof String) { return (String) obj; } if (obj instanceof AbstractActor) { final RemoteReference ref = RemoteReference.from((AbstractActor) obj); return RemoteReference.getInterfaceClass(ref).getSimpleName() + ":" + RemoteReference.getId(ref); } if (obj instanceof RemoteReference) { return RemoteReference.getInterfaceClass((RemoteReference<?>) obj).getSimpleName() + ":" + RemoteReference.getId((RemoteReference<?>) obj); } return String.valueOf(obj); }
String toString(Object obj) { if (obj instanceof String) { return (String) obj; } if (obj instanceof AbstractActor) { final RemoteReference ref = RemoteReference.from((AbstractActor) obj); return RemoteReference.getInterfaceClass(ref).getSimpleName() + ":" + RemoteReference.getId(ref); } if (obj instanceof RemoteReference) { return RemoteReference.getInterfaceClass((RemoteReference<?>) obj).getSimpleName() + ":" + RemoteReference.getId((RemoteReference<?>) obj); } return String.valueOf(obj); }
@Override public void serialize(final Object value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException { final RemoteReference<?> reference = (RemoteReference<?>) (value instanceof AbstractActor ? RemoteReference.from((AbstractActor) value) : value); final String text = String.valueOf(RemoteReference.getId(reference)); final Class<?> interfaceClass = RemoteReference.getInterfaceClass(reference); if (interfaceClass != null && (interfaceClass == rawClass)) { // escape starting '!' if (!text.startsWith("!!")) { jgen.writeString(text); } else { jgen.writeString("!" + text); } } else if (interfaceClass != null && rawClass == null) { throw new IOException("Illegal json serialization of actor reference " + interfaceClass + ":" + text + " won't be able to deserialize later"); } else { jgen.writeString("!!" + interfaceClass.getName() + " " + text); } }
from = RemoteReference.getInterfaceClass(contextReference).getSimpleName() + ":" + RemoteReference.getId(contextReference); if (reference != null && RemoteReference.getInterfaceClass(reference) == NodeCapabilities.class && method.getName().equals("canActivate"))
target = (RemoteReference.getInterfaceClass(reference).getSimpleName() + ":" + RemoteReference.getId(reference)).replaceAll("[\"\\t\\r\\n]", "");
@Override public Logger getLogger(final Object object) { if (object instanceof Actor) { return getLogger(RemoteReference.getInterfaceClass(RemoteReference.from((Actor) object)).getName()); } if (object instanceof Class) { return getLogger(((Class) object).getName()); } if (object instanceof String) { return getLogger((String) object); } if (object != null) { return getLogger(object.getClass()); } return getLogger((String) null); } }
private boolean shouldRemove(final ActorBaseEntry<?> actorEntry, final Set<ActorBaseEntry<?>> toRemove) final Class<?> interfaceClass = RemoteReference.getInterfaceClass(actorEntry.getRemoteReference());
@Override public Object copy(final Kryo kryo, final Object original) { if (original instanceof RemoteReference) { final RemoteReference<?> remoteReference = (RemoteReference<?>) original; if (RemoteReference.getRuntime(remoteReference) != null) { return DefaultDescriptorFactory.get().getReference(null, RemoteReference.getAddress(remoteReference), RemoteReference.getInterfaceClass(remoteReference), RemoteReference.getId(remoteReference)); } } return original; }
@Override public Object copy(final Kryo kryo, final Object original) { if (original instanceof AbstractActor) { return RemoteReference.from((AbstractActor) original); } if (original instanceof RemoteReference) { final RemoteReference<?> remoteReference = (RemoteReference<?>) original; if (RemoteReference.getRuntime(remoteReference) != null) { return DefaultDescriptorFactory.get().getReference(null, RemoteReference.getAddress(remoteReference), RemoteReference.getInterfaceClass(remoteReference), RemoteReference.getId(remoteReference)); } return original; } if (original == null) { return null; } throw new IllegalArgumentException("Invalid type for " + original); }
<T> LocalObjects.LocalObjectEntry createLocalObjectEntry(final RemoteReference<T> reference, final T object) { final Class<T> interfaceClass = RemoteReference.getInterfaceClass(reference); if (Actor.class.isAssignableFrom(interfaceClass)) { final ActorBaseEntry actorEntry; if (interfaceClass.isAnnotationPresent(StatelessWorker.class)) { actorEntry = new StatelessActorEntry<>(objects, reference); } else { actorEntry = new ActorEntry<>(reference); } actorEntry.setExecutionSerializer(executionSerializer); actorEntry.setLoggerExtension(loggerExtension); actorEntry.setRuntime(this); final Class actorImplementation = finder.findActorImplementation((Class) interfaceClass); actorEntry.setConcreteClass(actorImplementation); actorEntry.setStorageExtension(getStorageExtensionFor(actorImplementation)); return actorEntry; } if (ActorObserver.class.isAssignableFrom(interfaceClass)) { final ObserverEntry observerEntry = new ObserverEntry(reference, object); observerEntry.setExecutionSerializer(executionSerializer); return observerEntry; } throw new IllegalArgumentException("Invalid object type: " + object.getClass()); }
if (method == null) method = DefaultDescriptorFactory.get().getInvoker(RemoteReference.getInterfaceClass(toReference)).getMethod(invocation.getMethodId()); String to = TestLogger.wrap(RemoteReference.getInterfaceClass(toReference).getSimpleName() + ":" + RemoteReference.getId(toReference), 32, "\\n", false);
@Override public Object copy(Kryo kryo, Object original) { if (original instanceof RemoteReference) { final RemoteReference<?> remoteReference = (RemoteReference<?>) original; if (RemoteReference.getRuntime(remoteReference) != null) { return DefaultDescriptorFactory.get().getReference(null, RemoteReference.getAddress(remoteReference), RemoteReference.getInterfaceClass(remoteReference), RemoteReference.getId(remoteReference)); } return original; } return ActorRuntime.getRuntime().registerObserver(null, (ActorObserver) original); }
public String generateDocumentId(final RemoteReference<?> reference) { final Class<?> referenceClass = RemoteReference.getInterfaceClass(reference); final String idDecoration = referenceClass.getSimpleName(); final String documentId = String.format( "%s%s%s", idDecoration, "/", String.valueOf(RemoteReference.getId(reference))); return documentId; }
@Override public void serialize(final Object value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException { final RemoteReference<?> reference = (RemoteReference<?>) (value instanceof AbstractActor ? RemoteReference.from((AbstractActor) value) : value); final String text = String.valueOf(RemoteReference.getId(reference)); final Class<?> interfaceClass = RemoteReference.getInterfaceClass(reference); if (interfaceClass != null && (interfaceClass == rawClass)) { // escape starting '!' if (!text.startsWith("!!")) { jgen.writeString(text); } else { jgen.writeString("!" + text); } } else if (interfaceClass != null && rawClass == null) { throw new IOException("Illegal json serialization of actor reference " + interfaceClass + ":" + text + " won't be able to deserialize later"); } else { jgen.writeString("!!" + interfaceClass.getName() + " " + text); } }