@Override public <T> EntityDocument<T> toEntity(final JsonDocument source, final Class<T> clazz) { JsonObject json = source.content(); // favor embedded type over provided type Class<T> type = type(json.getString(N1Q.CLASS), clazz); T value = mapper.convertValue(json, type); return EntityDocument.create(source.id(), value); }
HashMap<String, ByteIterator> tuple = new HashMap<String, ByteIterator>(f.size()); for (String field : f) { tuple.put(field, new StringByteIterator(value.getString(field)));
@Override public String name() { return raw.getString("name"); }
@Override public BucketType type() { String type = raw.getString("bucketType"); if (type.equals("membase")) { return BucketType.COUCHBASE; } else if (type.equals("ephemeral")) { return BucketType.EPHEMERAL; } else { return BucketType.MEMCACHED; } }
/** * Extracts the {@link PreparedPayload} from the server's response during a PREPARE. */ protected PreparedPayload extractPreparedPayloadFromResponse(PrepareStatement prepared, JsonObject response) { return new PreparedPayload( prepared.originalStatement(), response.getString("name"), response.getString("encoded_plan") ); }
/** * Tests a N1QL error JSON for conditions warranting a prepared statement retry. */ private static boolean shouldRetry(JsonObject errorJson) { if (errorJson == null) return false; Integer code = errorJson.getInt(ERROR_FIELD_CODE); String msg = errorJson.getString(ERROR_FIELD_MSG); if (code == null || msg == null) return false; if (code == 4050 || code == 4070 || (code == 5000 && msg.contains(ERROR_5000_SPECIFIC_MESSAGE))) { return true; } return false; }
@Override public List<InetAddress> nodeList() { List<InetAddress> nodes = new ArrayList<InetAddress>(); for (Object node : raw.getArray("nodes")) { try { String hostname = ((JsonObject) node).getString("hostname"); String[] hostAndPort = hostname.split(":"); nodes.add(InetAddress.getByName(hostAndPort[0])); } catch (Exception ex) { LOGGER.warn("Exception while parsing node list on bucket info.", ex); } } return nodes; }
public IndexInfo(JsonObject raw) { this.raw = raw; this.name = raw.getString("name"); this.state = raw.getString("state"); this.keyspace = raw.getString("keyspace_id"); this.namespace = raw.getString("namespace_id"); this.indexKey = raw.getArray("index_key"); String rawCondition = raw.getString("condition"); this.condition = rawCondition == null ? "" : rawCondition; this.rawType = raw.getString("using"); if (rawType == null) { this.type = IndexType.GSI; //assume GSI } else { //let's avoid unrecognized type crashing the constructor IndexType candidateType; try { candidateType = IndexType.valueOf(rawType.toUpperCase()); } catch (IllegalArgumentException e) { LOGGER.warn("Unknown index type {} for index {}", rawType, meta(name)); candidateType = null; } this.type = candidateType; } this.isPrimary = raw.getBoolean("is_primary") == Boolean.TRUE; }
public CompletionStage<List<UserGreeting>> listUserGreetings() { return couchbaseSession.get(GreetingsRepository.HelloEventProcessor.DOC_ID) .thenApply(docOpt -> { if (docOpt.isPresent()) { JsonObject content = docOpt.get().content(); return content.getNames().stream().map( name -> new UserGreeting(name, content.getString(name)) ).collect(Collectors.toList()); } else { return Collections.emptyList(); } }); }
public AnalyticsMetrics(JsonObject rawMetrics) { this.rawMetrics = rawMetrics; if (rawMetrics.getString("elapsedTime") == null) { this.elapsedTime = NO_TIME; } else { this.elapsedTime = rawMetrics.getString("elapsedTime"); } if (rawMetrics.getString("executionTime") == null) { this.executionTime = NO_TIME; } else { this.executionTime = rawMetrics.getString("executionTime"); } this.resultCount = parseBestEffortToInt(rawMetrics, "resultCount"); this.errorCount = parseBestEffortToInt(rawMetrics, "errorCount"); this.warningCount = parseBestEffortToInt(rawMetrics, "warningCount"); this.mutationCount = parseBestEffortToInt(rawMetrics, "mutationCount"); this.sortCount = parseBestEffortToInt(rawMetrics, "sortCount"); this.resultSize = parseBestEffortToLong(rawMetrics, "resultSize"); this.processedObjects = parseBestEffortToLong(rawMetrics, "processedObjects"); }
public N1qlMetrics(JsonObject rawMetrics) { this.rawMetrics = rawMetrics; if (rawMetrics.getString("elapsedTime") == null) { this.elapsedTime = NO_TIME; } else { this.elapsedTime = rawMetrics.getString("elapsedTime"); } if (rawMetrics.getString("executionTime") == null) { this.executionTime = NO_TIME; } else { this.executionTime = rawMetrics.getString("executionTime"); } Integer resultCount = rawMetrics.getInt("resultCount"); this.resultCount = resultCount == null ? 0 : resultCount; Integer errorCount = rawMetrics.getInt("errorCount"); this.errorCount = errorCount == null ? 0 : errorCount; Integer warningCount = rawMetrics.getInt("warningCount"); this.warningCount = warningCount == null ? 0 : warningCount; Integer mutationCount = rawMetrics.getInt("mutationCount"); this.mutationCount = mutationCount == null ? 0 : mutationCount; Integer sortCount = rawMetrics.getInt("sortCount"); this.sortCount = sortCount == null ? 0 : sortCount; Long resultSize = rawMetrics.getLong("resultSize"); this.resultSize = resultSize == null ? 0L : resultSize; }
Object decrypted; String key = object.getString("kid"); String alg = object.getString("alg"); encryptedValueWithConfig = object.getString("kid") + object.getString("alg") + object.getString("iv") + object.getString("ciphertext"); byte[] encrypted = Base64.decode(object.getString("ciphertext")); byte[] iv = Base64.decode(object.getString("iv")); encryptedBytes = new byte[iv.length + encrypted.length]; System.arraycopy(iv, 0, encryptedBytes, 0, iv.length); System.arraycopy(encrypted, 0, encryptedBytes, iv.length, encrypted.length); } else { encryptedValueWithConfig = object.getString("kid") + object.getString("alg") + object.getString("ciphertext"); encryptedBytes = Base64.decode(object.getString("ciphertext")); byte[] signature = Base64.decode(object.getString("sig"));
public static Map<String, Document> getDocuments(final InputStream dataScript) { try { final JsonObject jsonObject = JsonObject.fromJson(IOUtils.readFullStream(dataScript)); final JsonArray data = jsonObject.getArray("data"); return StreamSupport.stream(data.spliterator(), false) .map(o -> (JsonObject) o) .collect(Collectors.toMap(o -> o.getString("key"), o -> new Document(o.getObject("document"), o.getInt("expirationSecs")))); } catch (IOException e) { throw new IllegalStateException(e); } }
@Override public Observable<AsyncSpatialViewRow> call(final JsonObject row) { final String id = row.getString("id"); if (query.isIncludeDocs()) { return bucket.get(id, query.includeDocsTarget()).map(new Func1<Document<?>, AsyncSpatialViewRow>() { @Override public AsyncSpatialViewRow call(Document<?> document) { return new DefaultAsyncSpatialViewRow(bucket, row.getString("id"), row.getArray("key"), row.get("value"), row.getObject("geometry"), document); } }); } else { return Observable.just((AsyncSpatialViewRow) new DefaultAsyncSpatialViewRow(bucket, row.getString("id"), row.getArray("key"), row.get("value"), row.getObject("geometry"), null) ); } } });
@Override public AnalyticsDeferredResultHandle importAnalyticsDeferredResultHandle(byte[] b) { try { JsonObject jsonObj = CouchbaseAsyncBucket.JSON_OBJECT_TRANSCODER.stringToJsonObject(new String(b, StandardCharsets.UTF_8)); if (jsonObj.getInt("v") != 1) { throw new IllegalArgumentException("Version is not supported"); } return new DefaultAnalyticsDeferredResultHandle(new DefaultAsyncAnalyticsDeferredResultHandle(jsonObj.getString("uri"), this.environment(), this.core(), this.name(), username, password, environment.analyticsTimeout(), TimeUnit.MILLISECONDS)); } catch (Exception e) { throw new IllegalStateException("Cannot import", e); } }
@Override public List<Version> getAllVersions() { try { JsonObject raw = raw(); if (!raw.containsKey("nodes")) { return Collections.emptyList(); } List<Version> result = new ArrayList<Version>(); JsonArray nodes = raw.getArray("nodes"); for (int i = 0; i < nodes.size(); i++) { JsonObject node = nodes.getObject(i); if (node.containsKey("version")) { String versionFull = node.getString("version"); Version version = Version.parseVersion(versionFull); result.add(version); } } return result; } catch (Exception e) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Could not obtain cluster list of versions", e); } return Collections.emptyList(); } }
for (N1qlQueryRow row : allRows) { JsonObject json = row.value(); String id = json.getString(SELECT_ID); Long cas = json.getLong(SELECT_CAS); if (id == null || cas == null) {
@Override public <T>Observable<T> findByN1QL(N1qlQuery query, Class<T> entityClass) { return queryN1QL(query) .flatMap(asyncN1qlQueryResult -> asyncN1qlQueryResult.errors() .flatMap(error -> Observable.error(new CouchbaseQueryExecutionException("Unable to execute n1ql query due to error:" + error.toString()))) .switchIfEmpty(asyncN1qlQueryResult.rows())) .map(row -> { JsonObject json = ((AsyncN1qlQueryRow)row).value(); String id = json.getString(TemplateUtils.SELECT_ID); Long cas = json.getLong(TemplateUtils.SELECT_CAS); if (id == null || cas == null) { throw new CouchbaseQueryExecutionException("Unable to retrieve enough metadata for N1QL to entity mapping, " + "have you selected " + TemplateUtils.SELECT_ID + " and " + TemplateUtils.SELECT_CAS + "?"); } json = json.removeKey(TemplateUtils.SELECT_ID).removeKey(TemplateUtils.SELECT_CAS); RawJsonDocument entityDoc = RawJsonDocument.create(id, json.toString(), cas); T decoded = mapToEntity(id, entityDoc, entityClass); return decoded; }) .doOnError(throwable -> Observable.error(new CouchbaseQueryExecutionException("Unable to execute n1ql query", throwable))); }
@Override public <T>Observable<T> findByN1QL(N1qlQuery query, Class<T> entityClass) { return queryN1QL(query) .flatMap(asyncN1qlQueryResult -> asyncN1qlQueryResult.errors() .flatMap(error -> Observable.error(new CouchbaseQueryExecutionException("Unable to execute n1ql query due to error:" + error.toString()))) .switchIfEmpty(asyncN1qlQueryResult.rows())) .map(row -> { JsonObject json = ((AsyncN1qlQueryRow)row).value(); String id = json.getString(TemplateUtils.SELECT_ID); Long cas = json.getLong(TemplateUtils.SELECT_CAS); if (id == null || cas == null) { throw new CouchbaseQueryExecutionException("Unable to retrieve enough metadata for N1QL to entity mapping, " + "have you selected " + TemplateUtils.SELECT_ID + " and " + TemplateUtils.SELECT_CAS + "?"); } json = json.removeKey(TemplateUtils.SELECT_ID).removeKey(TemplateUtils.SELECT_CAS); RawJsonDocument entityDoc = RawJsonDocument.create(id, json.toString(), cas); T decoded = mapToEntity(id, entityDoc, entityClass); return decoded; }) .doOnError(throwable -> Observable.error(new CouchbaseQueryExecutionException("Unable to execute n1ql query", throwable))); }