public String column(HugeKeys column) { return this.columns.get(column.string()); }
public void column(HugeKeys column, String value) { this.columns.put(column.string(), value); }
private String formatSyspropName(HugeKeys col) { return this.formatSyspropName(col.string()); }
private static void writeEntry(JsonGenerator jsonGenerator, Map<HugeKeys, Object> schema) throws IOException { jsonGenerator.writeStartObject(); for (Map.Entry<HugeKeys, Object> entry : schema.entrySet()) { jsonGenerator.writeFieldName(entry.getKey().string()); jsonGenerator.writeObject(entry.getValue()); } jsonGenerator.writeEndObject(); }
public void append(TextBackendEntry entry) { for (Entry<String, String> col : entry.columns.entrySet()) { String newValue = col.getValue(); String oldValue = this.column(col.getKey()); // TODO: use more general method if (col.getKey().startsWith(HugeType.PROPERTY.string())) { this.columns.put(col.getKey(), col.getValue()); continue; } // TODO: use more general method if (!col.getKey().endsWith(HugeKeys.ELEMENT_IDS.string())) { continue; } // TODO: ensure the old value is a list and json format (for index) List<Object> values = new ArrayList<>(); Object[] oldValues = JsonUtil.fromJson(oldValue, Object[].class); Object[] newValues = JsonUtil.fromJson(newValue, Object[].class); values.addAll(Arrays.asList(oldValues)); values.addAll(Arrays.asList(newValues)); // Update the old value this.column(col.getKey(), JsonUtil.toJson(values)); } }
public void eliminate(TextBackendEntry entry) { for (Entry<String, String> col : entry.columns.entrySet()) { String newValue = col.getValue(); String oldValue = this.column(col.getKey()); // TODO: use more general method if (col.getKey().startsWith(HugeType.PROPERTY.string()) || col.getKey().startsWith(HugeType.EDGE_OUT.string()) || col.getKey().startsWith(HugeType.EDGE_IN.string())) { this.columns.remove(col.getKey()); continue; } // TODO: use more general method if (!col.getKey().endsWith(HugeKeys.ELEMENT_IDS.string())) { continue; } // TODO: ensure the old value is a list and json format (for index) List<Object> values = new ArrayList<>(); Object[] oldValues = JsonUtil.fromJson(oldValue, Object[].class); Object[] newValues = JsonUtil.fromJson(newValue, Object[].class); values.addAll(Arrays.asList(oldValues)); values.removeAll(Arrays.asList(newValues)); // Update the old value this.column(col.getKey(), JsonUtil.toJson(values)); } }
public void delete(CassandraSessionPool.Session session, CassandraBackendEntry.Row entry, String mainTable) { // Get name from main table by id Select select = QueryBuilder.select().from(mainTable); select.where(CassandraTable.formatEQ(HugeKeys.ID, entry.id().asLong())); ResultSet resultSet = session.execute(select); List<Row> rows = resultSet.all(); if (rows.size() == 0) { return; } String name = rows.get(0).getString(HugeKeys.NAME.string()); Update update = QueryBuilder.update(this.table); update.with(QueryBuilder.remove(ELEMENT_IDS, entry.id().asLong())); update.where(CassandraTable.formatEQ(HugeKeys.NAME, name)); session.add(update); }
public String column(HugeKeys column) { return this.columns.get(column.string()); }
public void column(HugeKeys column, String value) { this.columns.put(column.string(), value); }
private String formatSyspropName(HugeKeys col) { return this.formatSyspropName(col.string()); }
@Override protected Query writeQueryCondition(Query query) { ConditionQuery result = (ConditionQuery) query; // No user-prop when serialize assert result.allSysprop(); for (Condition.Relation r : result.relations()) { // Serialize key if (query.resultType().isSchema()) { r.serialKey(((HugeKeys) r.key()).string()); } else { r.serialKey(formatSyspropName((HugeKeys) r.key())); } if (r.value() instanceof Id) { // Serialize id value r.serialValue(writeId((Id) r.value())); } else { // Serialize other type value r.serialValue(JsonUtil.toJson(r.value())); } if (r.relation() == Condition.RelationType.CONTAINS_KEY) { // Serialize has-key String key = (String) r.serialValue(); r.serialValue(formatPropertyName(key)); } } return result; }
public void append(TextBackendEntry entry) { for (Entry<String, String> col : entry.columns.entrySet()) { String newValue = col.getValue(); String oldValue = this.column(col.getKey()); // TODO: use more general method if (col.getKey().startsWith(HugeType.PROPERTY.string())) { this.columns.put(col.getKey(), col.getValue()); continue; } // TODO: use more general method if (!col.getKey().endsWith(HugeKeys.ELEMENT_IDS.string())) { continue; } // TODO: ensure the old value is a list and json format (for index) List<Object> values = new ArrayList<>(); Object[] oldValues = JsonUtil.fromJson(oldValue, Object[].class); Object[] newValues = JsonUtil.fromJson(newValue, Object[].class); values.addAll(Arrays.asList(oldValues)); values.addAll(Arrays.asList(newValues)); // Update the old value this.column(col.getKey(), JsonUtil.toJson(values)); } }
private static void writeEntry(JsonGenerator jsonGenerator, Map<HugeKeys, Object> schema) throws IOException { jsonGenerator.writeStartObject(); for (Map.Entry<HugeKeys, Object> entry : schema.entrySet()) { jsonGenerator.writeFieldName(entry.getKey().string()); jsonGenerator.writeObject(entry.getValue()); } jsonGenerator.writeEndObject(); }
public void eliminate(TextBackendEntry entry) { for (Entry<String, String> col : entry.columns.entrySet()) { String newValue = col.getValue(); String oldValue = this.column(col.getKey()); // TODO: use more general method if (col.getKey().startsWith(HugeType.PROPERTY.string()) || col.getKey().startsWith(HugeType.EDGE_OUT.string()) || col.getKey().startsWith(HugeType.EDGE_IN.string())) { this.columns.remove(col.getKey()); continue; } // TODO: use more general method if (!col.getKey().endsWith(HugeKeys.ELEMENT_IDS.string())) { continue; } // TODO: ensure the old value is a list and json format (for index) List<Object> values = new ArrayList<>(); Object[] oldValues = JsonUtil.fromJson(oldValue, Object[].class); Object[] newValues = JsonUtil.fromJson(newValue, Object[].class); values.addAll(Arrays.asList(oldValues)); values.removeAll(Arrays.asList(newValues)); // Update the old value this.column(col.getKey(), JsonUtil.toJson(values)); } }
public void delete(CassandraSessionPool.Session session, CassandraBackendEntry.Row entry, String mainTable) { // Get name from main table by id Select select = QueryBuilder.select().from(mainTable); select.where(CassandraTable.formatEQ(HugeKeys.ID, entry.id().asLong())); ResultSet resultSet = session.execute(select); List<Row> rows = resultSet.all(); if (rows.size() == 0) { return; } String name = rows.get(0).getString(HugeKeys.NAME.string()); Update update = QueryBuilder.update(this.table); update.with(QueryBuilder.remove(ELEMENT_IDS, entry.id().asLong())); update.where(CassandraTable.formatEQ(HugeKeys.NAME, name)); session.add(update); }
@Override protected Query writeQueryCondition(Query query) { ConditionQuery result = (ConditionQuery) query; // No user-prop when serialize assert result.allSysprop(); for (Condition.Relation r : result.relations()) { // Serialize key if (query.resultType().isSchema()) { r.serialKey(((HugeKeys) r.key()).string()); } else { r.serialKey(formatSyspropName((HugeKeys) r.key())); } if (r.value() instanceof Id) { // Serialize id value r.serialValue(writeId((Id) r.value())); } else { // Serialize other type value r.serialValue(JsonUtil.toJson(r.value())); } if (r.relation() == Condition.RelationType.CONTAINS_KEY) { // Serialize has-key String key = (String) r.serialValue(); r.serialValue(formatPropertyName(key)); } } return result; }