Changeset 529
- Timestamp:
- 2008-08-20 08:14:53 (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
-
samples/kauri-forms-sample/src/main/kauri/templates/index.xml (modified) (1 diff)
-
samples/kauri-template-sample/src/main/kauri/public/helloworld.xml (modified) (1 diff)
-
universe/kauri-template/src/main/java/org/kauriproject/template/el/DateFunctions.java (added)
-
universe/kauri-template/src/main/java/org/kauriproject/template/el/MathFunctions.java (added)
-
universe/kauri-template/src/main/java/org/kauriproject/template/el/ParseContext.java (modified) (5 diffs)
-
universe/kauri-template/src/main/java/org/kauriproject/template/el/StringFunctions.java (modified) (1 diff)
-
universe/kauri-template/src/test/resources/org/kauriproject/template/big.xml (modified) (54 diffs)
-
universe/kauri-template/src/test/resources/org/kauriproject/template/elfunc.xml (modified) (1 diff)
-
universe/kauri-template/src/test/resources/org/kauriproject/template/elfunc_result.xml (modified) (1 diff)
-
universe/kauri-template/src/test/resources/org/kauriproject/template/mix.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/samples/kauri-forms-sample/src/main/kauri/templates/index.xml
r524 r529 49 49 <li>Π validation @ validate/pi POST value as entity: 50 50 <a href="javascript:testValidate('${publicUri('km:/pi-validation')}', ${22/7})">${22/7}</a> - 51 <a href="javascript:testValidate('${publicUri('km:/pi-validation')}', ${ pi})">${pi}</a>51 <a href="javascript:testValidate('${publicUri('km:/pi-validation')}', ${math:pi()})">${math:pi()}</a> 52 52 </li> 53 53 </ul> -
trunk/samples/kauri-template-sample/src/main/kauri/public/helloworld.xml
r238 r529 17 17 <div> 18 18 <p>Today we celebrate pi.</p> 19 <p>pi = ${ pi}</p>19 <p>pi = ${math:pi()}</p> 20 20 </div> 21 21 <ktl:insert src="snip.xml" /> -
trunk/universe/kauri-template/src/main/java/org/kauriproject/template/el/ParseContext.java
r203 r529 35 35 private static Log log = LogFactory.getLog(ParseContext.class); 36 36 37 private ExpressionFactory expressionFactory;37 // private ExpressionFactory expressionFactory; 38 38 39 39 private FunctionRegistry functionRegistry; … … 41 41 public ParseContext(ExpressionFactory expressionFactory, FunctionRegistry functionRegistry) { 42 42 super(); 43 this.expressionFactory = expressionFactory;43 // this.expressionFactory = expressionFactory; 44 44 this.functionRegistry = functionRegistry; 45 45 enhance(); … … 47 47 48 48 private void enhance() { 49 this.addVariables();50 49 this.addMathFunctions(); 51 50 this.addStringFunctions(); 51 this.addDateFunctions(); 52 52 // by doing this last, registered functions may override functions loaded above. 53 53 this.addRegisteredFunctions(); 54 }55 56 private void addVariables() {57 setVariable("pi", expressionFactory.createValueExpression(Math.PI, double.class));58 54 } 59 55 … … 61 57 String prefix = "math"; 62 58 try { 59 // add some java.lang.Math functions 63 60 setFunction(prefix, "sin", Math.class.getMethod("sin", double.class)); 64 61 setFunction(prefix, "cos", Math.class.getMethod("cos", double.class)); 65 62 setFunction(prefix, "max", Math.class.getMethod("max", double.class, double.class)); 66 63 setFunction(prefix, "min", Math.class.getMethod("min", double.class, double.class)); 64 // add additional math functions 65 Method[] methods = MathFunctions.class.getDeclaredMethods(); 66 for (Method method : methods) { 67 setFunction(prefix, method.getName(), method); 68 } 67 69 } catch (NoSuchMethodException nex) { 68 70 log.error("Error adding math functions to the EL: " + nex); … … 73 75 String prefix = "txt"; 74 76 Method[] methods = StringFunctions.class.getDeclaredMethods(); 77 for (Method method : methods) { 78 setFunction(prefix, method.getName(), method); 79 } 80 } 81 82 private void addDateFunctions() { 83 String prefix = "date"; 84 Method[] methods = DateFunctions.class.getDeclaredMethods(); 75 85 for (Method method : methods) { 76 86 setFunction(prefix, method.getName(), method); -
trunk/universe/kauri-template/src/main/java/org/kauriproject/template/el/StringFunctions.java
r70 r529 70 70 return string.substring(string.length() - length, string.length()); 71 71 } 72 73 public static boolean startsWith(String string, String substring) { 74 return string.startsWith(substring); 75 } 76 77 public static boolean endsWith(String string, String substring) { 78 return string.endsWith(substring); 79 } 80 81 public static boolean contains(String string, String substring) { 82 return string.contains(substring); 83 } 84 72 85 } -
trunk/universe/kauri-template/src/test/resources/org/kauriproject/template/big.xml
r33 r529 29 29 </name> 30 30 </thisPerson> 31 <INSZNumber>${ pi}</INSZNumber>31 <INSZNumber>${math:pi()}</INSZNumber> 32 32 </naturalPerson> 33 33 <worker> … … 137 137 </name> 138 138 </thisPerson> 139 <INSZNumber>${ pi}</INSZNumber>139 <INSZNumber>${math:pi()}</INSZNumber> 140 140 </naturalPerson> 141 141 <worker> … … 341 341 </name> 342 342 </thisPerson> 343 <INSZNumber>${ pi}</INSZNumber>343 <INSZNumber>${math:pi()}</INSZNumber> 344 344 </naturalPerson> 345 345 <worker> … … 569 569 </name> 570 570 </thisPerson> 571 <INSZNumber>${ pi}</INSZNumber>571 <INSZNumber>${math:pi()}</INSZNumber> 572 572 </naturalPerson> 573 573 <worker> … … 797 797 </name> 798 798 </thisPerson> 799 <INSZNumber>${ pi}</INSZNumber>799 <INSZNumber>${math:pi()}</INSZNumber> 800 800 </naturalPerson> 801 801 <worker> … … 1001 1001 </name> 1002 1002 </thisPerson> 1003 <INSZNumber>${ pi}</INSZNumber>1003 <INSZNumber>${math:pi()}</INSZNumber> 1004 1004 </naturalPerson> 1005 1005 <worker> … … 1085 1085 </name> 1086 1086 </thisPerson> 1087 <INSZNumber>${ pi}</INSZNumber>1087 <INSZNumber>${math:pi()}</INSZNumber> 1088 1088 </naturalPerson> 1089 1089 <worker> … … 1193 1193 </name> 1194 1194 </thisPerson> 1195 <INSZNumber>${ pi}</INSZNumber>1195 <INSZNumber>${math:pi()}</INSZNumber> 1196 1196 </naturalPerson> 1197 1197 <worker> … … 1253 1253 </name> 1254 1254 </thisPerson> 1255 <INSZNumber>${ pi}</INSZNumber>1255 <INSZNumber>${math:pi()}</INSZNumber> 1256 1256 </naturalPerson> 1257 1257 <worker> … … 1457 1457 </name> 1458 1458 </thisPerson> 1459 <INSZNumber>${ pi}</INSZNumber>1459 <INSZNumber>${math:pi()}</INSZNumber> 1460 1460 </naturalPerson> 1461 1461 <worker> … … 1589 1589 </name> 1590 1590 </thisPerson> 1591 <INSZNumber>${ pi}</INSZNumber>1591 <INSZNumber>${math:pi()}</INSZNumber> 1592 1592 </naturalPerson> 1593 1593 <worker> … … 1721 1721 </name> 1722 1722 </thisPerson> 1723 <INSZNumber>${ pi}</INSZNumber>1723 <INSZNumber>${math:pi()}</INSZNumber> 1724 1724 </naturalPerson> 1725 1725 <worker> … … 1877 1877 </name> 1878 1878 </thisPerson> 1879 <INSZNumber>${ pi}</INSZNumber>1879 <INSZNumber>${math:pi()}</INSZNumber> 1880 1880 </naturalPerson> 1881 1881 <worker> … … 2009 2009 </name> 2010 2010 </thisPerson> 2011 <INSZNumber>${ pi}</INSZNumber>2011 <INSZNumber>${math:pi()}</INSZNumber> 2012 2012 </naturalPerson> 2013 2013 <worker> … … 2141 2141 </name> 2142 2142 </thisPerson> 2143 <INSZNumber>${ pi}</INSZNumber>2143 <INSZNumber>${math:pi()}</INSZNumber> 2144 2144 </naturalPerson> 2145 2145 <worker> … … 2273 2273 </name> 2274 2274 </thisPerson> 2275 <INSZNumber>${ pi}</INSZNumber>2275 <INSZNumber>${math:pi()}</INSZNumber> 2276 2276 </naturalPerson> 2277 2277 <worker> … … 2477 2477 </name> 2478 2478 </thisPerson> 2479 <INSZNumber>${ pi}</INSZNumber>2479 <INSZNumber>${math:pi()}</INSZNumber> 2480 2480 </naturalPerson> 2481 2481 <worker> … … 2681 2681 </name> 2682 2682 </thisPerson> 2683 <INSZNumber>${ pi}</INSZNumber>2683 <INSZNumber>${math:pi()}</INSZNumber> 2684 2684 </naturalPerson> 2685 2685 <worker> … … 2789 2789 </name> 2790 2790 </thisPerson> 2791 <INSZNumber>${ pi}</INSZNumber>2791 <INSZNumber>${math:pi()}</INSZNumber> 2792 2792 </naturalPerson> 2793 2793 <worker> … … 2873 2873 </name> 2874 2874 </thisPerson> 2875 <INSZNumber>${ pi}</INSZNumber>2875 <INSZNumber>${math:pi()}</INSZNumber> 2876 2876 </naturalPerson> 2877 2877 <worker> … … 3005 3005 </name> 3006 3006 </thisPerson> 3007 <INSZNumber>${ pi}</INSZNumber>3007 <INSZNumber>${math:pi()}</INSZNumber> 3008 3008 </naturalPerson> 3009 3009 <worker> … … 3161 3161 </name> 3162 3162 </thisPerson> 3163 <INSZNumber>${ pi}</INSZNumber>3163 <INSZNumber>${math:pi()}</INSZNumber> 3164 3164 </naturalPerson> 3165 3165 <worker> … … 3317 3317 </name> 3318 3318 </thisPerson> 3319 <INSZNumber>${ pi}</INSZNumber>3319 <INSZNumber>${math:pi()}</INSZNumber> 3320 3320 </naturalPerson> 3321 3321 <worker> … … 3449 3449 </name> 3450 3450 </thisPerson> 3451 <INSZNumber>${ pi}</INSZNumber>3451 <INSZNumber>${math:pi()}</INSZNumber> 3452 3452 </naturalPerson> 3453 3453 <worker> … … 3965 3965 </name> 3966 3966 </thisPerson> 3967 <INSZNumber>${ pi}</INSZNumber>3967 <INSZNumber>${math:pi()}</INSZNumber> 3968 3968 </naturalPerson> 3969 3969 <worker> … … 4313 4313 </name> 4314 4314 </thisPerson> 4315 <INSZNumber>${ pi}</INSZNumber>4315 <INSZNumber>${math:pi()}</INSZNumber> 4316 4316 </naturalPerson> 4317 4317 <worker> … … 4373 4373 </name> 4374 4374 </thisPerson> 4375 <INSZNumber>${ pi}</INSZNumber>4375 <INSZNumber>${math:pi()}</INSZNumber> 4376 4376 </naturalPerson> 4377 4377 <worker> … … 4577 4577 </name> 4578 4578 </thisPerson> 4579 <INSZNumber>${ pi}</INSZNumber>4579 <INSZNumber>${math:pi()}</INSZNumber> 4580 4580 </naturalPerson> 4581 4581 <worker> … … 4877 4877 </name> 4878 4878 </thisPerson> 4879 <INSZNumber>${ pi}</INSZNumber>4879 <INSZNumber>${math:pi()}</INSZNumber> 4880 4880 </naturalPerson> 4881 4881 <worker> … … 4937 4937 </name> 4938 4938 </thisPerson> 4939 <INSZNumber>${ pi}</INSZNumber>4939 <INSZNumber>${math:pi()}</INSZNumber> 4940 4940 </naturalPerson> 4941 4941 <worker> … … 5045 5045 </name> 5046 5046 </thisPerson> 5047 <INSZNumber>${ pi}</INSZNumber>5047 <INSZNumber>${math:pi()}</INSZNumber> 5048 5048 </naturalPerson> 5049 5049 <worker> … … 5345 5345 </name> 5346 5346 </thisPerson> 5347 <INSZNumber>${ pi}</INSZNumber>5347 <INSZNumber>${math:pi()}</INSZNumber> 5348 5348 </naturalPerson> 5349 5349 <worker> … … 5501 5501 </name> 5502 5502 </thisPerson> 5503 <INSZNumber>${ pi}</INSZNumber>5503 <INSZNumber>${math:pi()}</INSZNumber> 5504 5504 </naturalPerson> 5505 5505 <worker> … … 5561 5561 </name> 5562 5562 </thisPerson> 5563 <INSZNumber>${ pi}</INSZNumber>5563 <INSZNumber>${math:pi()}</INSZNumber> 5564 5564 </naturalPerson> 5565 5565 <worker> … … 5597 5597 </name> 5598 5598 </thisPerson> 5599 <INSZNumber>${ pi}</INSZNumber>5599 <INSZNumber>${math:pi()}</INSZNumber> 5600 5600 </naturalPerson> 5601 5601 <worker> … … 5729 5729 </name> 5730 5730 </thisPerson> 5731 <INSZNumber>${ pi}</INSZNumber>5731 <INSZNumber>${math:pi()}</INSZNumber> 5732 5732 </naturalPerson> 5733 5733 <worker> … … 5885 5885 </name> 5886 5886 </thisPerson> 5887 <INSZNumber>${ pi}</INSZNumber>5887 <INSZNumber>${math:pi()}</INSZNumber> 5888 5888 </naturalPerson> 5889 5889 <worker> … … 6377 6377 </name> 6378 6378 </thisPerson> 6379 <INSZNumber>${ pi}</INSZNumber>6379 <INSZNumber>${math:pi()}</INSZNumber> 6380 6380 </naturalPerson> 6381 6381 <worker> … … 7013 7013 </name> 7014 7014 </thisPerson> 7015 <INSZNumber>${ pi}</INSZNumber>7015 <INSZNumber>${math:pi()}</INSZNumber> 7016 7016 </naturalPerson> 7017 7017 <worker> … … 7097 7097 </name> 7098 7098 </thisPerson> 7099 <INSZNumber>${ pi}</INSZNumber>7099 <INSZNumber>${math:pi()}</INSZNumber> 7100 7100 </naturalPerson> 7101 7101 <worker> … … 7133 7133 </name> 7134 7134 </thisPerson> 7135 <INSZNumber>${ pi}</INSZNumber>7135 <INSZNumber>${math:pi()}</INSZNumber> 7136 7136 </naturalPerson> 7137 7137 <worker> … … 7217 7217 </name> 7218 7218 </thisPerson> 7219 <INSZNumber>${ pi}</INSZNumber>7219 <INSZNumber>${math:pi()}</INSZNumber> 7220 7220 </naturalPerson> 7221 7221 <worker> … … 7397 7397 </name> 7398 7398 </thisPerson> 7399 <INSZNumber>${ pi}</INSZNumber>7399 <INSZNumber>${math:pi()}</INSZNumber> 7400 7400 </naturalPerson> 7401 7401 <worker> … … 7505 7505 </name> 7506 7506 </thisPerson> 7507 <INSZNumber>${ pi}</INSZNumber>7507 <INSZNumber>${math:pi()}</INSZNumber> 7508 7508 </naturalPerson> 7509 7509 <worker> … … 7637 7637 </name> 7638 7638 </thisPerson> 7639 <INSZNumber>${ pi}</INSZNumber>7639 <INSZNumber>${math:pi()}</INSZNumber> 7640 7640 </naturalPerson> 7641 7641 <worker> … … 7985 7985 </name> 7986 7986 </thisPerson> 7987 <INSZNumber>${ pi}</INSZNumber>7987 <INSZNumber>${math:pi()}</INSZNumber> 7988 7988 </naturalPerson> 7989 7989 <worker> … … 8189 8189 </name> 8190 8190 </thisPerson> 8191 <INSZNumber>${ pi}</INSZNumber>8191 <INSZNumber>${math:pi()}</INSZNumber> 8192 8192 </naturalPerson> 8193 8193 <worker> … … 8297 8297 </name> 8298 8298 </thisPerson> 8299 <INSZNumber>${ pi}</INSZNumber>8299 <INSZNumber>${math:pi()}</INSZNumber> 8300 8300 </naturalPerson> 8301 8301 <worker> … … 8357 8357 </name> 8358 8358 </thisPerson> 8359 <INSZNumber>${ pi}</INSZNumber>8359 <INSZNumber>${math:pi()}</INSZNumber> 8360 8360 </naturalPerson> 8361 8361 <worker> … … 8537 8537 </name> 8538 8538 </thisPerson> 8539 <INSZNumber>${ pi}</INSZNumber>8539 <INSZNumber>${math:pi()}</INSZNumber> 8540 8540 </naturalPerson> 8541 8541 <worker> … … 8621 8621 </name> 8622 8622 </thisPerson> 8623 <INSZNumber>${ pi}</INSZNumber>8623 <INSZNumber>${math:pi()}</INSZNumber> 8624 8624 </naturalPerson> 8625 8625 <worker> … … 8681 8681 </name> 8682 8682 </thisPerson> 8683 <INSZNumber>${ pi}</INSZNumber>8683 <INSZNumber>${math:pi()}</INSZNumber> 8684 8684 </naturalPerson> 8685 8685 <worker> … … 8741 8741 </name> 8742 8742 </thisPerson> 8743 <INSZNumber>${ pi}</INSZNumber>8743 <INSZNumber>${math:pi()}</INSZNumber> 8744 8744 </naturalPerson> 8745 8745 <worker> … … 8801 8801 </name> 8802 8802 </thisPerson> 8803 <INSZNumber>${ pi}</INSZNumber>8803 <INSZNumber>${math:pi()}</INSZNumber> 8804 8804 </naturalPerson> 8805 8805 <worker> -
trunk/universe/kauri-template/src/test/resources/org/kauriproject/template/elfunc.xml
r70 r529 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <root xmlns:ktl="http://kauriproject.org/template"> 3 <p>${math:sin(pi/2) == 1.0}</p> 4 <p>${math:cos(pi/2) >= 0 and math:cos(pi/2) <= 0.001}</p> 5 <p>${math:min(3.1415926,pi) <= pi}</p> 6 <p>${txt:toUpperCase('kauri')} ${txt:toUpperCase('rules')}</p> 7 <p>${txt:toLowerCase(txt:toUpperCase('dEUs'))}</p> 8 <p>${txt:trim(' trimmed string ')}</p> 9 <p>${txt:length(txt:substring(txt:string(pi),2,5))}</p> 10 <p>${txt:left('kauri-templating',5)}+${txt:right('kauri-templating',10)}</p> 3 <div class="math"> 4 <p>${math:sin(math:pi()/2) == 1.0}</p> 5 <p>${math:cos(math:pi()/2) >= 0 and math:cos(math:pi()/2) <= 0.001}</p> 6 <p>${math:min(3.1415926,math:pi()) <= math:pi()}</p> 7 </div> 8 <div class="txt"> 9 <p>${txt:toUpperCase('kauri')} ${txt:toUpperCase('rules')}</p> 10 <p>${txt:toLowerCase(txt:toUpperCase('dEUs'))}</p> 11 <p>${txt:trim(' trimmed string ')}</p> 12 <p>${txt:length(txt:substring(txt:string(math:pi()),2,5))}</p> 13 <p>${txt:left('kauri-templating',5)}+${txt:right('kauri-templating',10)}</p> 14 <p>${txt:contains('tingelingeling','ling')} - ${txt:contains('tingelingeling','bla')}</p> 15 <p>${txt:startsWith('tingelingeling','tin')} - ${txt:startsWith('tingelingeling','bla')}</p> 16 <p>${txt:endsWith('tingelingeling','ing')} - ${txt:endsWith('tingelingeling','bla')}</p> 17 </div> 18 <div class="date"> 19 <p>${date:now("dd/MM/yyyy HH'u'mm") != ""}</p> 20 <p>${date:format(date:date(1980,2,8),"dd/MM/yyyy")}</p> 21 <p>${date:format(date:time(16,25,18),"HH:mm:ss")}</p> 22 <p>${date:format(date:datetime(1980,2,8,16,25,18),"dd/MM/yyyy HH'u'mm")}</p> 23 </div> 11 24 </root> -
trunk/universe/kauri-template/src/test/resources/org/kauriproject/template/elfunc_result.xml
r70 r529 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <root xmlns:ktl="http://kauriproject.org/template"> 3 <p>true</p> 4 <p>true</p> 5 <p>true</p> 6 <p>KAURI RULES</p> 7 <p>deus</p> 8 <p>trimmed string</p> 9 <p>3</p> 10 <p>kauri+templating</p> 3 <div class="math"> 4 <p>true</p> 5 <p>true</p> 6 <p>true</p> 7 </div> 8 <div class="txt"> 9 <p>KAURI RULES</p> 10 <p>deus</p> 11 <p>trimmed string</p> 12 <p>3</p> 13 <p>kauri+templating</p> 14 <p>true - false</p> 15 <p>true - false</p> 16 <p>true - false</p> 17 </div> 18 <div class="date"> 19 <p>true</p> 20 <p>08/02/1980</p> 21 <p>16:25:18</p> 22 <p>08/02/1980 16u25</p> 23 </div> 11 24 </root> -
trunk/universe/kauri-template/src/test/resources/org/kauriproject/template/mix.xml
r370 r529 24 24 <ktl:otherwise> 25 25 <p>other</p> 26 <ktl:if test="${math:sin( pi/2) == 1.0}">26 <ktl:if test="${math:sin(math:pi()/2) == 1.0}"> 27 27 <p>the sine of pi/2 equals 1</p> 28 28 </ktl:if> 29 29 <ktl:if 30 test="${math:cos( pi/2) >= 0 and math:cos(pi/2) <= 0.001}">30 test="${math:cos(math:pi()/2) >= 0 and math:cos(math:pi()/2) <= 0.001}"> 31 31 <p>the cosine of pi/2 equals 0</p> 32 32 </ktl:if> 33 <ktl:if test="${math:min(3.1415926, pi) <= pi}">33 <ktl:if test="${math:min(3.1415926,math:pi()) <= math:pi()}"> 34 34 <p>the above is always true</p> 35 35 </ktl:if>
Note: See TracChangeset
for help on using the changeset viewer.