}
@Override
protected void flushToEdgeAttributes(EdgeDraftGetter edgeDraft, Edge edge) {
if (edge.getEdgeData().getAttributes() != null) {
AttributeRow row = (AttributeRow) edge.getEdgeData().getAttributes();
for (int i = 0; i < row.countValues(); i++) {
Object val = row.getValue(i);
AttributeColumn col = row.getColumnAt(i);
Object draftValue = edgeDraft.getAttributeRow().getValue(col);
if (col.getId().equals(PropertiesColumn.EDGE_WEIGHT.getId())) {
draftValue = new Float(edgeDraft.getWeight());
}
if (col.getType().isDynamicType()) {
if (draftValue == null && val != null) {
removePoint(col.getType(), (DynamicType) val, point);
} else if (draftValue != null) {
DynamicType dynamicValue = addPoint(col.getType(), (DynamicType) val, draftValue, point);
row.setValue(col.getIndex(), dynamicValue);
}
} else if (draftValue != null && !col.getOrigin().equals(AttributeOrigin.PROPERTY)) {
row.setValue(col.getIndex(), draftValue);
}
}
}
}