本文整理了Java中edu.isi.karma.rep.Node.getNestedTable()
方法的一些代码示例,展示了Node.getNestedTable()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getNestedTable()
方法的具体详情如下:
包路径:edu.isi.karma.rep.Node
类名称:Node
方法名:getNestedTable
暂无
代码示例来源:origin: usc-isi-i2/Web-Karma
public void removeNode(String hNodeId) {
nodes.remove(hNodeId);
for (Node n : nodes.values()) {
Table nestedTable = n.getNestedTable();
if (nestedTable != null) {
nestedTable.removeNodeFromDataTable(hNodeId);
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
/**
* Convenience method to add nested rows
*
* @param hNodeId
* , that contains the nested table where we want to add a row.
* @param factory
* @return the added row.
*/
public Row addNestedRow(String hNodeId, RepFactory factory) {
return getNode(hNodeId).getNestedTable().addRow(factory);
}
代码示例来源:origin: usc-isi-i2/Web-Karma
private void removeDataTableRecursive(Table table) {
for (Row r : table.getRows(0, table.getNumRows(), SuperSelectionManager.DEFAULT_SELECTION)) {
for (Node n : r.getNodes()) {
if (n.hasNestedTable()) {
removeDataTableRecursive(n.getNestedTable());
}
nodes.remove(n.id);
}
rows.remove(r.id);
}
tables.remove(table.id);
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public static void getDatatable(Table dataTable, HTable headerTable, List<Table> parentTables, SuperSelection sel) {
if (dataTable == null)
return;
if (dataTable.getHTableId().compareTo(headerTable.getId()) == 0)
parentTables.add(dataTable);
else {
for (Row row : dataTable.getRows(0, dataTable.getNumRows(), sel)) {
for (Node n : row.getNodes()) {
getDatatable(n.getNestedTable(), headerTable, parentTables, sel);
}
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
private static String getHashValueRecurse(Row row, List<String> HNodeIds) {
List<String> hashString = new ArrayList<>();
for (String HNodeid : HNodeIds) {
Node n = row.getNode(HNodeid);
if (n.hasNestedTable()) {
Table nestedTable = n.getNestedTable();
for (Row nestedRow : nestedTable.getRows(0, nestedTable.getNumRows(), SuperSelectionManager.DEFAULT_SELECTION)) {
List<String> ids = new ArrayList<>();
for (Node node : nestedRow.getNodes()) {
ids.add(node.getHNodeId());
}
hashString.add(getHashValue(nestedRow, ids));
}
}
else {
Map<String, String> tmp = hashTable.get(row.getId());
hashString.add(tmp.get(n.getId()));
}
}
Collections.sort(hashString);
String hash = "";
for (String t : hashString) {
hash += t;
}
return hash;
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public Node getNeighborWithNestedColumnByIndex(String hNodeId, RepFactory factory, String nestedColumnName, int index) {
if (nodes.containsKey(hNodeId)) {
Node nodeWithNestedColumn = nodes.get(hNodeId);
Table nestedTable = nodeWithNestedColumn.getNestedTable();
if(nestedTable != null)
{
String [] nestedColumnPath = nestedColumnName.split("/");
String nestedHNodeId = factory.getHTable(nestedTable.getHTableId()).getHNodeIdFromColumnName(nestedColumnPath[0]);
if (null != nestedHNodeId && nestedColumnPath.length ==1) {
Row r = nestedTable.getRow(index);
if(r != null)
{
return r.getNeighbor(nestedHNodeId);
}
}
else
{
return nestedTable.getRow(0).getNeighborWithNestedColumnByIndex(nestedHNodeId, factory, nestedColumnName.substring(nestedColumnName.indexOf("/")+1), index);
}
}
}
return null;
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public HTable addNestedHTable(HNode hNode, String key, Row row) {
HTable ht = hNode.getNestedTable();
if (ht == null) {
ht = hNode.addNestedTable(createNestedTableName(key),
worksheet, factory);
// Check for all the nodes that have value and nested tables
Collection<Node> nodes = new ArrayList<>();
worksheet.getDataTable().collectNodes(
hNode.getHNodePath(factory), nodes, SuperSelectionManager.DEFAULT_SELECTION);
for (Node node : nodes) {
if (node.getBelongsToRow() == row)
break;
// Add an empty row for each nested table that does not have any
// row
if (node.getNestedTable().getNumRows() == 0) {
addEmptyRow(node.getNestedTable(), hNode);
}
}
}
return ht;
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public static Object cloneNodeToJSON(HNode hNode, Node node, SuperSelection sel) {
if (node.hasNestedTable()) {
HTable nestHT = hNode.getNestedTable();
Table dataTable = node.getNestedTable();
JSONArray array = new JSONArray();
for (Row row : dataTable.getRows(0, dataTable.getNumRows(), sel)) {
JSONObject obj = new JSONObject();
for (HNode hnode : nestHT.getHNodes()) {
Node n = row.getNode(hnode.getId());
obj.put(hnode.getColumnName(),cloneNodeToJSON(hnode, n, sel));
}
array.put(obj);
}
return array;
}
else
return node.getValue().asString();
}
代码示例来源:origin: usc-isi-i2/Web-Karma
private static void computeHashValue(Row row, List<String> HNodeIds) {
for (String HNodeid : HNodeIds) {
Node n = row.getNode(HNodeid);
if (n.hasNestedTable()) {
Table nestedTable = n.getNestedTable();
for (Row nestedRow : nestedTable.getRows(0, nestedTable.getNumRows(), SuperSelectionManager.DEFAULT_SELECTION)) {
List<String> ids = new ArrayList<>();
for (Node node : nestedRow.getNodes()) {
ids.add(node.getHNodeId());
}
computeHashValue(nestedRow, ids);
}
}
else {
Map<String, String> tmp = hashTable.get(row.getId());
if (tmp == null)
tmp = new ConcurrentHashMap<>();
String value = n.getValue().asString();
value = DigestUtils.shaHex(value);
tmp.put(n.getId(), value);
hashTable.put(row.getId(), tmp);
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public Object serializeToJSON(SuperSelection selection, RepFactory factory) {
if (this.hasNestedTable()) {
JSONArray array = new JSONArray();
Table t = this.getNestedTable();
HTable ht = factory.getHTable(t.getHTableId());
for (Row r : t.getRows(0, t.getNumRows(), selection)) {
JSONObject obj = new JSONObject();
for (HNode hNode : ht.getHNodes()) {
obj.put(hNode.getColumnName(), r.getNeighbor(hNode.getId()).serializeToJSON(selection, factory));
}
array.put(obj);
}
return array;
}
else {
return this.getValue().asString();
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public static void cloneDataTableExistingRow(Row oldRow, Row newRow, List<HNode> hNodes, RepFactory factory, Map<String, String> mapping, SuperSelection sel) {
for (HNode hnode : hNodes) {
HNode newHNode = factory.getHNode(mapping.get(hnode.getId()));
Node oldNode = oldRow.getNode(hnode.getId());
Node newNode = newRow.getNode(newHNode.getId());
if (oldNode == null)
continue;
if (!oldNode.hasNestedTable()) {
newNode.setValue(oldNode.getValue(), oldNode.getStatus(), factory);
}
else {
cloneDataTable(oldNode.getNestedTable(), newNode.getNestedTable(), newHNode.getNestedTable(), hnode.getNestedTable().getSortedHNodes(), factory, sel);
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
private void setCollectedNodeValues(HNodePath path, List<String> nodes,
List<Row> rows, int nodeIdx, RepFactory factory, SuperSelection sel) {
RowIterator: for (Row r : rows) {
if (sel.isSelected(r))
continue;
Node n = r.getNode(path.getFirst().getId());
if (n == null) {
continue RowIterator;
}
// Check if the path has only one HNode
if (path.getRest() == null || path.getRest().isEmpty()) {
n.setValue(nodes.get(nodeIdx++), NodeStatus.original, factory);
continue RowIterator;
}
// Check if the node has a nested table
if (n.hasNestedTable()) {
int numRows = n.getNestedTable().getNumRows();
if (numRows == 0)
continue RowIterator;
List<Row> rowsNestedTable = n.getNestedTable().getRows(0,
numRows, sel);
if (rowsNestedTable != null && !rowsNestedTable.isEmpty()) {
setCollectedNodeValues(path.getRest(), nodes,
rowsNestedTable, nodeIdx, factory, sel);
continue RowIterator;
}
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
void addNodeToDataTable(HNode newHNode, Table table, RepFactory factory) {
HTable ht = factory.getHTable(table.getHTableId());
if (ht.contains(newHNode)) {
Node newNode = factory.createNode(newHNode.getId(),
getWorksheetId());
addNode(newNode);
} else {
// We don't know where the nested table is, so we have to
// try all of them.
for (Node n : nodes.values()) {
Table nestedTable = n.getNestedTable();
if (nestedTable != null) {
nestedTable.addNodeToDataTable(newHNode, factory);
}
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public void empty() {
RepFactory factory = workspace.getFactory();
HTable ht = factory.getHTable(factory.getHNode(hNodeId).getHTableId());
List<Table> tables = new ArrayList<>();
CloneTableUtils.getDatatable(worksheet.getDataTable(), ht, tables, selection);
for (Table t : tables) {
for (Row r : t.getRows(0, t.getNumRows(), selection)) {
Node newNode = r.getNeighbor(newhNodeId);
newNode.getNestedTable().removeAllRows();
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
private boolean addJSONObjectValues(JSONObject obj, Worksheet worksheet, HTable htable, RepFactory factory, Row row, String newHNodeId) {
HNode ndid = htable.getHNode(newHNodeId);
HTable nestedHTable = ndid.getNestedTable();
if (nestedHTable == null)
nestedHTable = ndid.addNestedTable("Table for test",
worksheet, factory);
Table nestedTable = row.getNode(newHNodeId).getNestedTable();
Row r = nestedTable.addRow(factory);
boolean flag = false;
for (Object key : IteratorUtils.toList(obj.keys())) {
Object value = obj.get(key.toString());
HNode h = nestedHTable.getHNodeFromColumnName(key.toString());
if ( h == null) {
h = nestedHTable.addHNode(key.toString(), type, worksheet, factory);
}
outputColumns.add(h.getId());
//
if (value instanceof String)
flag |= addValues(r.getNode(h.getId()), (String)value, factory, nestedTable);
if (value instanceof JSONObject)
flag |= addJSONObjectValues((JSONObject)value, worksheet, nestedHTable, factory, r, h.getId());
if (value instanceof JSONArray)
flag |= addJSONArrayValues((JSONArray) value, worksheet, nestedHTable, factory,r, h.getId());
}
if (!flag)
nestedTable.removeRow(r);
return flag;
}
代码示例来源:origin: usc-isi-i2/Web-Karma
private void glueTopLevel(Worksheet oldws, Workspace workspace, List<HNode> hnodes, RepFactory factory) {
HTable parentHT = oldws.getHeaders();
SuperSelection selection = getSuperSelection(oldws);
HNode newNode = parentHT.addHNode(parentHT.getNewColumnName("Glue"), HNodeType.Transformation, oldws, factory);
newhNodeId = newNode.getId();
outputColumns.add(newhNodeId);
HTable newht = newNode.addNestedTable(newNode.getColumnName(), oldws, factory);
List<HNode> childHNodes = new ArrayList<>();
for (HNode hnode : hnodes) {
if (hnode.hasNestedTable()) {
for (HNode hn : hnode.getNestedTable().getHNodes()) {
childHNodes.add(hn);
}
}
}
Map<String, String> mapping = CloneTableUtils.cloneHTable(newht, oldws, factory, childHNodes, true);
for (Entry<String, String> entry : mapping.entrySet()) {
outputColumns.add(entry.getValue());
}
ArrayList<Row> rows = oldws.getDataTable().getRows(0, oldws.getDataTable().getNumRows(), selection);
for (Row row : rows) {
Table nestedTable = row.getNeighbor(newNode.getId()).getNestedTable();
generateRows(hnodes, selection, row, nestedTable, factory, mapping, childHNodes, newht);
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public static Row cloneDataTable(Row oldRow, Table newDataTable, HTable newHTable, List<HNode> hNodes, RepFactory factory, SuperSelection sel) {
Row newRow = newDataTable.addRow(factory);
for (HNode hnode : hNodes) {
HNode newHNode = newHTable.getHNodeFromColumnName(hnode.getColumnName());
if (newHNode == null)
continue;
Node oldNode = oldRow.getNode(hnode.getId());
Node newNode = newRow.getNode(newHNode.getId());
if (oldNode == null)
continue;
if (!oldNode.hasNestedTable()) {
newNode.setValue(oldNode.getValue(), oldNode.getStatus(), factory);
}
else {
cloneDataTable(oldNode.getNestedTable(), newNode.getNestedTable(), newHNode.getNestedTable(), hnode.getNestedTable().getSortedHNodes(), factory, sel);
}
}
return newRow;
}
代码示例来源:origin: usc-isi-i2/Web-Karma
for (String rowid : r) {
Row cur = factory.getRow(rowid);
Table dataTable = lastRow.getNeighborByColumnName("Values", factory).getNestedTable();
CloneTableUtils.cloneDataTable(cur, dataTable, newValueTable, valuehnodes, factory, selection);
代码示例来源:origin: usc-isi-i2/Web-Karma
public void addEmptyRow(Table nestedTable, HNode hNode) {
HTable headersNestedTable = hNode.getNestedTable();
Row emptyRow = nestedTable.addRow(factory);
numObjects++;
if (maxNumLines > 0 && numObjects >= maxNumLines)
return;
for (HNode nestedHNode : headersNestedTable.getHNodes()) {
if (nestedHNode.hasNestedTable()) {
addEmptyRow(emptyRow.getNode(nestedHNode.getId())
.getNestedTable(), nestedHNode);
} else {
emptyRow.setValue(nestedHNode.getId(), "", factory);
}
}
}
代码示例来源:origin: usc-isi-i2/Web-Karma
public static void cloneDataTable(Table oldDataTable, Table newDataTable, HTable newHTable, List<HNode> hNodes, RepFactory factory, SuperSelection sel) {
ArrayList<Row> rows = oldDataTable.getRows(0, oldDataTable.getNumRows(), sel);
for (Row row : rows) {
Row newrow = newDataTable.addRow(factory);
for (HNode hnode : hNodes) {
HNode newHNode = newHTable.getHNodeFromColumnName(hnode.getColumnName());
Node oldNode = row.getNode(hnode.getId());
Node newNode = newrow.getNode(newHNode.getId());
if (!oldNode.hasNestedTable()) {
newNode.setValue(oldNode.getValue(), oldNode.getStatus(), factory);
}
else {
cloneDataTable(oldNode.getNestedTable(), newNode.getNestedTable(), newHNode.getNestedTable(), hnode.getNestedTable().getSortedHNodes(), factory, sel);
}
}
}
}
内容来源于网络,如有侵权,请联系作者删除!