/** * From the valueObject, get an Object that is invokable (i.e. can be the target of an invoke, or * one of its parms). If it is an array type, the a ValueSender is returned. The invoker needs to * then cast this to a ValueSender and call the readArray routine. */ public Object getInvokableObject(final Commands.ValueObject value) { switch (value.type) { case Commands.NEW_OBJECT_ID: case Commands.OBJECT_ID: // These need to have access to the server to get the real object return server.getObject(value.objectID); default: // These have all the info needed within the value object itself, so ask it. return value.getAsObject(); } }