This is an automated email from the ASF dual-hosted git repository. ddekany pushed a commit to branch 3 in repository https://gitbox.apache.org/repos/asf/freemarker.git
commit 10e312945e931506a975b47f7b8cb984c1ea9a48 Author: ddekany <ddek...@apache.org> AuthorDate: Sat Dec 31 22:35:02 2022 +0100 Forward ported from 2.3-gae: Typo fixes, and some minor javadoc improvements --- .../freemarker/converter/_ConverterUtils.java | 2 +- .../freemarker/core/BuiltInsForStringsBasic.java | 36 +++++++++------ .../org/apache/freemarker/core/JSONParser.java | 15 +------ .../org/apache/freemarker/core/_DelayedAOrAn.java | 2 +- .../core/_DelayedConversionToString.java | 2 +- .../freemarker/core/_DelayedGetCanonicalForm.java | 2 +- .../apache/freemarker/core/_DelayedGetMessage.java | 2 +- .../core/_DelayedGetMessageWithoutStackTop.java | 2 +- .../org/apache/freemarker/core/_DelayedJQuote.java | 2 +- .../freemarker/core/_DelayedJQuotedListing.java | 6 +-- .../freemarker/core/_DelayedJoinWithComma.java | 2 +- .../_DelayedTemplateLanguageTypeDescription.java | 2 +- .../freemarker/core/_ErrorDescriptionBuilder.java | 10 ++--- .../java/org/apache/freemarker/core/_Java8.java | 2 +- .../org/apache/freemarker/core/_Java8Impl.java | 2 +- .../_ObjectBuilderSettingEvaluationException.java | 2 +- .../core/_ObjectBuilderSettingEvaluator.java | 52 ++++++---------------- .../core/_SettingEvaluationEnvironment.java | 6 +-- ..._UnexpectedTypeErrorExplainerTemplateModel.java | 2 +- .../impl/BigDecimalArithmeticEngine.java | 6 +-- .../freemarker/core/debug/_DebuggerService.java | 10 ++--- .../core/model/TemplateMarkupOutputModel.java | 4 +- .../outputformat/CommonMarkupOutputFormat.java | 14 +++++- .../core/outputformat/MarkupOutputFormat.java | 10 ++--- .../templateresolver/TemplateLoadingSource.java | 8 ++-- .../freemarker/core/util/_ArrayAdapterList.java | 2 +- .../freemarker/core/util/_ArrayIterator.java | 2 +- .../apache/freemarker/core/util/_ClassUtils.java | 8 ++-- .../freemarker/core/util/_CollectionUtils.java | 12 +---- .../apache/freemarker/core/util/_DateUtils.java | 8 +--- .../apache/freemarker/core/util/_JavaVersions.java | 2 +- .../apache/freemarker/core/util/_NumberUtils.java | 2 +- .../freemarker/core/util/_SortedArraySet.java | 2 +- .../apache/freemarker/core/util/_StringUtils.java | 10 ++--- .../core/util/_UnmodifiableCompositeSet.java | 2 +- .../freemarker/core/util/_UnmodifiableSet.java | 2 +- .../core/valueformat/TemplateNumberFormat.java | 6 +-- freemarker-manual/src/main/docgen/en_US/book.xml | 4 +- .../CopyrightCommentRemoverTemplateLoader.java | 18 +++----- 39 files changed, 124 insertions(+), 159 deletions(-) diff --git a/freemarker-converter/src/main/java/org/apache/freemarker/converter/_ConverterUtils.java b/freemarker-converter/src/main/java/org/apache/freemarker/converter/_ConverterUtils.java index 5b26b580..4c14be48 100644 --- a/freemarker-converter/src/main/java/org/apache/freemarker/converter/_ConverterUtils.java +++ b/freemarker-converter/src/main/java/org/apache/freemarker/converter/_ConverterUtils.java @@ -19,7 +19,7 @@ package org.apache.freemarker.converter; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public final class _ConverterUtils { private _ConverterUtils() { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsBasic.java b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsBasic.java index be2910d9..680cfe82 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsBasic.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForStringsBasic.java @@ -19,24 +19,20 @@ package org.apache.freemarker.core; -import static org.apache.freemarker.core.util.CallableUtils.*; +import org.apache.freemarker.core.model.*; +import org.apache.freemarker.core.model.impl.SimpleNumber; +import org.apache.freemarker.core.model.impl.SimpleString; +import org.apache.freemarker.core.pluggablebuiltin.TruncateBuiltinAlgorithm; +import org.apache.freemarker.core.util.CallableUtils; +import org.apache.freemarker.core.util._StringUtils; import java.util.ArrayList; +import java.util.Locale; import java.util.StringTokenizer; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.freemarker.core.model.ArgumentArrayLayout; -import org.apache.freemarker.core.model.TemplateBooleanModel; -import org.apache.freemarker.core.model.TemplateFunctionModel; -import org.apache.freemarker.core.model.TemplateMarkupOutputModel; -import org.apache.freemarker.core.model.TemplateModel; -import org.apache.freemarker.core.model.TemplateStringModel; -import org.apache.freemarker.core.model.impl.SimpleNumber; -import org.apache.freemarker.core.model.impl.SimpleString; -import org.apache.freemarker.core.pluggablebuiltin.TruncateBuiltinAlgorithm; -import org.apache.freemarker.core.util.CallableUtils; -import org.apache.freemarker.core.util._StringUtils; +import static org.apache.freemarker.core.util.CallableUtils.*; class BuiltInsForStringsBasic { @@ -488,7 +484,14 @@ class BuiltInsForStringsBasic { TemplateModel calculateResult(String s, Environment env) { return new SimpleString(s.toLowerCase(env.getLocale())); } - } + } + + static class c_lower_caseBI extends BuiltInForString { + @Override + TemplateModel calculateResult(String s, Environment env) { + return new SimpleString(s.toLowerCase(Locale.ROOT)); + } + } static class padBI extends BuiltInForString { @@ -922,6 +925,13 @@ class BuiltInsForStringsBasic { } } + static class c_upper_caseBI extends BuiltInForString { + @Override + TemplateModel calculateResult(String s, Environment env) { + return new SimpleString(s.toUpperCase(Locale.ROOT)); + } + } + static class word_listBI extends BuiltInForString { @Override TemplateModel calculateResult(String s, Environment env) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/JSONParser.java b/freemarker-core/src/main/java/org/apache/freemarker/core/JSONParser.java index 5c5ae480..50ef8de8 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/JSONParser.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/JSONParser.java @@ -19,25 +19,14 @@ package org.apache.freemarker.core; -import java.math.BigDecimal; -import java.util.LinkedHashMap; -import java.util.Map; - -import org.apache.freemarker.core.model.TemplateBooleanModel; -import org.apache.freemarker.core.model.TemplateHashModelEx; -import org.apache.freemarker.core.model.TemplateModel; -import org.apache.freemarker.core.model.TemplateNullModel; -import org.apache.freemarker.core.model.TemplateNumberModel; -import org.apache.freemarker.core.model.TemplateSequenceModel; -import org.apache.freemarker.core.model.TemplateStringModel; -import org.apache.freemarker.core.model.impl.SimpleHash; +import org.apache.freemarker.core.model.*; import org.apache.freemarker.core.model.impl.SimpleNumber; import org.apache.freemarker.core.model.impl.SimpleString; import org.apache.freemarker.core.util.BugException; import org.apache.freemarker.core.util._NumberUtils; import org.apache.freemarker.core.util._StringUtils; -import jdk.nashorn.internal.objects.NativeNumber; +import java.math.BigDecimal; /** * JSON parser that returns a {@link TameplatModel}, similar to what FTL literals product (and so, what diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedAOrAn.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedAOrAn.java index 1c5bc093..c2a62071 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedAOrAn.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedAOrAn.java @@ -19,7 +19,7 @@ package org.apache.freemarker.core; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedAOrAn extends _DelayedConversionToString { public _DelayedAOrAn(Object object) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedConversionToString.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedConversionToString.java index 4fbe13fa..7859407e 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedConversionToString.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedConversionToString.java @@ -19,7 +19,7 @@ package org.apache.freemarker.core; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public abstract class _DelayedConversionToString { private static final String NOT_SET = new String(); diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetCanonicalForm.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetCanonicalForm.java index 38a4cd80..077c6481 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetCanonicalForm.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetCanonicalForm.java @@ -20,7 +20,7 @@ package org.apache.freemarker.core; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedGetCanonicalForm extends _DelayedConversionToString { public _DelayedGetCanonicalForm(ASTNode obj) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessage.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessage.java index 7bef399e..676ccb9d 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessage.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessage.java @@ -19,7 +19,7 @@ package org.apache.freemarker.core; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedGetMessage extends _DelayedConversionToString { public _DelayedGetMessage(Throwable exception) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessageWithoutStackTop.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessageWithoutStackTop.java index 7694c15f..a94d360f 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessageWithoutStackTop.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedGetMessageWithoutStackTop.java @@ -19,7 +19,7 @@ package org.apache.freemarker.core; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedGetMessageWithoutStackTop extends _DelayedConversionToString { public _DelayedGetMessageWithoutStackTop(TemplateException exception) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuote.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuote.java index 0d045742..73786c8f 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuote.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuote.java @@ -21,7 +21,7 @@ package org.apache.freemarker.core; import org.apache.freemarker.core.util._StringUtils; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedJQuote extends _DelayedConversionToString { public _DelayedJQuote(Object object) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuotedListing.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuotedListing.java index d2512815..0852fa07 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuotedListing.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuotedListing.java @@ -19,11 +19,11 @@ package org.apache.freemarker.core; -import java.util.Collection; - import org.apache.freemarker.core.util._StringUtils; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +import java.util.Collection; + +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedJQuotedListing extends _DelayedConversionToString { public _DelayedJQuotedListing(Collection<?> object) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJoinWithComma.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJoinWithComma.java index 7ae1da33..2234609f 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJoinWithComma.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJoinWithComma.java @@ -19,7 +19,7 @@ package org.apache.freemarker.core; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedJoinWithComma extends _DelayedConversionToString { public _DelayedJoinWithComma(String[] items) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedTemplateLanguageTypeDescription.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedTemplateLanguageTypeDescription.java index 4c22bc27..a49493cd 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedTemplateLanguageTypeDescription.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedTemplateLanguageTypeDescription.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core; import org.apache.freemarker.core.model.TemplateModel; import org.apache.freemarker.core.util.TemplateLanguageUtils; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _DelayedTemplateLanguageTypeDescription extends _DelayedConversionToString { public _DelayedTemplateLanguageTypeDescription(TemplateModel tm) { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_ErrorDescriptionBuilder.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_ErrorDescriptionBuilder.java index f00da1ab..792634d1 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_ErrorDescriptionBuilder.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_ErrorDescriptionBuilder.java @@ -19,18 +19,18 @@ package org.apache.freemarker.core; -import java.lang.reflect.Constructor; -import java.lang.reflect.Member; -import java.lang.reflect.Method; - import org.apache.freemarker.core.model.impl._MethodUtils; import org.apache.freemarker.core.util._ClassUtils; import org.apache.freemarker.core.util._StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.lang.reflect.Constructor; +import java.lang.reflect.Member; +import java.lang.reflect.Method; + /** - * Used internally only, might changes without notice! + * Used internally only, might change without notice! * Packs a structured from of the error description from which the error message can be rendered on-demand. * Note that this class isn't serializable, thus the containing exception should render the message before it's * serialized. diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8.java index 037ef9a6..491a3ddc 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core; import java.lang.reflect.Method; /** - * Used internally only, might changes without notice! + * Used internally only, might change without notice! * Used for accessing functionality that's only present in Java 6 or later. */ public interface _Java8 { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8Impl.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8Impl.java index 527a180a..c94fbf5c 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8Impl.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_Java8Impl.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core; import java.lang.reflect.Method; /** - * Used internally only, might changes without notice! + * Used internally only, might change without notice! * Used for accessing functionality that's only present in Java 8 or later. */ public final class _Java8Impl implements _Java8 { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluationException.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluationException.java index 6c8e700c..8b3410c7 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluationException.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluationException.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core; import org.apache.freemarker.core.util._StringUtils; /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * Thrown by {@link _ObjectBuilderSettingEvaluator}. */ public class _ObjectBuilderSettingEvaluationException extends Exception { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluator.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluator.java index ec52865c..9bfd1c35 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluator.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_ObjectBuilderSettingEvaluator.java @@ -19,6 +19,17 @@ package org.apache.freemarker.core; +import org.apache.freemarker.core.model.ObjectWrappingException; +import org.apache.freemarker.core.model.TemplateHashModel; +import org.apache.freemarker.core.model.TemplateModel; +import org.apache.freemarker.core.model.impl.DefaultObjectWrapper; +import org.apache.freemarker.core.model.impl.JavaMethodModel; +import org.apache.freemarker.core.model.impl.RestrictedObjectWrapper; +import org.apache.freemarker.core.outputformat.impl.*; +import org.apache.freemarker.core.pluggablebuiltin.impl.DefaultTruncateBuiltinAlgorithm; +import org.apache.freemarker.core.templateresolver.*; +import org.apache.freemarker.core.util.*; + import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; @@ -27,45 +38,10 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.math.BigDecimal; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Properties; - -import org.apache.freemarker.core.model.ObjectWrappingException; -import org.apache.freemarker.core.model.TemplateHashModel; -import org.apache.freemarker.core.model.TemplateModel; -import org.apache.freemarker.core.model.impl.DefaultObjectWrapper; -import org.apache.freemarker.core.model.impl.JavaMethodModel; -import org.apache.freemarker.core.model.impl.RestrictedObjectWrapper; -import org.apache.freemarker.core.outputformat.impl.HTMLOutputFormat; -import org.apache.freemarker.core.outputformat.impl.PlainTextOutputFormat; -import org.apache.freemarker.core.outputformat.impl.RTFOutputFormat; -import org.apache.freemarker.core.outputformat.impl.UndefinedOutputFormat; -import org.apache.freemarker.core.outputformat.impl.XHTMLOutputFormat; -import org.apache.freemarker.core.outputformat.impl.XMLOutputFormat; -import org.apache.freemarker.core.pluggablebuiltin.impl.DefaultTruncateBuiltinAlgorithm; -import org.apache.freemarker.core.templateresolver.AndMatcher; -import org.apache.freemarker.core.templateresolver.ConditionalTemplateConfigurationFactory; -import org.apache.freemarker.core.templateresolver.FileExtensionMatcher; -import org.apache.freemarker.core.templateresolver.FileNameGlobMatcher; -import org.apache.freemarker.core.templateresolver.FirstMatchTemplateConfigurationFactory; -import org.apache.freemarker.core.templateresolver.MergingTemplateConfigurationFactory; -import org.apache.freemarker.core.templateresolver.NotMatcher; -import org.apache.freemarker.core.templateresolver.OrMatcher; -import org.apache.freemarker.core.templateresolver.PathGlobMatcher; -import org.apache.freemarker.core.templateresolver.PathRegexMatcher; -import org.apache.freemarker.core.util.BugException; -import org.apache.freemarker.core.util.GenericParseException; -import org.apache.freemarker.core.util.TemplateLanguageUtils; -import org.apache.freemarker.core.util._ClassUtils; -import org.apache.freemarker.core.util._StringUtils; +import java.util.*; /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * * Evaluates object builder expressions used in configuration {@link Properties}. * It should be replaced with FTL later (when it was improved to be practical for this), so the syntax should be @@ -442,7 +418,7 @@ public class _ObjectBuilderSettingEvaluator { } } else { if (resultCoerced) { - // The FTL way (BigDecimal is loseless, and it will be coerced to the target type later): + // The FTL way (BigDecimal is lossless, and it will be coerced to the target type later): return new BigDecimal(numStr); } else { // The Java way (lossy but familiar): diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_SettingEvaluationEnvironment.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_SettingEvaluationEnvironment.java index 9501185e..d4f68470 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_SettingEvaluationEnvironment.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_SettingEvaluationEnvironment.java @@ -19,12 +19,12 @@ package org.apache.freemarker.core; -import java.util.Properties; - import org.apache.freemarker.core.model.impl.DefaultObjectWrapper; +import java.util.Properties; + /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * The runtime environment used during the evaluation of configuration {@link Properties}. */ public class _SettingEvaluationEnvironment { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_UnexpectedTypeErrorExplainerTemplateModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_UnexpectedTypeErrorExplainerTemplateModel.java index 56481b87..456bef97 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/_UnexpectedTypeErrorExplainerTemplateModel.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_UnexpectedTypeErrorExplainerTemplateModel.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core; import org.apache.freemarker.core.model.TemplateModel; /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * * <p>Implemented by {@link TemplateModel}-s that can explain why they don't implement a certain type. * */ diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/arithmetic/impl/BigDecimalArithmeticEngine.java b/freemarker-core/src/main/java/org/apache/freemarker/core/arithmetic/impl/BigDecimalArithmeticEngine.java index 827b0e84..63512a07 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/arithmetic/impl/BigDecimalArithmeticEngine.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/arithmetic/impl/BigDecimalArithmeticEngine.java @@ -18,11 +18,11 @@ */ package org.apache.freemarker.core.arithmetic.impl; -import java.math.BigDecimal; - import org.apache.freemarker.core.arithmetic.ArithmeticEngine; import org.apache.freemarker.core.util._NumberUtils; +import java.math.BigDecimal; + /** * Arithmetic engine that converts all numbers to {@link BigDecimal} and then operates on them, and also keeps the * result as a {@link BigDecimal}. This is FreeMarker's default arithmetic engine. @@ -48,7 +48,7 @@ public class BigDecimalArithmeticEngine extends ArithmeticEngine { return 0; } else { // The most common case is comparing values of the same type. As BigDecimal can represent all of these - // with loseless round-trip (i.e., converting to BigDecimal and then back the original type gives the + // with lossless round-trip (i.e., converting to BigDecimal and then back the original type gives the // original value), we can avoid conversion to BigDecimal without changing the result. if (first.getClass() == second.getClass()) { // Bit of optimization for this is a very common case: diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/_DebuggerService.java b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/_DebuggerService.java index 4d379178..9f5caf4d 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/_DebuggerService.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/_DebuggerService.java @@ -19,16 +19,16 @@ package org.apache.freemarker.core.debug; -import java.rmi.RemoteException; -import java.util.Collections; -import java.util.List; - import org.apache.freemarker.core.Environment; import org.apache.freemarker.core.Template; import org.apache.freemarker.core.util._SecurityUtils; +import java.rmi.RemoteException; +import java.util.Collections; +import java.util.List; + /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * This class provides debugging hooks for the core FreeMarker engine. It is * not usable for anyone outside the FreeMarker core classes. */ diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateMarkupOutputModel.java b/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateMarkupOutputModel.java index aff86575..3f813981 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateMarkupOutputModel.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/model/TemplateMarkupOutputModel.java @@ -27,8 +27,8 @@ import org.apache.freemarker.core.outputformat.OutputFormat; * mechanism. Values of this kind are exempt from {@link OutputFormat}-based automatic escaping. * * <p> - * Each implementation of this type has a {@link OutputFormat} subclass pair, whose singleton instance is returned by - * {@link #getOutputFormat()}. See more about how markup output values work at {@link OutputFormat}. + * Each implementation of this type has a corresponding {@link OutputFormat} subclass, whose singleton instance is + * returned by {@link #getOutputFormat()}. See more about how markup output values work at {@link OutputFormat}. * * <p> * Note that {@link TemplateMarkupOutputModel}-s are by design not treated like {@link TemplateStringModel}-s, and so diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/CommonMarkupOutputFormat.java b/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/CommonMarkupOutputFormat.java index 337d37bc..ce1ee85a 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/CommonMarkupOutputFormat.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/CommonMarkupOutputFormat.java @@ -18,11 +18,11 @@ */ package org.apache.freemarker.core.outputformat; +import org.apache.freemarker.core.TemplateException; + import java.io.IOException; import java.io.Writer; -import org.apache.freemarker.core.TemplateException; - /** * Common superclass for implementing {@link MarkupOutputFormat}-s that use a {@link CommonTemplateMarkupOutputModel} * subclass. @@ -115,6 +115,16 @@ public abstract class CommonMarkupOutputFormat<MO extends CommonTemplateMarkupOu /** * Creates a new {@link CommonTemplateMarkupOutputModel} that's bound to this {@link OutputFormat} instance. + * When this is called from {@link CommonMarkupOutputFormat}, exactly one of the parameters will be + * non-{@code null}. + * + * @param plainTextContent + * {@code null} if the content is markup that possibly can be described as plain text without loss. + * @param markupContent + * Typically will be {@code null} if {@code plainTextContent} is not {@code null}. While the plain text always + * can be converted to markup via {@link #escapePlainText(String)}, it's up to the implementation if it wants + * to do that now and store the markup, or later on demand (like each time when + * {@link #getMarkupString(CommonTemplateMarkupOutputModel)} is called). */ protected abstract MO newTemplateMarkupOutputModel(String plainTextContent, String markupContent) throws TemplateException; diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/MarkupOutputFormat.java b/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/MarkupOutputFormat.java index 77ba50c6..ed0b36fb 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/MarkupOutputFormat.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/MarkupOutputFormat.java @@ -18,15 +18,15 @@ */ package org.apache.freemarker.core.outputformat; -import java.io.IOException; -import java.io.Writer; - import org.apache.freemarker.core.Configuration; import org.apache.freemarker.core.TemplateException; import org.apache.freemarker.core.model.TemplateMarkupOutputModel; import org.apache.freemarker.core.outputformat.impl.HTMLOutputFormat; import org.apache.freemarker.core.outputformat.impl.TemplateHTMLOutputModel; +import java.io.IOException; +import java.io.Writer; + /** * Superclass of {@link OutputFormat}-s that represent a "markup" format, which is any format where certain character * sequences have special meaning and thus may need escaping. (Escaping is important for FreeMarker, as typically it has @@ -78,7 +78,7 @@ public abstract class MarkupOutputFormat<MO extends TemplateMarkupOutputModel> e /** * Equivalent to calling {@link #fromPlainTextByEscaping(String)} and then - * {@link #output(TemplateMarkupOutputModel, Writer)}, but the implementation may uses a more efficient solution. + * {@link #output(TemplateMarkupOutputModel, Writer)}, but the implementation may use a more efficient solution. */ public abstract void output(String textToEsc, Writer out) throws IOException, TemplateException; @@ -106,7 +106,7 @@ public abstract class MarkupOutputFormat<MO extends TemplateMarkupOutputModel> e /** * Should give the same result as {@link #fromPlainTextByEscaping(String)} and then - * {@link #getMarkupString(TemplateMarkupOutputModel)}, but the implementation may uses a more efficient solution. + * {@link #getMarkupString(TemplateMarkupOutputModel)}, but the implementation may use a more efficient solution. */ public abstract String escapePlainText(String plainTextContent) throws TemplateException; diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java index fe39b54a..e1ad6391 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/templateresolver/TemplateLoadingSource.java @@ -18,16 +18,16 @@ */ package org.apache.freemarker.core.templateresolver; -import java.io.Serializable; -import java.util.HashMap; - import org.apache.freemarker.core.templateresolver.impl.ByteArrayTemplateLoader; import org.apache.freemarker.core.templateresolver.impl.FileTemplateLoader; +import java.io.Serializable; +import java.util.HashMap; + /** * The point of {@link TemplateLoadingSource} is that with their {@link Object#equals(Object)} method we can tell if two * cache entries were generated from the same physical resource or not. Comparing the template names isn't enough, - * because a {@link TemplateLoader} may uses some kind of fallback mechanism, such as delegating to other + * because a {@link TemplateLoader} may use some kind of fallback mechanism, such as delegating to other * {@link TemplateLoader}-s until the template is found. Like if we have two {@link FileTemplateLoader}-s with different * physical root directories, both can contain {@code "foo/bar.f3ah"}, but obviously the two files aren't the same. * diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayAdapterList.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayAdapterList.java index c3e5d8f9..eab4adb5 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayAdapterList.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayAdapterList.java @@ -24,7 +24,7 @@ import java.util.Arrays; import java.util.Iterator; /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * Immutable list that wraps an array that's known to be non-changing. */ public class _ArrayAdapterList<E> extends AbstractList<E> { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java index 0ff9241a..68d2225c 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core.util; import java.util.Iterator; import java.util.NoSuchElementException; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _ArrayIterator<T> implements Iterator<T> { private final T[] array; diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ClassUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ClassUtils.java index 00aaadfb..2647e61f 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ClassUtils.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_ClassUtils.java @@ -19,6 +19,8 @@ package org.apache.freemarker.core.util; +import org.apache.freemarker.core.model.impl.BeanModel; + import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Array; @@ -27,8 +29,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; -import org.apache.freemarker.core.model.impl.BeanModel; - public class _ClassUtils { private static final String ORG_APACHE_FREEMARKER = "org.apache.freemarker."; @@ -216,7 +216,7 @@ public class _ClassUtils { throws IOException { InputStream ins; try { - // This is how we did this earlier. May uses some JarURLConnection caches, which leads to the problems. + // This is how we did this earlier. May use some JarURLConnection caches, which leads to the problems. ins = baseClass.getResourceAsStream(resource); } catch (Exception e) { // Workaround for "IllegalStateException: zip file closed", and other related exceptions. This happens due @@ -261,7 +261,7 @@ public class _ClassUtils { InputStream ins = null; try { try { - // This is how we did this earlier. May uses some JarURLConnection caches, which leads to the problems. + // This is how we did this earlier. May use some JarURLConnection caches, which leads to the problems. ins = baseClass.getResourceAsStream(resource); } catch (Exception e) { throw new MaybeZipFileClosedException(); diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_CollectionUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_CollectionUtils.java index 60b94a72..ba9069b4 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_CollectionUtils.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_CollectionUtils.java @@ -19,18 +19,10 @@ package org.apache.freemarker.core.util; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * {@link Collection} and {@link Map}-related utilities. */ public class _CollectionUtils { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_DateUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_DateUtils.java index 60201b6b..e010d9fd 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_DateUtils.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_DateUtils.java @@ -20,16 +20,12 @@ package org.apache.freemarker.core.util; import java.text.ParseException; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.Locale; -import java.util.TimeZone; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * Don't use this; used internally by FreeMarker, might changes without notice. + * Don't use this; used internally by FreeMarker, might change without notice. * Date and time related utilities. */ public class _DateUtils { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_JavaVersions.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_JavaVersions.java index 88efaca0..986e2437 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_JavaVersions.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_JavaVersions.java @@ -24,7 +24,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Used internally only, might changes without notice! + * Used internally only, might change without notice! */ public final class _JavaVersions { diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_NumberUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_NumberUtils.java index 9c65eaf7..bfd324be 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_NumberUtils.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_NumberUtils.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core.util; import java.math.BigDecimal; import java.math.BigInteger; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _NumberUtils { private static final BigDecimal BIG_DECIMAL_INT_MIN = BigDecimal.valueOf(Integer.MIN_VALUE); diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_SortedArraySet.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_SortedArraySet.java index 788fed7d..414da33f 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_SortedArraySet.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_SortedArraySet.java @@ -23,7 +23,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Iterator; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _SortedArraySet<E> extends _UnmodifiableSet<E> { private final E[] array; diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java index 587b20fa..228488e7 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_StringUtils.java @@ -19,6 +19,10 @@ package org.apache.freemarker.core.util; +import org.apache.freemarker.core.Environment; +import org.apache.freemarker.core.Template; +import org.apache.freemarker.core.Version; + import java.io.IOException; import java.io.UnsupportedEncodingException; import java.io.Writer; @@ -29,11 +33,7 @@ import java.util.Map; import java.util.StringTokenizer; import java.util.regex.Pattern; -import org.apache.freemarker.core.Environment; -import org.apache.freemarker.core.Template; -import org.apache.freemarker.core.Version; - -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _StringUtils { private static final char[] LT = new char[] { '&', 'l', 't', ';' }; diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java index ab88f57f..23034d06 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java @@ -22,7 +22,7 @@ package org.apache.freemarker.core.util; import java.util.Iterator; import java.util.Set; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public class _UnmodifiableCompositeSet<E> extends _UnmodifiableSet<E> { private final Set<E> set1, set2; diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableSet.java b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableSet.java index 7e08815d..464e8410 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableSet.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/util/_UnmodifiableSet.java @@ -21,7 +21,7 @@ package org.apache.freemarker.core.util; import java.util.AbstractSet; -/** Don't use this; used internally by FreeMarker, might changes without notice. */ +/** Don't use this; used internally by FreeMarker, might change without notice. */ public abstract class _UnmodifiableSet<E> extends AbstractSet<E> { @Override diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormat.java b/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormat.java index 25e7ad46..47904edb 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormat.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormat.java @@ -18,8 +18,6 @@ */ package org.apache.freemarker.core.valueformat; -import java.text.NumberFormat; - import org.apache.freemarker.core.Environment; import org.apache.freemarker.core.TemplateException; import org.apache.freemarker.core.arithmetic.ArithmeticEngine; @@ -27,6 +25,8 @@ import org.apache.freemarker.core.model.TemplateDateModel; import org.apache.freemarker.core.model.TemplateMarkupOutputModel; import org.apache.freemarker.core.model.TemplateNumberModel; +import java.text.NumberFormat; + /** * Represents a number format; used in templates for formatting and parsing with that format. This is similar to Java's * {@link NumberFormat}, but made to fit the requirements of FreeMarker. Also, it makes easier to define formats that @@ -84,7 +84,7 @@ public abstract class TemplateNumberFormat extends TemplateValueFormat { * will be support, it will be similar to {@link TemplateDateFormat#parse(String, int)}. */ public final Object parse(String s) throws TemplateValueFormatException { - throw new ParsingNotSupportedException("Number formats currenly don't support parsing"); + throw new ParsingNotSupportedException("Number formats currently don't support parsing"); } diff --git a/freemarker-manual/src/main/docgen/en_US/book.xml b/freemarker-manual/src/main/docgen/en_US/book.xml index 2f9d3b7d..c8492a93 100644 --- a/freemarker-manual/src/main/docgen/en_US/book.xml +++ b/freemarker-manual/src/main/docgen/en_US/book.xml @@ -10604,7 +10604,7 @@ cfg.setNumberFormat("@ua 0.####;; roundingMode=halfUp");</programlisting> linkend="gloss.unicode">UNICODE</link> text" (UTF-16). Nonetheless, there are situations when it must deal with <link linkend="gloss.charset">charsets</link>, because it has to exchange - data with the outer world that may uses various other charsets.</para> + data with the outer world that may use various other charsets.</para> <section> <title>The charset of the input</title> @@ -28786,7 +28786,7 @@ End book</programlisting> <answer> <para>FreeMarker uses the locale-sensitive number formatting capability of the Java platform. The default number format for - your locale may uses grouping or other formatting. If you don't + your locale may use grouping or other formatting. If you don't want that, you have to override the number format suggested by the Java platform with the <literal>number_format</literal> <link linkend="pgui_config_settings">FreeMarker setting</link>. For diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/CopyrightCommentRemoverTemplateLoader.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/CopyrightCommentRemoverTemplateLoader.java index 3c03a873..7a564ffa 100644 --- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/CopyrightCommentRemoverTemplateLoader.java +++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/CopyrightCommentRemoverTemplateLoader.java @@ -19,20 +19,12 @@ package org.apache.freemarker.test; -import java.io.IOException; -import java.io.InputStream; -import java.io.Reader; -import java.io.Serializable; -import java.io.StringReader; -import java.nio.charset.StandardCharsets; - import org.apache.commons.io.IOUtils; import org.apache.commons.io.input.ReaderInputStream; -import org.apache.freemarker.core.templateresolver.TemplateLoader; -import org.apache.freemarker.core.templateresolver.TemplateLoaderSession; -import org.apache.freemarker.core.templateresolver.TemplateLoadingResult; -import org.apache.freemarker.core.templateresolver.TemplateLoadingResultStatus; -import org.apache.freemarker.core.templateresolver.TemplateLoadingSource; +import org.apache.freemarker.core.templateresolver.*; + +import java.io.*; +import java.nio.charset.StandardCharsets; /** * Removes the Apache copyright boiler plate from the beginning of the template, so that they don't mess up the expected @@ -92,7 +84,7 @@ public class CopyrightCommentRemoverTemplateLoader implements TemplateLoader { return null; } try { - // Encoding then decosing in ISO-8859-1 is binary loseless + // Encoding then decoding in ISO-8859-1 is binary lossless String content = IOUtils.toString(in, StandardCharsets.ISO_8859_1.name()); return new ReaderInputStream( new StringReader(TestUtils.removeFTLCopyrightComment(content)),