@Override public FilterResult readFrom(ProtoStreamReader reader) throws IOException { byte[] instance = reader.readBytes("instance"); List<WrappedMessage> projection = reader.readCollection("projection", new ArrayList<>(), WrappedMessage.class); List<WrappedMessage> sortProjection = reader.readCollection("sortProjection", new ArrayList<>(), WrappedMessage.class); Object i = null; if (instance != null) { i = ProtobufUtil.fromWrappedByteArray(reader.getSerializationContext(), instance); } Object[] p = null; if (!projection.isEmpty()) { p = new Object[projection.size()]; int j = 0; for (WrappedMessage m : projection) { p[j++] = m.getValue(); } } Comparable[] sp = null; if (!sortProjection.isEmpty()) { sp = new Comparable[sortProjection.size()]; int j = 0; for (WrappedMessage m : sortProjection) { sp[j++] = (Comparable) m.getValue(); } } return new FilterResult(i, p, sp); }
@Override public ContinuousQueryResult readFrom(ProtoStreamReader reader) throws IOException { ResultType type = reader.readObject("resultType", ResultType.class); byte[] key = reader.readBytes("key"); byte[] value = reader.readBytes("value"); List<WrappedMessage> projection = reader.readCollection("projection", new ArrayList<>(), WrappedMessage.class); Object[] p = null; if (!projection.isEmpty()) { p = new Object[projection.size()]; int j = 0; for (WrappedMessage m : projection) { p[j++] = m.getValue(); } } return new ContinuousQueryResult(type, key, value, p); }
@Override public QueryResponse readFrom(ProtoStreamReader reader) throws IOException { QueryResponse queryResponse = new QueryResponse(); queryResponse.setNumResults(reader.readInt("numResults")); queryResponse.setProjectionSize(reader.readInt("projectionSize")); queryResponse.setResults(reader.readCollection("results", new ArrayList<>(), WrappedMessage.class)); queryResponse.setTotalResults(reader.readLong("totalResults")); return queryResponse; }
@Override public User readFrom(ProtoStreamReader reader) throws IOException { int id = reader.readInt("id"); Set<Integer> accountIds = reader.readCollection("accountIds", new HashSet<>(), Integer.class); String name = reader.readString("name"); String surname = reader.readString("surname"); String salutation = reader.readString("salutation"); List<Address> addresses = reader.readCollection("addresses", new ArrayList<>(), Address.class); Integer age = reader.readInt("age"); User.Gender gender = reader.readEnum("gender", User.Gender.class); String notes = reader.readString("notes"); Instant creationDate = reader.readInstant("creationDate"); Instant passwordExpirationDate = reader.readInstant("passwordExpirationDate"); User user = new User(); user.setId(id); user.setAccountIds(accountIds); user.setName(name); user.setSurname(surname); user.setSalutation(salutation); user.setAge(age); user.setGender(gender); user.setAddresses(addresses); user.setNotes(notes); user.setCreationDate(creationDate); user.setPasswordExpirationDate(passwordExpirationDate); return user; }
@Override public Account readFrom(ProtoStreamReader reader) throws IOException { int id = reader.readInt("id"); String description = reader.readString("description"); Date creationDate = reader.readDate("creationDate"); Account.Limits limits = reader.readObject("limits", Account.Limits.class); Account.Limits hardLimits = reader.readObject("hardLimits", Account.Limits.class); List<byte[]> blurb = reader.readCollection("blurb", new ArrayList<>(), byte[].class); Account.Currency[] currencies = reader.readArray("currencies", Account.Currency.class); Account account = new Account(); account.setId(id); account.setDescription(description); account.setCreationDate(creationDate); account.setLimits(limits); account.setHardLimits(hardLimits); account.setBlurb(blurb); account.setCurrencies(currencies); return account; }
@Override public QueryRequest readFrom(ProtoStreamReader reader) throws IOException { QueryRequest queryRequest = new QueryRequest(); queryRequest.setQueryString(reader.readString("queryString")); queryRequest.setStartOffset(reader.readLong("startOffset")); queryRequest.setMaxResults(reader.readInt("maxResults")); queryRequest.setNamedParameters(reader.readCollection("namedParameters", new ArrayList<>(), NamedParameter.class)); queryRequest.setIndexedQueryMode(reader.readString("indexedQueryMode")); return queryRequest; }