package org.webpieces.templatingdev.impl.tags;
import org.webpieces.templatingdev.api.ScriptOutput;
import org.webpieces.templatingdev.api.Token;
public class TagGen extends ParseTagArgs {
private String name;
private Token startToken;
public TagGen(String tagName, Token startToken, RoutePathTranslator callback) {
super(callback);
this.name = tagName;
this.startToken = startToken;
}
@Override
public String getName() {
return name;
}
@Override
public void generateStartAndEnd(ScriptOutput sourceCode, Token token, int uniqueId) {
super.generateStartAttrs(sourceCode, token, uniqueId);
sourceCode.println("runTag('" + name + "', _attrs" + uniqueId + ", null, '"+token.getSourceLocation(false)+"');", token);
sourceCode.println();
}
@Override
public void generateStart(ScriptOutput sourceCode, Token token, int uniqueId) {
super.generateStartAttrs(sourceCode, token, uniqueId);
sourceCode.println("_body" + uniqueId + " = {", token);
sourceCode.println();
}
@Override
public void generateEnd(ScriptOutput sourceCode, Token token, int uniqueId) {
sourceCode.println("};", token); //close _body closure
sourceCode.println();
String sourceLocation = startToken.getSourceLocation(false);
sourceCode.println("runTag('" + name + "', _attrs" + uniqueId + ", _body" + uniqueId + ", '"+sourceLocation+"');", token);
sourceCode.println();
}
}