protected final List<Object> idColumnValue(EdgeId edgeId) { List<Object> list = new ArrayList<>(5); list.add(IdUtil.writeString(edgeId.ownerVertexId())); list.add(edgeId.direction().code()); list.add(edgeId.edgeLabelId().asLong()); list.add(edgeId.sortValues()); list.add(IdUtil.writeString(edgeId.otherVertexId())); return list; }
@Override protected List<Object> idColumnValue(Id id) { EdgeId edgeId; if (!(id instanceof EdgeId)) { String[] idParts = EdgeId.split(id); if (idParts.length == 1) { // Delete edge by label return Arrays.asList((Object[]) idParts); } id = IdUtil.readString(id.asString()); edgeId = EdgeId.parse(id.asString()); } else { edgeId = (EdgeId) id; } E.checkState(edgeId.direction() == this.direction, "Can't query %s edges from %s edges table", edgeId.direction(), this.direction); List<Object> list = new ArrayList<>(5); list.add(IdUtil.writeString(edgeId.ownerVertexId())); list.add(edgeId.direction().code()); list.add(edgeId.edgeLabelId().asLong()); list.add(edgeId.sortValues()); list.add(IdUtil.writeString(edgeId.otherVertexId())); return list; }
@Override protected List<Object> idColumnValue(Id id) { EdgeId edgeId; if (!(id instanceof EdgeId)) { String[] idParts = EdgeId.split(id); if (idParts.length == 1) { // Delete edge by label return Arrays.asList((Object[]) idParts); } id = IdUtil.readString(id.asString()); edgeId = EdgeId.parse(id.asString()); } else { edgeId = (EdgeId) id; } E.checkState(edgeId.direction() == this.direction, "Can't query %s edges from %s edges table", edgeId.direction(), this.direction); List<Object> list = new ArrayList<>(5); list.add(IdUtil.writeString(edgeId.ownerVertexId())); list.add(edgeId.direction().code()); list.add(edgeId.edgeLabelId().asLong()); list.add(edgeId.sortValues()); list.add(IdUtil.writeString(edgeId.otherVertexId())); return list; }
private Delete buildDelete(Id label, String ownerVertex, Directions direction) { Delete delete = QueryBuilder.delete().from(edgesTable(direction)); delete.where(formatEQ(HugeKeys.OWNER_VERTEX, ownerVertex)); delete.where(formatEQ(HugeKeys.DIRECTION, direction.code())); delete.where(formatEQ(HugeKeys.LABEL, label.asLong())); return delete; }
@Override protected Query writeQueryEdgeCondition(Query query) { ConditionQuery result = (ConditionQuery) query; for (Condition.Relation r : result.relations()) { Object value = r.value(); if (value instanceof Id) { if (r.key() == HugeKeys.OWNER_VERTEX || r.key() == HugeKeys.OTHER_VERTEX) { // Serialize vertex id r.serialValue(IdUtil.writeString((Id) value)); } else { // Serialize label id r.serialValue(((Id) value).asObject()); } } else if (value instanceof Directions) { r.serialValue(((Directions) value).code()); } } return null; }
protected TableBackendEntry.Row formatEdge(HugeEdge edge) { EdgeId id = edge.idWithDirection(); TableBackendEntry.Row row = new TableBackendEntry.Row(edge.type(), id); // Id: ownerVertex + direction + edge-label + sortValues + otherVertex row.column(HugeKeys.OWNER_VERTEX, IdUtil.writeString(id.ownerVertexId())); row.column(HugeKeys.DIRECTION, id.direction().code()); row.column(HugeKeys.LABEL, id.edgeLabelId().asLong()); row.column(HugeKeys.SORT_VALUES, id.sortValues()); row.column(HugeKeys.OTHER_VERTEX, IdUtil.writeString(id.otherVertexId())); this.formatProperties(edge, row); return row; }
@Override public BackendEntry writeEdgeProperty(HugeEdgeProperty<?> prop) { HugeEdge edge = prop.element(); EdgeId id = edge.idWithDirection(); TableBackendEntry.Row row = new TableBackendEntry.Row(edge.type(), id); // Id: ownerVertex + direction + edge-label + sortValues + otherVertex row.column(HugeKeys.OWNER_VERTEX, IdUtil.writeString(id.ownerVertexId())); row.column(HugeKeys.DIRECTION, id.direction().code()); row.column(HugeKeys.LABEL, id.edgeLabelId().asLong()); row.column(HugeKeys.SORT_VALUES, id.sortValues()); row.column(HugeKeys.OTHER_VERTEX, IdUtil.writeString(id.otherVertexId())); // Format edge property this.formatProperty(prop, row); TableBackendEntry entry = newBackendEntry(row); entry.subId(IdGenerator.of(prop.key())); return entry; }
protected final List<Object> idColumnValue(EdgeId edgeId) { List<Object> list = new ArrayList<>(5); list.add(IdUtil.writeString(edgeId.ownerVertexId())); list.add(edgeId.direction().code()); list.add(edgeId.edgeLabelId().asLong()); list.add(edgeId.sortValues()); list.add(IdUtil.writeString(edgeId.otherVertexId())); return list; }
@Override protected List<Object> idColumnValue(Id id) { EdgeId edgeId; if (!(id instanceof EdgeId)) { String[] idParts = EdgeId.split(id); if (idParts.length == 1) { // Delete edge by label return Arrays.asList((Object[]) idParts); } id = IdUtil.readString(id.asString()); edgeId = EdgeId.parse(id.asString()); } else { edgeId = (EdgeId) id; } E.checkState(edgeId.direction() == this.direction, "Can't query %s edges from %s edges table", edgeId.direction(), this.direction); List<Object> list = new ArrayList<>(5); list.add(IdUtil.writeString(edgeId.ownerVertexId())); list.add(edgeId.direction().code()); list.add(edgeId.edgeLabelId().asLong()); list.add(edgeId.sortValues()); list.add(IdUtil.writeString(edgeId.otherVertexId())); return list; }
@Override protected List<Object> idColumnValue(Id id) { EdgeId edgeId; if (!(id instanceof EdgeId)) { String[] idParts = EdgeId.split(id); if (idParts.length == 1) { // Delete edge by label return Arrays.asList((Object[]) idParts); } id = IdUtil.readString(id.asString()); edgeId = EdgeId.parse(id.asString()); } else { edgeId = (EdgeId) id; } E.checkState(edgeId.direction() == this.direction, "Can't query %s edges from %s edges table", edgeId.direction(), this.direction); List<Object> list = new ArrayList<>(5); list.add(IdUtil.writeString(edgeId.ownerVertexId())); list.add(edgeId.direction().code()); list.add(edgeId.edgeLabelId().asLong()); list.add(edgeId.sortValues()); list.add(IdUtil.writeString(edgeId.otherVertexId())); return list; }
private Delete buildDelete(Id label, String ownerVertex, Directions direction) { Delete delete = QueryBuilder.delete().from(edgesTable(direction)); delete.where(formatEQ(HugeKeys.OWNER_VERTEX, ownerVertex)); delete.where(formatEQ(HugeKeys.DIRECTION, direction.code())); delete.where(formatEQ(HugeKeys.LABEL, label.asLong())); return delete; }
@Override protected Id writeQueryEdgeCondition(Query query) { ConditionQuery result = (ConditionQuery) query; for (Condition.Relation r : result.relations()) { Object value = r.value(); if (value instanceof Id) { if (r.key() == HugeKeys.OWNER_VERTEX || r.key() == HugeKeys.OTHER_VERTEX) { // Serialize vertex id r.serialValue(IdUtil.writeString((Id) value)); } else { // Serialize label id r.serialValue(((Id) value).asObject()); } } else if (value instanceof Directions) { r.serialValue(((Directions) value).code()); } } return null; }
protected TableBackendEntry.Row formatEdge(HugeEdge edge) { EdgeId id = edge.idWithDirection(); TableBackendEntry.Row row = new TableBackendEntry.Row(edge.type(), id); // Id: ownerVertex + direction + edge-label + sortValues + otherVertex row.column(HugeKeys.OWNER_VERTEX, IdUtil.writeString(id.ownerVertexId())); row.column(HugeKeys.DIRECTION, id.direction().code()); row.column(HugeKeys.LABEL, id.edgeLabelId().asLong()); row.column(HugeKeys.SORT_VALUES, id.sortValues()); row.column(HugeKeys.OTHER_VERTEX, IdUtil.writeString(id.otherVertexId())); this.formatProperties(edge, row); return row; }
@Override public BackendEntry writeEdgeProperty(HugeEdgeProperty<?> prop) { HugeEdge edge = prop.element(); EdgeId id = edge.idWithDirection(); TableBackendEntry.Row row = new TableBackendEntry.Row(edge.type(), id); // Id: ownerVertex + direction + edge-label + sortValues + otherVertex row.column(HugeKeys.OWNER_VERTEX, IdUtil.writeString(id.ownerVertexId())); row.column(HugeKeys.DIRECTION, id.direction().code()); row.column(HugeKeys.LABEL, id.edgeLabelId().asLong()); row.column(HugeKeys.SORT_VALUES, id.sortValues()); row.column(HugeKeys.OTHER_VERTEX, IdUtil.writeString(id.otherVertexId())); // Format edge property this.formatProperty(prop, row); TableBackendEntry entry = newBackendEntry(row); entry.subId(IdGenerator.of(prop.key())); return entry; }