6 package de.uni_hamburg.corpora.conversion;
8 import java.io.IOException;
9 import java.util.ArrayList;
10 import java.util.List;
11 import java.util.Properties;
24 String templateString;
27 String separatorString;
37 public String
templatingcsv2json(String templateStr, String prefix, String suffix, String separator)
throws IOException {
38 templateString = templateStr;
39 prefixString = prefix;
40 suffixString = suffix;
41 separatorString = separator;
44 template =
parse(templateString);
55 List<Fragment> fragments =
new ArrayList<Fragment>();
57 int start = 0, current = 0;
58 while (current < s.length() - 1) {
59 char c = s.charAt(current);
60 char c2 = s.charAt(current + 1);
62 if (c2 ==
'\\' || c2 ==
'{' || c2 ==
'$') {
63 fragments.add(
new StaticFragment(s.substring(start, current).concat(Character.toString(c2))));
72 if (c ==
'$' && c2 ==
'{') {
73 int closeBrace = s.indexOf(
'}', current + 2);
74 if (closeBrace > current + 1) {
75 String columnName = s.substring(current + 2, closeBrace);
77 if (current > start) {
78 fragments.add(
new StaticFragment(s.substring(start, current)));
80 start = current = closeBrace + 1;
92 }
else if (c ==
'{' && c2 ==
'{') {
93 int closeBrace = s.indexOf(
'}', current + 2);
94 if (closeBrace > current + 1 && closeBrace < s.length() - 1 && s.charAt(closeBrace + 1) ==
'}') {
95 String expression = s.substring(current + 2, closeBrace);
97 if (current > start) {
98 fragments.add(
new StaticFragment(s.substring(start, current)));
100 start = current = closeBrace + 2;
113 if (start < s.length()) {
114 fragments.add(
new StaticFragment(s.substring(start)));
129 _fragments = fragments;
138 class StaticFragment extends
Fragment {
140 final public String text;
142 public StaticFragment(String text) {
147 class DynamicFragment extends
Fragment {
167 public Object evaluate(Properties bindings);
180 String language =
"grel";
182 int colon = s.indexOf(
':');
184 language = s.substring(0, colon).toLowerCase();
185 if (
"gel".equals(language)) {
Template(List< Fragment > fragments)
String templatingcsv2json(String templateStr, String prefix, String suffix, String separator)
Evaluable parseEvaluable(String s)
List< Fragment > _fragments