package com.itemanalysis.squiggle.literal;
import com.itemanalysis.squiggle.base.Literal;
import com.itemanalysis.squiggle.output.Output;
public class StringLiteral extends Literal {
private final String literalValue;
public StringLiteral(String literalValue) {
this.literalValue = literalValue;
}
public void write(Output out) {
out.print(quote(literalValue));
}
protected String quote(String s) {
if (s == null) return "null";
StringBuffer str = new StringBuffer();
str.append('\'');
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '\\'
|| s.charAt(i) == '\"'
|| s.charAt(i) == '\'') {
str.append('\\');
}
str.append(s.charAt(i));
}
str.append('\'');
return str.toString();
}
}