Changeset 44

Show
Ignore:
Timestamp:
02/17/10 17:12:03 (2 years ago)
Author:
ke
Message:

Extracted tree XML export methods to KahinaTree?.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • kahina/trunk/src/org/kahina/data/tree/KahinaMemTree.java

    r43 r44  
    5757     
    5858    @Override 
     59    public int getRootID() 
     60    { 
     61        return rootID; 
     62    } 
     63     
     64    @Override 
    5965        public int getRootID(int layerID) 
    6066    { 
    61         return rootID
     67        return getRootID()
    6268    } 
    6369     
     
    309315    } 
    310316     
    311     public String exportXML() 
    312     { 
    313         StringBuilder b = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); 
    314         b.append("<kahinaTree>\n"); 
    315         if (rootID != -1) 
    316         { 
    317             exportXML(b, rootID, 2); 
    318         } 
    319         b.append("</kahinaTree>\n"); 
    320         return b.toString(); 
    321     } 
    322      
    323     private void exportXML(StringBuilder b, int node, int depth) 
    324     { 
    325         createSpace(b, depth); 
    326         b.append("<node id=\"" + node + "\" caption=\"" + getNodeCaption(node) + "\" label=\"" + getEdgeLabel(node) + "\" status=\"" + getNodeStatus(node) + "\">\n"); 
    327         for (int child : getChildren(node, 0)) 
    328         { 
    329             exportXML(b, child, depth + 2); 
    330         } 
    331         createSpace(b, depth); 
    332         b.append("</node>\n"); 
    333     } 
    334      
    335     private void createSpace(StringBuilder b, int amount) 
    336     { 
    337         for (int i = 0; i < amount; i++) 
    338         { 
    339             b.append(' '); 
    340         } 
    341     } 
    342      
     317    // TODO find a good way to make this implementation-independent 
    343318    public static KahinaMemTree importXML(Document dom) 
    344319    { 
  • kahina/trunk/src/org/kahina/data/tree/KahinaTree.java

    r43 r44  
    5858 
    5959        public abstract void setRootID(int rootID); 
     60         
     61        public abstract int getRootID(); 
    6062 
    6163        public abstract int getRootID(int layerID); 
    6264 
    6365        public abstract void setPrimaryModel(KahinaTree primaryModel); 
     66     
     67    public String exportXML() 
     68    { 
     69        StringBuilder b = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); 
     70        b.append("<kahinaTree>\n"); 
     71        if (getRootID() != -1) 
     72        { 
     73            exportXML(b, getRootID(), 2); 
     74        } 
     75        b.append("</kahinaTree>\n"); 
     76        return b.toString(); 
     77    } 
     78     
     79    private void exportXML(StringBuilder b, int node, int depth) 
     80    { 
     81        createSpace(b, depth); 
     82        b.append("<node id=\"" + node + "\" caption=\"" + getNodeCaption(node) + "\" label=\"" + getEdgeLabel(node) + "\" status=\"" + getNodeStatus(node) + "\">\n"); 
     83        for (int child : getChildren(node, 0)) 
     84        { 
     85            exportXML(b, child, depth + 2); 
     86        } 
     87        createSpace(b, depth); 
     88        b.append("</node>\n"); 
     89    } 
     90     
     91    private void createSpace(StringBuilder b, int amount) 
     92    { 
     93        for (int i = 0; i < amount; i++) 
     94        { 
     95            b.append(' '); 
     96        } 
     97    } 
    6498 
    6599}