| 88 | | printSchema(xml, Tokens.NODE, ns, null); |
|---|
| 89 | | printSchema(xml, Tokens.EDGE, es, new String[] { |
|---|
| 90 | | graph.getEdgeSourceField(), graph.getEdgeTargetField() |
|---|
| 91 | | }); |
|---|
| | 101 | |
|---|
| | 102 | if (graphHasNodes) { |
|---|
| | 103 | printSchema(xml, Tokens.NODE, ns, null); |
|---|
| | 104 | } |
|---|
| | 105 | |
|---|
| | 106 | if (graphHasEdges) { |
|---|
| | 107 | printSchema(xml, Tokens.EDGE, es, new String[] { |
|---|
| | 108 | graph.getEdgeSourceField(), graph.getEdgeTargetField() |
|---|
| | 109 | }); |
|---|
| | 110 | } |
|---|
| 99 | | xml.comment("nodes"); |
|---|
| 100 | | Iterator nodes = graph.nodes(); |
|---|
| 101 | | while ( nodes.hasNext() ) { |
|---|
| 102 | | Node n = (Node)nodes.next(); |
|---|
| 103 | | |
|---|
| 104 | | if ( ns.getColumnCount() > 0 ) { |
|---|
| 105 | | xml.start(Tokens.NODE, Tokens.ID, "n" + String.valueOf(n.getRow())); |
|---|
| 106 | | for ( int i=0; i<ns.getColumnCount(); ++i ) { |
|---|
| 107 | | String field = ns.getColumnName(i); |
|---|
| 108 | | if(n.get(field) != null) { |
|---|
| 109 | | xml.contentTag(Tokens.DATA, Tokens.KEY, field.toLowerCase(), n.get(field).toString()); |
|---|
| 110 | | } |
|---|
| 111 | | } |
|---|
| | 118 | if (graphHasNodes) { |
|---|
| | 119 | xml.comment("nodes"); |
|---|
| | 120 | Iterator nodes = graph.nodes(); |
|---|
| | 121 | while ( nodes.hasNext() ) { |
|---|
| | 122 | Node n = (Node)nodes.next(); |
|---|
| | 123 | |
|---|
| | 124 | if ( ns.getColumnCount() > 0 ) { |
|---|
| | 125 | xml.start(Tokens.NODE, Tokens.ID, "n" + String.valueOf(n.getRow())); |
|---|
| | 126 | for ( int i=0; i<ns.getColumnCount(); ++i ) { |
|---|
| | 127 | String field = ns.getColumnName(i); |
|---|
| | 128 | if(n.get(field) != null) { |
|---|
| | 129 | xml.contentTag(Tokens.DATA, Tokens.KEY, field.toLowerCase(), n.get(field).toString()); |
|---|
| | 130 | } |
|---|
| | 131 | } |
|---|
| 122 | | String[] attr = new String[]{Tokens.ID, Tokens.SOURCE, Tokens.TARGET}; |
|---|
| 123 | | String[] vals = new String[3]; |
|---|
| 124 | | |
|---|
| 125 | | xml.comment("edges"); |
|---|
| 126 | | Iterator edges = graph.edges(); |
|---|
| 127 | | while ( edges.hasNext() ) { |
|---|
| 128 | | Edge e = (Edge)edges.next(); |
|---|
| 129 | | vals[0] = "e" + String.valueOf(e.getRow()); |
|---|
| 130 | | vals[1] = "n" + String.valueOf(e.getSourceNode().getRow()); |
|---|
| 131 | | vals[2] = "n" + String.valueOf(e.getTargetNode().getRow()); |
|---|
| 132 | | |
|---|
| 133 | | if ( es.getColumnCount() > 2 ) { |
|---|
| 134 | | xml.start(Tokens.EDGE, attr, vals, 3); |
|---|
| 135 | | for ( int i=0; i<es.getColumnCount(); ++i ) { |
|---|
| 136 | | String field = es.getColumnName(i); |
|---|
| 137 | | if ( field.equals(graph.getEdgeSourceField()) || |
|---|
| 138 | | field.equals(graph.getEdgeTargetField()) ) |
|---|
| 139 | | continue; |
|---|
| | 142 | if (graphHasEdges) { |
|---|
| | 143 | String[] attr = new String[]{Tokens.ID, Tokens.SOURCE, Tokens.TARGET}; |
|---|
| | 144 | String[] vals = new String[3]; |
|---|
| | 145 | |
|---|
| | 146 | xml.comment("edges"); |
|---|
| | 147 | Iterator edges = graph.edges(); |
|---|
| | 148 | while ( edges.hasNext() ) { |
|---|
| | 149 | Edge e = (Edge)edges.next(); |
|---|
| | 150 | vals[0] = "e" + String.valueOf(e.getRow()); |
|---|
| | 151 | vals[1] = "n" + String.valueOf(e.getSourceNode().getRow()); |
|---|
| | 152 | vals[2] = "n" + String.valueOf(e.getTargetNode().getRow()); |
|---|
| | 153 | |
|---|
| | 154 | if ( es.getColumnCount() > 2 ) { |
|---|
| | 155 | xml.start(Tokens.EDGE, attr, vals, 3); |
|---|
| | 156 | for ( int i=0; i<es.getColumnCount(); ++i ) { |
|---|
| | 157 | String field = es.getColumnName(i); |
|---|
| | 158 | if ( field.equals(graph.getEdgeSourceField()) || |
|---|
| | 159 | field.equals(graph.getEdgeTargetField()) ) |
|---|
| | 160 | continue; |
|---|