Ignore:
Timestamp:
03/18/13 11:50:04 (11 years ago)
Author:
pharms
Message:
  • extended task tree model with support for optionalities
  • improved performance of task tree handling
  • improved visualization of task trees
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeimpl/TaskTreeNode.java

    r1113 r1126  
    1515package de.ugoe.cs.autoquest.tasktrees.treeimpl; 
    1616 
    17 import java.util.ArrayList; 
     17import java.util.Collections; 
     18import java.util.LinkedList; 
    1819import java.util.List; 
    1920 
     
    8586    public synchronized List<ITaskTreeNode> getChildren() { 
    8687        if ((children == null) || (children.size() == 0)) { 
    87             return new ArrayList<ITaskTreeNode>(); 
    88         } 
    89  
    90         return children.subList(0, children.size()); 
     88            return new LinkedList<ITaskTreeNode>(); 
     89        } 
     90 
     91        return Collections.unmodifiableList(children); 
    9192    } 
    9293 
     
    154155    @Override 
    155156    public synchronized String toString() { 
    156         if (children == null) { 
    157             return name + "(" + id + ")"; 
    158         } 
    159         else { 
    160             return name + "(" + id + ", " + children.size() + " children)"; 
    161         } 
     157        StringBuffer result = new StringBuffer(); 
     158        result.append(name); 
     159        result.append('('); 
     160        result.append(id); 
     161         
     162        if (description != null) { 
     163            result.append(", "); 
     164            result.append(description); 
     165        } 
     166         
     167        if (children != null) { 
     168            result.append(", "); 
     169            result.append(children.size()); 
     170            result.append(" children"); 
     171        } 
     172         
     173        result.append(')'); 
     174        return result.toString(); 
    162175    } 
    163176 
     
    177190    synchronized void addChild(ITaskTreeNode child) { 
    178191        if (children == null) { 
    179             children = new ArrayList<ITaskTreeNode>(); 
     192            children = new LinkedList<ITaskTreeNode>(); 
    180193        } 
    181194 
     
    188201    synchronized void addChild(int index, ITaskTreeNode child) { 
    189202        if (children == null) { 
    190             children = new ArrayList<ITaskTreeNode>(); 
     203            children = new LinkedList<ITaskTreeNode>(); 
    191204        } 
    192205 
     
    216229 
    217230            if (children != null) { 
    218                 clone.children = new ArrayList<ITaskTreeNode>(); 
     231                clone.children = new LinkedList<ITaskTreeNode>(); 
    219232 
    220233                for (ITaskTreeNode child : children) { 
Note: See TracChangeset for help on using the changeset viewer.