@Override public String getName() { List<String> parts = this.path.getParts(); return parts.isEmpty() ? "" : parts.get(parts.size() - 1); }
/** * Returns the parts of this query as individual queries. The returned list * is immutable. * * @return The constructed queries */ public List<DataQuery> getQueryParts() { if (this.queryParts == null) { ImmutableList.Builder<DataQuery> builder = ImmutableList.builder(); for (String part : getParts()) { builder.add(new DataQuery(part)); } this.queryParts = builder.build(); } return this.queryParts; }
@Override public final boolean contains(DataQuery path) { checkNotNull(path, "path"); List<String> queryParts = path.getParts(); String key = queryParts.get(0); if (queryParts.size() == 1) { return this.map.containsKey(key); } Optional<DataView> subViewOptional = this.getUnsafeView(key); return subViewOptional.isPresent() && subViewOptional.get().contains(path.popFirst()); }
protected MemoryDataView(DataView parent, DataQuery path, DataView.SafetyMode safety) { checkArgument(path.getParts().size() >= 1, "Path must have at least one part"); this.parent = parent; this.container = parent.getContainer(); this.path = parent.getCurrentPath().then(path); this.safety = checkNotNull(safety, "Safety mode"); }
@Override public DataView remove(DataQuery path) { checkNotNull(path, "path"); List<String> parts = path.getParts(); if (parts.size() > 1) { String subKey = parts.get(0); DataQuery subQuery = of(subKey); Optional<DataView> subViewOptional = this.getUnsafeView(subQuery); if (!subViewOptional.isPresent()) { return this; } DataView subView = subViewOptional.get(); subView.remove(path.popFirst()); } else { this.map.remove(parts.get(0)); } return this; }
@Override public DataView createView(DataQuery path) { checkNotNull(path, "path"); List<String> queryParts = path.getParts(); int sz = queryParts.size(); checkArgument(sz != 0, "The size of the query must be at least 1"); String key = queryParts.get(0); DataQuery keyQuery = of(key); if (sz == 1) { DataView result = new MemoryDataView(this, keyQuery, this.safety); this.map.put(key, result); return result; } DataQuery subQuery = path.popFirst(); DataView subView = (DataView) this.map.get(key); if (subView == null) { subView = new MemoryDataView(this.parent, keyQuery, this.safety); this.map.put(key, subView); } return subView.createView(subQuery); }
@Override public Optional<Object> get(DataQuery path) { checkNotNull(path, "path"); List<String> queryParts = path.getParts();
/** * Method: getParts() */ @Test public void testGetParts() { final DataQuery query = DataQuery.of("this", "parts", "test"); final List<String> parts = new ArrayList<>(); parts.add("this"); parts.add("parts"); parts.add("test"); assertThat(query.getParts().equals(parts), is(true)); }
List<String> parts = path.getParts(); String key = parts.get(0); if (parts.size() > 1) {
@Override public String getName() { List<String> parts = this.path.getParts(); return parts.isEmpty() ? "" : parts.get(parts.size() - 1); }
/** * Returns the parts of this query as individual queries. The returned list * is immutable. * * @return The constructed queries */ public List<DataQuery> getQueryParts() { if (this.queryParts == null) { ImmutableList.Builder<DataQuery> builder = ImmutableList.builder(); for (String part : getParts()) { builder.add(new DataQuery(part)); } this.queryParts = builder.build(); } return this.queryParts; }
@Override public final boolean contains(DataQuery path) { checkNotNull(path, "path"); List<String> queryParts = path.getParts(); String key = queryParts.get(0); if (queryParts.size() == 1) { return this.map.containsKey(key); } Optional<DataView> subViewOptional = this.getUnsafeView(key); if (!subViewOptional.isPresent()) { return false; } return subViewOptional.get().contains(path.popFirst()); }
protected MemoryDataView(DataView parent, DataQuery path, DataView.SafetyMode safety) { checkArgument(path.getParts().size() >= 1, "Path must have at least one part"); this.parent = parent; this.container = parent.getContainer(); this.path = parent.getCurrentPath().then(path); this.safety = checkNotNull(safety, "Safety mode"); }
@Override public DataView remove(DataQuery path) { checkNotNull(path, "path"); List<String> parts = path.getParts(); if (parts.size() > 1) { String subKey = parts.get(0); DataQuery subQuery = of(subKey); Optional<DataView> subViewOptional = this.getUnsafeView(subQuery); if (!subViewOptional.isPresent()) { return this; } DataView subView = subViewOptional.get(); subView.remove(path.popFirst()); } else { this.map.remove(parts.get(0)); } return this; }
@Override public DataView createView(DataQuery path) { checkNotNull(path, "path"); List<String> queryParts = path.getParts(); int sz = queryParts.size(); checkArgument(sz != 0, "The size of the query must be at least 1"); String key = queryParts.get(0); DataQuery keyQuery = of(key); if (sz == 1) { DataView result = new MemoryDataView(this, keyQuery, this.safety); this.map.put(key, result); return result; } DataQuery subQuery = path.popFirst(); DataView subView = (DataView) this.map.get(key); if (subView == null) { subView = new MemoryDataView(this.parent, keyQuery, this.safety); this.map.put(key, subView); } return subView.createView(subQuery); }
@Override public Optional<Object> get(DataQuery path) { checkNotNull(path, "path"); List<String> queryParts = path.getParts();
List<String> parts = path.getParts(); String key = parts.get(0); if (parts.size() > 1) {