edu.isi.karma.rep.Node.getNestedTable()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(12.1k)|赞(0)|评价(0)|浏览(89)

本文整理了Java中edu.isi.karma.rep.Node.getNestedTable()方法的一些代码示例,展示了Node.getNestedTable()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Node.getNestedTable()方法的具体详情如下:
包路径:edu.isi.karma.rep.Node
类名称:Node
方法名:getNestedTable

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);
      }
    }
  }
}

相关文章