@Override public double value(int attIndex) { Class<?> c = tuple.getSchema().getColumnType(attIndex); double value = -1; if (ObviousWekaUtils.isNumeric(c)) { return Double.valueOf(tuple.get(attIndex).toString()); } else if (ObviousWekaUtils.isString(c)) { return Double.valueOf(attribute(attIndex).indexOfValue( tuple.getString(attIndex))); } else if (ObviousWekaUtils.isDate(c)) { return tuple.getDate(attIndex).getTime(); } return value; }
@Override public int addRow(Tuple tuple) { if (tuple.getSchema().equals(getSchema())) { String colName = tuple.getString("name"); Class<?> c = (Class<?>) tuple.get("type"); Object value = tuple.get("default"); addColumn(colName, c, value); } this.fireTableEvent(getColumnCount(), getColumnCount(), TableListener.ALL_COLUMN, TableListener.INSERT); return getColumnCount(); }
@Override public int numValues() { return tuple.getSchema().getColumnCount(); }
@Override public Object getAttributeValuetAt(Tuple tuple, String alias) { int colId = -1; for (int i = 0; i < vis.getTable().getColumnCount(); i++) { if (vis.getVisualColumn(getAliasMap().get(alias)) != null && vis.getTable().getColumnName(i).equals( vis.getVisualColumn(getAliasMap().get(alias)).getName())) { colId = i; break; } } if (colId != -1) { return vis.getTable().getValueAt(tuple.getRow(), colId); } else { return null; } }
@Override public void deleteAttributeAt(int position) { tuple.set(position, null); }
/** * Adds a row to the table (tuple). * @param tuple tuple to insert in the table. * @return row count */ public int addRow(Tuple tuple) { try { this.beginEdit(TableListener.ALL_COLUMN); int r = table.addRow(); for (int i = 0; i < tuple.getSchema().getColumnCount(); i++) { this.set(r, tuple.getSchema().getColumnName(i), tuple.get(i)); } this.endEdit(TableListener.ALL_COLUMN); this.fireTableEvent(r, r, TableListener.ALL_COLUMN, TableListener.INSERT); return r; } catch (Exception e) { throw new ObviousRuntimeException(e); } }
@Override public int numAttributes() { return tuple.getSchema().getColumnCount(); }
/** * Ediflow dedicated method. * @param tuple an obvious tuple * @param alias an alias * @return an attribute value */ public Object getAttributeValueAtOptimized(Tuple tuple, String alias) { prefuse.data.tuple.TupleSet tupleSet = vis.getVisualGroup(groupName); prefuse.visual.VisualTable visualTable; if (tupleSet instanceof prefuse.visual.VisualTable) { visualTable = (prefuse.visual.VisualTable) tupleSet; } else if (tupleSet instanceof prefuse.data.Graph) { prefuse.data.Graph g = (prefuse.data.Graph) tupleSet; visualTable = (VisualTable) (tuple instanceof Node ? g.getNodeTable() : g.getEdgeTable()); } else { return null; } if (visualTable.getSchema().getColumnIndex(getAliasMap().get(alias)) != -1) { return visualTable.get(tuple.getRow(), alias); } else { return null; } }
@Override public int addRow(Tuple tuple) { Schema tupleSchema = tuple.getSchema(); for (int i = 0; i < tupleSchema.getColumnCount(); i++) { if (!tupleSchema.getColumnName(i).equals(schema.getColumnName(i)) || !tupleSchema.getColumnType(i).equals(schema.getColumnType(i))) { return -1; } } Instance inst = new Instance(schema.getColumnCount()); for (int i = 0; i < tuple.getSchema().getColumnCount(); i++) { Attribute att = instances.attribute(i); if (att.isNumeric()) { inst.setValue(att, Double.parseDouble(tuple.get(i).toString())); } else if (att.isString() || att.isNominal()) { inst.setValue(att, tuple.getString(i)); } else if (att.isDate()) { try { inst.setValue(att, att.parseDate(tuple.getDate(i).toString())); } catch (ParseException e) { e.printStackTrace(); } } } instances.add(inst); return getRowCount(); }
if (canAddRow()) { int rowId = table.addRow(); for (int i = 0; i < tuple.getSchema().getColumnCount(); i++) { String field = tuple.getSchema().getColumnName(i); if (schema.hasColumn(field)) { TypedFormat format = formatFactory.getFormat( tuple.getSchema().getColumnType(i).getSimpleName()); if (format instanceof FormatFactoryImpl.TypedDecimalFormat) { table.setValueAt(tuple.get(i).toString(), rowId, schema.getColumnIndex(field)); } else { StringBuffer v = format.format(tuple.get(i), new StringBuffer(), new FieldPosition(0)); table.setValueAt(v.toString(), rowId, schema.getColumnIndex(field));
@Override public double[] toDoubleArray() { for (int i = tuple.getSchema().getColumnCount() - 1; i >= 0; i--) { m_AttValues[i] = this.value(i); } return m_AttValues; }
@Override public void setValue(int attIndex, double value) { Class<?> c = tuple.getSchema().getColumnType(attIndex); if (ObviousWekaUtils.isNumeric(c)) { tuple.set(attIndex, value); } else if (ObviousWekaUtils.isString(c)) { return; } else if (ObviousWekaUtils.isDate(c)) { Date date = new Date((long) value); tuple.set(attIndex, date); } }
String[] schemaCol = new String[schemaSize + 1]; for (int i = schemaSize; i >= 0; i--) { schemaBoolean[i] = tuple.getSchema().hasColumn( visualTable.getColumnName(i)); schemaCol[i] = visualTable.getColumnName(i); for (int j = schemaSize; j >= 0; j--) { if (schemaBoolean[i] && !visualTable.get(i, schemaCol[j]).equals( tuple.get(schemaCol[j]))) { find = false; break;
/** * Constructor. * @param tuple an obvious tuple */ public ObviousWekaInstance(Tuple tuple, Instances instances) { this.tuple = tuple; this.instances = instances; this.m_Dataset = this.instances; this.m_Weight = 1.0; this.m_AttValues = new double[tuple.getSchema().getColumnCount()]; this.m_AttValues = toDoubleArray(); }