com.google.javascript.jscomp.jsonml
Class JsonML

java.lang.Object
  extended by com.google.javascript.jscomp.jsonml.JsonML

public class JsonML
extends Object

Class which represents JsonML element according to the specification at "http://code.google.com/p/es-lab/wiki/JsonMLASTFormat"


Constructor Summary
JsonML(TagType type)
          Creates a new element with a given type.
JsonML(TagType type, JsonML... children)
          Creates a new element.
JsonML(TagType type, List<? extends JsonML> children)
           
JsonML(TagType type, Map<? extends TagAttr,?> attributes)
           
JsonML(TagType type, Map<? extends TagAttr,?> attributes, List<? extends JsonML> children)
           
 
Method Summary
 void addChild(int index, JsonML element)
          Inserts the given JsonML element at the given position in the list of children.
 void appendChild(JsonML element)
          Appends a given child element to the list of children.
 void appendChildren(Collection<? extends JsonML> elements)
          Appends a collection of children to the back of the list of children.
 int childrenSize()
          Returns number of the children.
 void clearChildren()
          Removes all elements from the list of children.
 Object getAttribute(TagAttr name)
          Returns value associated with a given attribute.
 Map<TagAttr,Object> getAttributes()
          Returns a map with attributes and respective values.
 JsonML getChild(int index)
          Returns child at a given position.
 List<JsonML> getChildren()
          Returns a list of all children.
 List<JsonML> getChildren(int fromIndex, int toIndex)
          Returns the portion of children list between the specified fromIndex, inclusive, and toIndex, exclusive.
 TagType getType()
          Returns type of the JsonML element.
 boolean hasChildren()
          Returns true if the JsonML element has at least one child.
 void setAttribute(TagAttr name, Object value)
          Sets value for a given attribute.
 void setAttributes(Map<TagAttr,Object> attributes)
          Sets attributes of the JsonML element.
 void setChild(int index, JsonML element)
          Replaces the element at the given position in the list of children wit the given JsonML element.
 void setChildren(JsonML... children)
          Replaces all elements in the list of children with the given JsonML elements.
 void setChildren(List<JsonML> children)
          Replaces all elements in the list of children with the given list of JsonML elements..
 String toString()
           
 String toStringTree()
          Prints a JsonML tree in a human readable format.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JsonML

public JsonML(TagType type)
Creates a new element with a given type.

Parameters:
type -

JsonML

public JsonML(TagType type,
              JsonML... children)
Creates a new element.

Parameters:
type - type of the element
children - children to append to the element

JsonML

public JsonML(TagType type,
              List<? extends JsonML> children)

JsonML

public JsonML(TagType type,
              Map<? extends TagAttr,?> attributes)

JsonML

public JsonML(TagType type,
              Map<? extends TagAttr,?> attributes,
              List<? extends JsonML> children)
Method Detail

addChild

public void addChild(int index,
                     JsonML element)
Inserts the given JsonML element at the given position in the list of children.

Parameters:
index - index at which the given element is to be inserted
element - JsonML element to be inserted

appendChild

public void appendChild(JsonML element)
Appends a given child element to the list of children.

Parameters:
element - JsonML element to append

appendChildren

public void appendChildren(Collection<? extends JsonML> elements)
Appends a collection of children to the back of the list of children.

Parameters:
elements - collection of JsonML elements to append

childrenSize

public int childrenSize()
Returns number of the children.


clearChildren

public void clearChildren()
Removes all elements from the list of children.


getAttribute

public Object getAttribute(TagAttr name)
Returns value associated with a given attribute.

Parameters:
name - name of the attribute
Returns:
associated value or null if the attribute is not present

getAttributes

public Map<TagAttr,Object> getAttributes()
Returns a map with attributes and respective values.


getChild

public JsonML getChild(int index)
Returns child at a given position.


getChildren

public List<JsonML> getChildren()
Returns a list of all children.


getChildren

public List<JsonML> getChildren(int fromIndex,
                                int toIndex)
Returns the portion of children list between the specified fromIndex, inclusive, and toIndex, exclusive.

Parameters:
fromIndex - low endpoint (inclusive)
toIndex - high endpoint (exclusive)

getType

public TagType getType()
Returns type of the JsonML element.


hasChildren

public boolean hasChildren()
Returns true if the JsonML element has at least one child.


setAttribute

public void setAttribute(TagAttr name,
                         Object value)
Sets value for a given attribute.

Parameters:
name - name of the attribute
value - value to associate with the attribute

setAttributes

public void setAttributes(Map<TagAttr,Object> attributes)
Sets attributes of the JsonML element.

Parameters:
attributes - map with attributes and their values

setChild

public void setChild(int index,
                     JsonML element)
Replaces the element at the given position in the list of children wit the given JsonML element.

Parameters:
index - index of element to replace
element - JsonML element to append

setChildren

public void setChildren(JsonML... children)
Replaces all elements in the list of children with the given JsonML elements.

Parameters:
children - a comma separated list of JsonML elements

setChildren

public void setChildren(List<JsonML> children)
Replaces all elements in the list of children with the given list of JsonML elements..

Parameters:
children - a list of JsonML elements.

toString

public String toString()
Overrides:
toString in class Object

toStringTree

public String toStringTree()
Prints a JsonML tree in a human readable format.