/** * Decode an AutoBeanCodex payload. * * @param <T> the expected return type * @param factory an AutoBeanFactory capable of producing {@code AutoBean<T>} * @param clazz the expected return type * @param payload a payload string previously generated by * {@link #encode(AutoBean)}{@link Splittable#getPayload() * .getPayload()}. * @return an AutoBean containing the payload contents */ public static <T> AutoBean<T> decode(AutoBeanFactory factory, Class<T> clazz, String payload) { Splittable data = StringQuoter.split(payload); return decode(factory, clazz, data); }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage idMessage = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") AutoBean<Q> toReturn = (AutoBean<Q>) getBeansForPayload(Collections.singletonList(idMessage)).get(0); return toReturn; }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage ref = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") SimpleProxyId<Q> id = (SimpleProxyId<Q>) getId(ref); return getProxyForReturnPayloadGraph(id); }
/** * Load the OperationMessage containing the object state from the backing * store. */ private OperationMessage getOperation(String key) { Splittable data = store.get(key); if (data == null) { throw new NoDataException(); } OperationMessage op = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, OperationMessage.class, data).as(); return op; }
/** * Construct a DefaultProxyStore using the a value returned from * {@link #encode()}. * * @param payload a String previously returned from {@link #encode()} * @throws IllegalArgumentException if the payload cannot be parsed */ public DefaultProxyStore(String payload) throws IllegalArgumentException { messageBean = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, OperationMessage.class, payload); OperationMessage message = messageBean.as(); if (!EXPECTED_VERSION.equals(message.getVersion())) { throw new IllegalArgumentException("Unexpected version string in payload " + message.getVersion()); } map = message.getPropertyMap(); // #encode() saves nextId + 1, so we remove 1 here; see rationale below. nextId = message.getSyntheticId() - 1; if (nextId < 0) { /* * In case this is a message generated by a pre-2.5 DefaultProxyStore, * getSyntheticId will be '0', so we initialize the nextId to our best * guess (that only works because the store is append-only, and it could * break if nextId() was called on the original DefaultProxyStore more * times than put()). * Post-2.5 DefaultProxyStore never stores a '0' (see #encode()). */ nextId = map.size(); } }
/** * Decode an out-of-band message. */ <T> List<T> decodeOobMessage(Class<T> domainClass, Splittable payload) { Class<?> proxyType = service.resolveClientType(domainClass, BaseProxy.class, true); RequestState state = new RequestState(service); RequestMessage message = AutoBeanCodex.decode(FACTORY, RequestMessage.class, payload).as(); processOperationMessages(state, message); List<Object> decoded = decodeInvocationArguments(state, message.getInvocations().get(0).getParameters(), new Class<?>[] {proxyType}, new Type[] {domainClass}); @SuppressWarnings("unchecked") List<T> toReturn = (List<T>) decoded; return toReturn; }
public void processPayload(final Receiver<Void> receiver, String payload) { ResponseMessage response = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, ResponseMessage.class, payload).as(); if (response.getGeneralFailure() != null) { ServerFailureMessage failure = response.getGeneralFailure(); } else { ServerFailureMessage failure = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, ServerFailureMessage.class, response.getInvocationResults().get(i)).as(); state.invocations.get(i).onFail(
/** * Process a payload sent by a RequestFactory client. * * @param payload the payload sent by the client * @return a payload to return to the client */ public String process(String payload) { RequestMessage req = AutoBeanCodex.decode(FACTORY, RequestMessage.class, payload).as(); AutoBean<ResponseMessage> responseBean = FACTORY.response(); try { process(req, responseBean.as()); } catch (ReportableException e) { // Create a new response envelope, since the state is unknown responseBean = FACTORY.response(); responseBean.as().setGeneralFailure(createFailureMessage(e).as()); } // Return a JSON-formatted payload return AutoBeanCodex.encode(responseBean).getPayload(); }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage idMessage = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") AutoBean<Q> toReturn = (AutoBean<Q>) getBeansForPayload(Collections.singletonList(idMessage)).get(0); return toReturn; }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage idMessage = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") AutoBean<Q> toReturn = (AutoBean<Q>) getBeansForPayload(Collections.singletonList(idMessage)).get(0); return toReturn; }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage idMessage = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") AutoBean<Q> toReturn = (AutoBean<Q>) getBeansForPayload(Collections.singletonList(idMessage)).get(0); return toReturn; }
private SystemDetails createSystemDetails(final ModelNode systemDetailsNode) { try { return AutoBeanCodex.decode(_factory, SystemDetails.class, systemDetailsNode.toJSONString(true)).as(); } catch (Exception e) { Log.error(PARSE_ERROR_MESSAGE, e); return null; } }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage ref = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") SimpleProxyId<Q> id = (SimpleProxyId<Q>) getId(ref); return getProxyForReturnPayloadGraph(id); }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage ref = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") SimpleProxyId<Q> id = (SimpleProxyId<Q>) getId(ref); return getProxyForReturnPayloadGraph(id); }
private Application createApplication(final ModelNode applicationNode) { try { return AutoBeanCodex.decode(_factory, Application.class, applicationNode.toJSONString(true)).as(); } catch (Exception e) { Log.error(PARSE_ERROR_MESSAGE, e); return null; } }
private Component createExtension(final ModelNode extensionNode) { try { return AutoBeanCodex.decode(_factory, Component.class, extensionNode.toJSONString(true)).as(); } catch (Exception e) { Log.error(PARSE_ERROR_MESSAGE, e); return null; } }
private Service createServiceStub(final ModelNode serviceNode) { try { return AutoBeanCodex.decode(_factory, Service.class, serviceNode.toJSONString(true)).as(); } catch (Exception e) { Log.error(PARSE_ERROR_MESSAGE, e); return null; } }
private MessageMetrics createMessageMetrics(final ModelNode metricsNode) { try { return AutoBeanCodex.decode(_factory, MessageMetrics.class, metricsNode.toJSONString(true)).as(); } catch (Exception e) { Log.error(PARSE_ERROR_MESSAGE, e); return null; } }
/** * EntityCodex support. */ public <Q extends BaseProxy> AutoBean<Q> getBeanForPayload(Splittable serializedProxyId) { IdMessage ref = AutoBeanCodex.decode(MessageFactoryHolder.FACTORY, IdMessage.class, serializedProxyId).as(); @SuppressWarnings("unchecked") SimpleProxyId<Q> id = (SimpleProxyId<Q>) getId(ref); return getProxyForReturnPayloadGraph(id); }
private Reference createReferenceStub(final ModelNode referenceNode) { try { return AutoBeanCodex.decode(_factory, Reference.class, referenceNode.toJSONString(true)).as(); } catch (Exception e) { Log.error(PARSE_ERROR_MESSAGE, e); return null; } }