package jef.json;
import java.io.Serializable;
import jef.tools.StringUtils;
public class JSFunction implements Serializable,JScriptExpression{
private String name;
private String[] args;
private String code;
private boolean raw;
public JSFunction(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getArgs() {
return args;
}
public JSFunction setArgs(String... args) {
this.args = args;
return this;
}
public String getCode() {
return code;
}
public JSFunction addCodeLine(String line){
if(StringUtils.isEmpty(code)){
code=line;
}else{
code+=code+"\r\n"+line;
}
return this;
}
public JSFunction setCode(String code) {
this.code = code;
return this;
}
@Override
public String toString() {
if(raw){
return code;
}else{
StringBuilder sb=new StringBuilder("function");
if(name!=null && name.length()>0){
sb.append(' ').append(name);
}
sb.append('(');
if(args!=null){
for(int i=0;i<args.length;i++){
if(i>0){
sb.append(',');
}
sb.append(args[i]);
}
}
sb.append(')');
sb.append("{");
if(code!=null){
sb.append('\n').append(code);
}
sb.append("}");
return sb.toString();
}
}
public boolean isRaw() {
return raw;
}
public void setRaw(boolean raw) {
this.raw = raw;
}
}