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); }
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); } }
@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); } }
@Override public Task<Void> clearState(final RemoteReference<?> reference, final Object state) { DB db = mongoClient.getDB(database); final DBCollection col = db.getCollection(RemoteReference.getInterfaceClass(reference).getSimpleName()); col.remove(new BasicDBObject("_id", String.valueOf(RemoteReference.getId(reference)))); return Task.done(); }
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]", "");
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 @SuppressWarnings("unchecked") public Task<Void> writeState(final RemoteReference<?> reference, final Object state) { DB db = mongoClient.getDB(database); final DBCollection col = db.getCollection(RemoteReference.getInterfaceClass(reference).getSimpleName()); JacksonDBCollection<Object, String> coll = JacksonDBCollection.wrap( col, (Class<Object>) state.getClass(), String.class, mapper); DBObject obj = coll.convertToDbObject(state); obj.put("_id", String.valueOf(RemoteReference.getId(reference))); col.save(obj); return Task.done(); }
@Override @SuppressWarnings("unchecked") public Task<Boolean> readState(final RemoteReference<?> reference, final Object state) { DB db = mongoClient.getDB(database); final DBCollection col = db.getCollection(RemoteReference.getInterfaceClass(reference).getSimpleName()); JacksonDBCollection<Object, String> coll = JacksonDBCollection.wrap( col, (Class<Object>) state.getClass(), String.class, mapper); DBObject obj = col.findOne(String.valueOf(RemoteReference.getId(reference))); if (obj != null) { try { obj.removeField("_id"); mapper.readerForUpdating(state).readValue(new BsonObjectTraversingParser( coll, obj, mapper)); return Task.fromValue(true); } catch (Exception e) { throw new UncheckedException("Error reading state of: " + reference, e); } } return Task.fromValue(false); }
if (method == null) method = DefaultDescriptorFactory.get().getInvoker(RemoteReference.getInterfaceClass(toReference)).getMethod(invocation.getMethodId()); String to = wrap(RemoteReference.getInterfaceClass(toReference).getSimpleName() + ":" + RemoteReference.getId(toReference), 32, "\\n", false);
if (method == null) method = DefaultDescriptorFactory.get().getInvoker(RemoteReference.getInterfaceClass(toReference)).getMethod(invocation.getMethodId()); String to = wrap(RemoteReference.getInterfaceClass(toReference).getSimpleName() + ":" + RemoteReference.getId(toReference), 32, "\\n", false);