You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:11:06 UTC
[sling-org-apache-sling-scripting-sightly-compiler-java] 15/31:
SLING-6399 - Implement support for date and number formatting for HTL
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.scripting.sightly.compiler.java-1.0.10
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-compiler-java.git
commit d6dd5e7d0d00a424d2c3df6edfe1158d3501ca39
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Wed Dec 14 22:13:32 2016 +0000
SLING-6399 - Implement support for date and number formatting for HTL
* implemented support for the date and number formatting features from version 1.3
of the HTL Language Specification
* applied slightly modified patch submitted by Vlad Băilescu at https://github.com/apache/sling/pull/191
(Closes #191)
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/scripting/sightly/java-compiler@1774351 13f79535-47bb-0310-9956-ffa450edef68
---
.../sightly/render/AbstractRuntimeObjectModel.java | 23 ++++++++++++++++++++--
.../sightly/render/RuntimeObjectModel.java | 7 +++++++
.../scripting/sightly/render/package-info.java | 2 +-
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/sling/scripting/sightly/render/AbstractRuntimeObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/render/AbstractRuntimeObjectModel.java
index a55b21f..e4f84b0 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/render/AbstractRuntimeObjectModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/render/AbstractRuntimeObjectModel.java
@@ -21,8 +21,10 @@ import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
+import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
@@ -48,7 +50,6 @@ public abstract class AbstractRuntimeObjectModel implements RuntimeObjectModel {
*/
public static final Set<Class<?>> PRIMITIVE_CLASSES = Collections.unmodifiableSet(new HashSet<Class<?>>() {{
add(Boolean.class);
- add(Boolean.class);
add(Character.class);
add(Byte.class);
add(Short.class);
@@ -67,6 +68,16 @@ public abstract class AbstractRuntimeObjectModel implements RuntimeObjectModel {
}
@Override
+ public boolean isDate(Object target) {
+ return (target instanceof Date || target instanceof Calendar);
+ }
+
+ @Override
+ public boolean isNumber(Object target) {
+ return (target instanceof Number);
+ }
+
+ @Override
public boolean isCollection(Object target) {
return (target instanceof Collection) || (target instanceof Object[]) || (target instanceof Iterable) ||
(target instanceof Iterator);
@@ -96,6 +107,15 @@ public abstract class AbstractRuntimeObjectModel implements RuntimeObjectModel {
return 0;
}
+ public Date toDate(Object object) {
+ if (object instanceof Date) {
+ return (Date)object;
+ } else if (object instanceof Calendar) {
+ return ((Calendar)object).getTime();
+ }
+ return new Date(0);
+ }
+
@Override
public String toString(Object target) {
return objectToString(target);
@@ -368,4 +388,3 @@ public abstract class AbstractRuntimeObjectModel implements RuntimeObjectModel {
}
}
-
diff --git a/src/main/java/org/apache/sling/scripting/sightly/render/RuntimeObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/render/RuntimeObjectModel.java
index 7d3076f..6d8f6e0 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/render/RuntimeObjectModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/render/RuntimeObjectModel.java
@@ -17,6 +17,7 @@
package org.apache.sling.scripting.sightly.render;
import java.util.Collection;
+import java.util.Date;
import java.util.Map;
import org.osgi.annotation.versioning.ProviderType;
@@ -44,6 +45,10 @@ public interface RuntimeObjectModel {
*/
boolean isCollection(Object target);
+ boolean isNumber(Object target);
+
+ boolean isDate(Object target);
+
/**
* Resolve a property of a target object and return its value. The property can
* be either an index or a name
@@ -70,6 +75,8 @@ public interface RuntimeObjectModel {
*/
Number toNumber(Object object);
+ Date toDate(Object object);
+
/**
* Convert the given object to a string.
*
diff --git a/src/main/java/org/apache/sling/scripting/sightly/render/package-info.java b/src/main/java/org/apache/sling/scripting/sightly/render/package-info.java
index 1e71397..a996756 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/render/package-info.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/render/package-info.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
-@Version("2.0.0")
+@Version("2.1.0")
package org.apache.sling.scripting.sightly.render;
import org.osgi.annotation.versioning.Version;
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.