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>.