org.webpieces.templatingdev.impl.source.TemplateToken Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of http-templating-dev-lib Show documentation
Show all versions of http-templating-dev-lib Show documentation
Templating library using groovy as the scripting language
package org.webpieces.templatingdev.impl.source;
public enum TemplateToken {
//TODO: http2 record the script to pre-emptively send by calling into the groovy
//superclass recording all these scripts to send
//THEN, after script is run, client can call getScriptsToPreemptivelySend and send
//all those scripts before the browser client asks for them(in http2 at least)
//BUT we must also RECORD all these on that connection and not send them a
//second time which would be a waste of our CPU
EOF(null, null), //end of file
PLAIN(null, null), //normal text
SCRIPT("%{", "}%"), // %{...}%
FILE_VERIFY("%[", "]%"), // %[...]% verify the file exists so we don't deploy with missing files
EXPR("${", "}$"), // ${...}$
START_TAG("#{", "}#"), // #{...}#
END_TAG("#{/", "}#"), // #{/...}#
START_END_TAG("#{", "/}#"), // #{.../}#
MESSAGE("&{", "}&"), // &{...}&
ACTION("@[", "]@"), // @[...]@
ABSOLUTE_ACTION("@@[", "]@@"), // @@[...]@@
COMMENT("*{", "}*"), // *{...}*
ESCAPE("*[", "]*"); // *[...]* escapes all platform tokens except ]* which does not need escaping AND escapes all html as well;
private String start;
private String end;
TemplateToken(String start, String end) {
this.start = start;
this.end = end;
}
public String getStart() {
return start;
}
public String getEnd() {
return end;
}
public boolean matchesStart(char c, char c1, char c2) {
if(start.length() == 2 && c == start.charAt(0) && c1 == start.charAt(1))
return true;
else if(start.length() == 3 && c == start.charAt(0) && c1 == start.charAt(1) && c2 == start.charAt(2))
return true;
return false;
}
public boolean matchesEnd(char c, char c1, char c2) {
if(end.length() == 2 && c == end.charAt(0) && c1 == end.charAt(1))
return true;
else if(end.length() == 3 && c == end.charAt(0) && c1 == end.charAt(1) && c2 == end.charAt(2))
return true;
return false;
}
}