This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-compiler-java.git

commit d9fbfa11dce2a9cce0f48640e4f7da374e844753
Author: Radu Cotescu <[email protected]>
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@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
"[email protected]" <[email protected]>.

Reply via email to