@Override public void remove(ExtendedDataRowId rowId) { ElementTypeData data = elementTypeData.get(rowId.getElementType()); if (data != null) { data.removeData(rowId); } }
@Override public void removeColumn(ExtendedDataRowId rowId, String columnName, String key, Visibility visibility) { ElementTypeData data = elementTypeData.get(rowId.getElementType()); if (data != null) { data.removeColumn(rowId, columnName, key, visibility); } }
private Map<ElementType, Map<String, List<ExtendedDataRow>>> mapExtendedDatasByElementTypeByElementId(Iterable<ExtendedDataRow> extendedData) { Map<ElementType, Map<String, List<ExtendedDataRow>>> rowsByElementTypeByElementId = new HashMap<>(); extendedData.forEach(row -> { ExtendedDataRowId rowId = row.getId(); Map<String, List<ExtendedDataRow>> elementTypeData = rowsByElementTypeByElementId.computeIfAbsent(rowId.getElementType(), key -> new HashMap<>()); List<ExtendedDataRow> elementExtendedData = elementTypeData.computeIfAbsent(rowId.getElementId(), key -> new ArrayList<>()); elementExtendedData.add(row); }); return rowsByElementTypeByElementId; }
private Map<ElementType, Map<String, List<ExtendedDataRow>>> mapExtendedDatasByElementTypeByElementId(Iterable<ExtendedDataRow> extendedData) { Map<ElementType, Map<String, List<ExtendedDataRow>>> rowsByElementTypeByElementId = new HashMap<>(); extendedData.forEach(row -> { ExtendedDataRowId rowId = row.getId(); Map<String, List<ExtendedDataRow>> elementTypeData = rowsByElementTypeByElementId.computeIfAbsent(rowId.getElementType(), key -> new HashMap<>()); List<ExtendedDataRow> elementExtendedData = elementTypeData.computeIfAbsent(rowId.getElementId(), key -> new ArrayList<>()); elementExtendedData.add(row); }); return rowsByElementTypeByElementId; }
@Override public synchronized void addData( ExtendedDataRowId rowId, String column, String key, Object value, long timestamp, Visibility visibility ) { ElementTypeData data = elementTypeData.computeIfAbsent(rowId.getElementType(), k -> new ElementTypeData()); data.addData(rowId, column, key, value, timestamp, visibility); }
@Override protected boolean isIncluded(ExtendedDataRow row) { ExtendedDataRowId rowId = row.getId(); return (elementType == null || elementType.equals(rowId.getElementType())) && (elementId == null || elementId.equals(rowId.getElementId())) && (tableName == null || tableName.equals(rowId.getTableName())); } };
@Override protected boolean isIncluded(ExtendedDataRow row) { ExtendedDataRowId rowId = row.getId(); return (elementType == null || elementType.equals(rowId.getElementType())) && (elementId == null || elementId.equals(rowId.getElementId())) && (tableName == null || tableName.equals(rowId.getTableName())); } };
@Override public int compareTo(ExtendedDataRowId other) { int i = this.getElementType().compareTo(other.getElementType()); if (i != 0) { return i; } i = this.getElementId().compareTo(other.getElementId()); if (i != 0) { return i; } i = this.getTableName().compareTo(other.getTableName()); if (i != 0) { return i; } i = this.getRowId().compareTo(other.getRowId()); if (i != 0) { return i; } return 0; }
@Override public int compareTo(ExtendedDataRowId other) { int i = this.getElementType().compareTo(other.getElementType()); if (i != 0) { return i; } i = this.getElementId().compareTo(other.getElementId()); if (i != 0) { return i; } i = this.getTableName().compareTo(other.getTableName()); if (i != 0) { return i; } i = this.getRowId().compareTo(other.getRowId()); if (i != 0) { return i; } return 0; }
protected Property getElementTypeProperty() { if (elementTypeProperty == null) { elementTypeProperty = new MutablePropertyImpl( ElementMutation.DEFAULT_KEY, ExtendedDataRow.ELEMENT_TYPE, getId().getElementType().name(), null, null, null, null, FetchHints.ALL ); } return elementTypeProperty; }
protected Property getElementTypeProperty() { if (elementTypeProperty == null) { elementTypeProperty = new MutablePropertyImpl( ElementMutation.DEFAULT_KEY, ExtendedDataRow.ELEMENT_TYPE, getId().getElementType().name(), null, null, null, null, FetchHints.ALL ); } return elementTypeProperty; }
@Override protected boolean isIncluded(ExtendedDataRow row) { ExtendedDataRowId rowId = row.getId(); return elementType.equals(rowId.getElementType()) && elementIdRange.isInRange(rowId.getElementId()); } };
@Override protected boolean isIncluded(ExtendedDataRow row) { ExtendedDataRowId rowId = row.getId(); return elementType.equals(rowId.getElementType()) && elementIdRange.isInRange(rowId.getElementId()); } };
public static Text createExtendedDataRowKey(ExtendedDataRowId rowId) { return createExtendedDataRowKey(rowId.getElementType(), rowId.getElementId(), rowId.getTableName(), rowId.getRowId()); }
public static Text createExtendedDataRowKey(ExtendedDataRowId rowId) { return createExtendedDataRowKey(rowId.getElementType(), rowId.getElementId(), rowId.getTableName(), rowId.getRowId()); }
public static ClientApiExtendedDataRowId toClientApiExtendedDataRowId(ExtendedDataRowId id) { return new ClientApiExtendedDataRowId( id.getElementType().name(), id.getElementId(), id.getTableName(), id.getRowId() ); }
@Override public void remove(ExtendedDataRowId rowId) { try (Handle handle = dbi.open()) { handle.execute( String.format( "delete from %s where %s=? AND %s=? AND %s=? AND %s=?", tableName, ELEMENT_TYPE_COLUMN_NAME, ELEMENT_ID_COLUMN_NAME, TABLE_NAME_COLUMN_NAME, ROW_ID_COLUMN_NAME ), rowId.getElementType().name(), rowId.getElementId(), rowId.getTableName(), rowId.getRowId() ); } }
@Override public boolean isMatch(VertexiumObject elem) { if (!(elem instanceof ExtendedDataRow)) { return false; } ExtendedDataRow row = (ExtendedDataRow) elem; ExtendedDataRowId rowId = row.getId(); for (HasExtendedDataFilter filter : filters) { if (filter.getElementType() == null || rowId.getElementType().equals(filter.getElementType()) && (filter.getElementId() == null || rowId.getElementId().equals(filter.getElementId())) && (filter.getTableName() == null || rowId.getTableName().equals(filter.getTableName()))) { return true; } } return false; } }
@Override public boolean isMatch(VertexiumObject elem) { if (!(elem instanceof ExtendedDataRow)) { return false; } ExtendedDataRow row = (ExtendedDataRow) elem; ExtendedDataRowId rowId = row.getId(); for (HasExtendedDataFilter filter : filters) { if (filter.getElementType() == null || rowId.getElementType().equals(filter.getElementType()) && (filter.getElementId() == null || rowId.getElementId().equals(filter.getElementId())) && (filter.getTableName() == null || rowId.getTableName().equals(filter.getTableName()))) { return true; } } return false; } }
@Override public void addData(ExtendedDataRowId rowId, String column, String key, Object value, long timestamp, Visibility visibility) { try (Handle handle = dbi.open()) { handle.execute( String.format( "insert into %s (%s, %s, %s, %s, %s, %s, %s, %s, %s) values (?, ?, ?, ?, ?, ?, ?, ?, ?)", tableName, ELEMENT_TYPE_COLUMN_NAME, ELEMENT_ID_COLUMN_NAME, TABLE_NAME_COLUMN_NAME, ROW_ID_COLUMN_NAME, COLUMN_COLUMN_NAME, KEY_COLUMN_NAME, VALUE_COLUMN_NAME, TIMESTAMP_COLUMN_NAME, VISIBILITY_COLUMN_NAME ), rowId.getElementType().name(), rowId.getElementId(), rowId.getTableName(), rowId.getRowId(), column, key, serializer.objectToBytes(value), timestamp, visibility.getVisibilityString() ); } }