package edu.harvard.wcfia.yoshikoder.concordance;
import java.util.Iterator;
import edu.harvard.wcfia.yoshikoder.document.tokenizer.Token;
import edu.harvard.wcfia.yoshikoder.document.tokenizer.TokenList;
public class ConcordanceLineImpl implements ConcordanceLine {
private TokenList lhs; // Strings
private Token target;
private TokenList rhs; // Strings
public ConcordanceLineImpl(TokenList left, Token targ, TokenList right){
// toss backing arrays here?
lhs = left;
target = targ;
rhs = right;
}
public TokenList getLeftHandSide(){
return lhs;
}
public TokenList getRightHandSide(){
return rhs;
}
public Token getTarget(){
return target;
}
public String getLeftHandSideView(){
StringBuffer sb = new StringBuffer();
for (Iterator iter = lhs.iterator(); iter.hasNext();) {
Token el = (Token) iter.next();
sb.append(el.getText() + " ");
}
if (sb.length()>0)
sb.deleteCharAt(sb.length()-1);
return sb.toString();
}
public String getRightHandSideView(){
StringBuffer sb = new StringBuffer();
for (Iterator iter = rhs.iterator(); iter.hasNext();) {
Token el = (Token) iter.next();
sb.append(el.getText() + " ");
}
if (sb.length()>0)
sb.deleteCharAt(sb.length()-1);
return sb.toString();
}
public String getTargetView(){
String s = getTarget().getText();
if (s==null)
return "";
else
return s;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("[");
for (Iterator iter = lhs.iterator(); iter.hasNext();) {
Token word = (Token) iter.next();
sb.append(word.getText() + " ");
}
sb.append("[" + target.getText() + "] ");
for (Iterator iter = rhs.iterator(); iter.hasNext();) {
Token word = (Token) iter.next();
sb.append(word.getText() + " ");
}
if (sb.length()>0)
sb.delete(sb.length()-1, sb.length());
sb.append("]");
return sb.toString();
}
}