Repository: incubator-freemarker
Updated Branches:
  refs/heads/2.3-gae 2aebfe533 -> 889b8a965


GeneralPurposeNothing also implements TemplateHashModelEx2


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/889b8a96
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/889b8a96
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/889b8a96

Branch: refs/heads/2.3-gae
Commit: 889b8a965a19588037a90aadf5c58d51386520ec
Parents: 2aebfe5
Author: ddekany <ddek...@apache.org>
Authored: Sat Aug 5 11:16:38 2017 +0200
Committer: ddekany <ddek...@apache.org>
Committed: Sat Aug 5 11:16:38 2017 +0200

----------------------------------------------------------------------
 .../freemarker/template/GeneralPurposeNothing.java   | 15 +++++++++------
 src/manual/en_US/book.xml                            |  8 +++++---
 2 files changed, 14 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/889b8a96/src/main/java/freemarker/template/GeneralPurposeNothing.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/GeneralPurposeNothing.java 
b/src/main/java/freemarker/template/GeneralPurposeNothing.java
index 7ba8602..8023bd8 100644
--- a/src/main/java/freemarker/template/GeneralPurposeNothing.java
+++ b/src/main/java/freemarker/template/GeneralPurposeNothing.java
@@ -19,9 +19,10 @@
 
 package freemarker.template;
 
-import java.util.ArrayList;
 import java.util.List;
 
+import freemarker.template.utility.Constants;
+
 /**
  * Singleton object representing nothing, used by ?if_exists built-in.
  * It is meant to be interpreted in the most sensible way possible in various 
contexts.
@@ -29,11 +30,9 @@ import java.util.List;
  */
 
 final class GeneralPurposeNothing
-implements TemplateBooleanModel, TemplateScalarModel, TemplateSequenceModel, 
TemplateHashModelEx, TemplateMethodModelEx {
+implements TemplateBooleanModel, TemplateScalarModel, TemplateSequenceModel, 
TemplateHashModelEx2, TemplateMethodModelEx {
 
     private static final TemplateModel instance = new GeneralPurposeNothing();
-      
-    private static final TemplateCollectionModel EMPTY_COLLECTION = new 
SimpleCollection(new ArrayList(0));
 
     private GeneralPurposeNothing() {
     }
@@ -71,10 +70,14 @@ implements TemplateBooleanModel, TemplateScalarModel, 
TemplateSequenceModel, Tem
     }
     
     public TemplateCollectionModel keys() {
-        return EMPTY_COLLECTION;
+        return Constants.EMPTY_COLLECTION;
     }
 
     public TemplateCollectionModel values() {
-        return EMPTY_COLLECTION;
+        return Constants.EMPTY_COLLECTION;
+    }
+
+    public KeyValuePairIterator keyValuePairIterator() throws 
TemplateModelException {
+        return Constants.EMPTY_KEY_VALUE_PAIR_ITERATOR;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/889b8a96/src/manual/en_US/book.xml
----------------------------------------------------------------------
diff --git a/src/manual/en_US/book.xml b/src/manual/en_US/book.xml
index 1288f8a..6d6d6f9 100644
--- a/src/manual/en_US/book.xml
+++ b/src/manual/en_US/book.xml
@@ -26982,10 +26982,12 @@ TemplateModel x = env.getVariable("x");  // get 
variable x</programlisting>
             </listitem>
 
             <listitem>
-              <para><literal>Constants.EMPTY_HASH</literal> now implements
+              <para><literal>Constants.EMPTY_HASH</literal> and
+              <literal>GeneralPurposeNothing</literal> (the value of
+              <literal>missingVar!</literal>) now implements
               <literal>TemplateHashModelEx2</literal>, so it can be listed
-              with <literal>&lt;#list ... as k, v&gt;</literal>. Earlier it
-              was only a <literal>TemplateHashModelEx</literal>.</para>
+              with <literal>&lt;#list ... as k, v&gt;</literal>. Earlier they
+              were only a <literal>TemplateHashModelEx</literal>-s.</para>
             </listitem>
 
             <listitem>

Reply via email to