package edu.stanford.rt.datatype;
import java.util.*;
/**
* @author Ninghui Li, Sandra Qiu
*
* Implementation of TreeValue
element.
*
*/
public class TreeValue implements DataValue
{
private ArrayList value;
private TreeType type;
/**
* Constructor for TreeValue
*/
public TreeValue(TreeType type, List v)
throws IllegalArgumentException
{
this.type = type;
if(v == null || v.size() ==0)
throw new IllegalArgumentException("Empty tree value");
value = new ArrayList();
Iterator it = v.iterator();
while(it.hasNext())
{
String val = (String)it.next();
value.add(val);
}
}
/**
* Method getValue.
* returns an unmodifiable view of value part list.
* @return List
*/
public List getValue()
{
return Collections.unmodifiableList(value);
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
public String toString()
{
StringBuffer sb = new StringBuffer();
String separator = type.getSeparator();
boolean rootFirst = type.isRootFirst();
int size = value.size();
if(rootFirst)
{
for(int i=0; i=0; i--)
{
String val = (String)value.get(i);
sb.append(val);
if(i != 0) sb.append(separator);
}
}
return sb.toString();
}
}