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