Repository: incubator-freemarker
Updated Branches:
  refs/heads/2.3-gae 604017731 -> 4a5eec42d


Added DirectiveCallPlace.getTemplate(); we aren't concerned about its BC impact 
anymore, as FM3 breaks BC anyway.


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

Branch: refs/heads/2.3-gae
Commit: 846ef9434827229b3570a32ecd8067f73da0686a
Parents: 6040177
Author: ddekany <ddek...@apache.org>
Authored: Fri Mar 9 20:32:49 2018 +0100
Committer: ddekany <ddek...@apache.org>
Committed: Fri Mar 9 21:26:49 2018 +0100

----------------------------------------------------------------------
 .../java/freemarker/core/DirectiveCallPlace.java    | 16 +++++++++-------
 src/main/java/freemarker/core/TemplateObject.java   |  4 ----
 src/manual/en_US/book.xml                           |  5 +++++
 .../freemarker/core/DirectiveCallPlaceTest.java     |  6 +-----
 4 files changed, 15 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/846ef943/src/main/java/freemarker/core/DirectiveCallPlace.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/DirectiveCallPlace.java 
b/src/main/java/freemarker/core/DirectiveCallPlace.java
index f9c1dfc..ad6400f 100644
--- a/src/main/java/freemarker/core/DirectiveCallPlace.java
+++ b/src/main/java/freemarker/core/DirectiveCallPlace.java
@@ -36,12 +36,6 @@ import freemarker.template.utility.ObjectFactory;
  * directive call is first executed, via {@link #getOrCreateCustomData(Object, 
ObjectFactory)}.
  * 
  * <p>
- * Currently this method doesn't give you access to the {@link Template} 
object, because it's probable that future
- * versions of FreeMarker will be able to use the same parsed representation 
of a "file" for multiple {@link Template}
- * objects. Then the call place will be bound to the parsed representation, 
not to the {@link Template} objects that are
- * based on it.
- * 
- * <p>
  * <b>Don't implement this interface yourself</b>, as new methods can be added 
to it any time! It's only meant to be
  * implemented by the FreeMarker core.
  * 
@@ -54,7 +48,15 @@ import freemarker.template.utility.ObjectFactory;
  * @since 2.3.22
  */
 public interface DirectiveCallPlace {
-
+    
+    /**
+     * The template that contains this call; {@code null} if the call is not 
from a template (but directly from
+     * user Java code, for example).
+     * 
+     * @since 2.3.28
+     */
+    Template getTemplate();
+    
     /**
      * The 1-based column number of the first character of the directive call 
in the template source code, or -1 if it's
      * not known.

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/846ef943/src/main/java/freemarker/core/TemplateObject.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/TemplateObject.java 
b/src/main/java/freemarker/core/TemplateObject.java
index 18355d9..74afb1f 100644
--- a/src/main/java/freemarker/core/TemplateObject.java
+++ b/src/main/java/freemarker/core/TemplateObject.java
@@ -165,10 +165,6 @@ public abstract class TemplateObject {
         return true;
     }
 
-    /**
-     * @deprecated This method will be removed in FreeMarker 2.4 because of 
architectural changes!
-     */
-    @Deprecated
     public Template getTemplate() {
         return template;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/846ef943/src/manual/en_US/book.xml
----------------------------------------------------------------------
diff --git a/src/manual/en_US/book.xml b/src/manual/en_US/book.xml
index dab2c23..2346be1 100644
--- a/src/manual/en_US/book.xml
+++ b/src/manual/en_US/book.xml
@@ -27304,6 +27304,11 @@ TemplateModel x = env.getVariable("x");  // get 
variable x</programlisting>
             </listitem>
 
             <listitem>
+              <para><literal>DirectiveCallPlace</literal> now has a
+              <literal>Template getTemplate()</literal> method.</para>
+            </listitem>
+
+            <listitem>
               <para>Fixes in exception handling when calling JSP tags:</para>
 
               <itemizedlist>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/846ef943/src/test/java/freemarker/core/DirectiveCallPlaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/DirectiveCallPlaceTest.java 
b/src/test/java/freemarker/core/DirectiveCallPlaceTest.java
index 2617afc..dcbe59b 100644
--- a/src/test/java/freemarker/core/DirectiveCallPlaceTest.java
+++ b/src/test/java/freemarker/core/DirectiveCallPlaceTest.java
@@ -198,7 +198,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
             Writer out = env.getOut();
             DirectiveCallPlace callPlace = env.getCurrentDirectiveCallPlace();
             out.write("[");
-            out.write(getTemplateSourceName(callPlace));
+            out.write(callPlace.getTemplate().getSourceName());
             out.write(":");
             out.write(Integer.toString(callPlace.getBeginLine()));
             out.write(":");
@@ -213,10 +213,6 @@ public class DirectiveCallPlaceTest extends TemplateTest {
             }
         }
 
-        private String getTemplateSourceName(DirectiveCallPlace callPlace) {
-            return ((UnifiedCall) callPlace).getTemplate().getSourceName();
-        }
-        
     }
 
     private static class ArgPrinterDirective implements TemplateDirectiveModel 
{

Reply via email to