CacheableMergeQueryCall(Repository repo, Revision revision, MergeQuery<?> query) { super(repo); this.revision = requireNonNull(revision, "revision"); this.query = requireNonNull(query, "query"); // Only JSON files can currently be merged. query.mergeSources().forEach(path -> validateJsonFilePath(path.path(), "path")); hashCode = Objects.hash(revision, query) * 31 + System.identityHashCode(repo); assert !revision.isRelative(); }
CacheableMergeQueryCall(Repository repo, Revision revision, MergeQuery<?> query) { super(repo); this.revision = requireNonNull(revision, "revision"); this.query = requireNonNull(query, "query"); // Only JSON files can currently be merged. query.mergeSources().forEach(path -> validateJsonFilePath(path.path(), "path")); hashCode = Objects.hash(revision, query) * 31 + System.identityHashCode(repo); assert !revision.isRelative(); }
@Override int weigh(MergedEntry<?> value) { int weight = 0; final List<MergeSource> mergeSources = query.mergeSources(); weight += mergeSources.size(); for (MergeSource mergeSource : mergeSources) { weight += mergeSource.path().length(); } final List<String> expressions = query.expressions(); weight += expressions.size(); for (String expression : expressions) { weight += expression.length(); } if (value != null) { weight += value.contentAsText().length(); } return weight; }
@Override int weigh(MergedEntry<?> value) { int weight = 0; final List<MergeSource> mergeSources = query.mergeSources(); weight += mergeSources.size(); for (MergeSource mergeSource : mergeSources) { weight += mergeSource.path().length(); } final List<String> expressions = query.expressions(); weight += expressions.size(); for (String expression : expressions) { weight += expression.length(); } if (value != null) { weight += value.contentAsText().length(); } return weight; }
private static ImmutableList<MergeSource> convertMergeSources( com.linecorp.centraldogma.common.MergeQuery<?> mergeQuery) { return mergeQuery.mergeSources().stream() .map(mergeSource -> new MergeSource( mergeSource.path(), mergeSource.isOptional())) .collect(toImmutableList()); }