Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  // Copyright © 2013 Solita Oy <www.solita.fi>
  // This software is released under the MIT License.
  // The license text is at http://opensource.org/licenses/MIT
  
  package fi.solita.datatree;
  
  import java.util.*;
  
  public final class Tree {
 
     private final String name;
     private final String text;
     private final List<Metametae;
     private final List<Treechildren;

    
Constructs a tree node. Tree nodes correspond to XML elements.

Parameters:
name name of this tree node. Should be a valid XML element name.
content java.lang.String, Tree or Meta instances, or arrays or java.util.Collections containing them. The following restrictions apply:
  • At most one String is allowed
  • String and Tree cannot coexist
 
     public static Tree tree(String nameObject... content) {
         return new Tree(name, Util.flatten(content));
     }

    
Constructs a meta node. Meta nodes correspond to XML attributes.
 
     public static Meta meta(String nameString value) {
         return new Meta(namevalue);
     }
 
     private Tree(String nameObject[] content) {
         Objects.requireNonNull(name"name must be non-null");
         this. = name;
         this. = Util.filterOneString(content);
         this. = Util.filterMeta(content);
         this. = Util.filterTree(content);
         if (!.isEmpty() && !.isEmpty()) {
             throw new IllegalArgumentException("Cannot contain both text and trees; " +
                     "had text \"" +  + "\" and children " + );
         }
     }
 
     public String name() {
         return ;
     }
 
     public String text() {
         return ;
     }
 
     public List<Metametae() {
         return ;
     }
 
     public String meta(String name) {
         for (Meta meta : ) {
             if (meta.name().equals(name)) {
                 return meta.value();
             }
         }
         return "";
     }
 
     public List<Treechildren() {
         return ;
     }
 
     @Override
     public boolean equals(Object obj) {
         if (obj == this) {
             return true;
         }
         if (!(obj instanceof Tree)) {
             return false;
         }
         Tree that = (Treeobj;
         return this..equals(that.name) &&
                 this..equals(that.text) &&
                 this..equals(that.metae) &&
                 this..equals(that.children);
     }
 
     @Override
     public int hashCode() {
         int result = .hashCode();
         result = 31 * result + .hashCode();
         result = 31 * result + .hashCode();
         result = 31 * result + .hashCode();
         return result;
     }
 
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append('(');
        sb.append();
        if (!.isEmpty()) {
            sb.append(' ').append('"').append().append('"');
        }
        for (Meta meta : ) {
            sb.append(' ').append(meta.toString());
        }
        for (Tree child : ) {
            sb.append(' ').append(child.toString());
        }
        sb.append(')');
        return sb.toString();
    }
New to GrepCode? Check out our FAQ X