You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/08/08 17:57:01 UTC
[11/17] incubator-freemarker git commit: Renamed XxxUtil classes to
XxxUtils, as this convention is more widespread nowadays.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/MessageUtils.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/MessageUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/MessageUtils.java
new file mode 100644
index 0000000..3ce73b8
--- /dev/null
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/MessageUtils.java
@@ -0,0 +1,344 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.freemarker.core;
+
+import java.util.ArrayList;
+
+import org.apache.freemarker.core.model.TemplateModel;
+import org.apache.freemarker.core.model.TemplateModelException;
+import org.apache.freemarker.core.util._StringUtils;
+import org.apache.freemarker.core.valueformat.TemplateDateFormat;
+import org.apache.freemarker.core.valueformat.TemplateNumberFormat;
+import org.apache.freemarker.core.valueformat.TemplateValueFormatException;
+import org.apache.freemarker.core.valueformat.UnknownDateTypeFormattingUnsupportedException;
+
+/**
+ * Utilities for creating error messages (and other messages).
+ */
+class MessageUtils {
+
+ static final String UNKNOWN_DATE_TO_STRING_ERROR_MESSAGE
+ = "Can't convert the date-like value to string because it isn't "
+ + "known if it's a date (no time part), time or date-time value.";
+
+ static final String UNKNOWN_DATE_TYPE_ERROR_TIP =
+ "Use ?date, ?time, or ?dateTime to tell FreeMarker the exact type.";
+
+ static final Object[] UNKNOWN_DATE_TO_STRING_TIPS = {
+ UNKNOWN_DATE_TYPE_ERROR_TIP,
+ "If you need a particular format only once, use ?string(pattern), like ?string('dd.MM.yyyy HH:mm:ss'), "
+ + "to specify which fields to display. "
+ };
+
+ static final String FM3_SNAKE_CASE = "\nThe name contains '_' character, but since FreeMarker 3 names defined "
+ + "by the template language use camel case (e.g. someExampleName).";
+
+ static final String EMBEDDED_MESSAGE_BEGIN = "---begin-message---\n";
+
+ static final String EMBEDDED_MESSAGE_END = "\n---end-message---";
+
+ static final String ERROR_MESSAGE_HR = "----";
+
+ // Can't be instantiated
+ private MessageUtils() { }
+
+ static String formatLocationForSimpleParsingError(Template template, int line, int column) {
+ return formatLocation("in", template, line, column);
+ }
+
+ static String formatLocationForSimpleParsingError(String templateSourceOrLookupName, int line, int column) {
+ return formatLocation("in", templateSourceOrLookupName, line, column);
+ }
+
+ static String formatLocationForEvaluationError(Template template, int line, int column) {
+ return formatLocation("at", template, line, column);
+ }
+
+ static String formatLocationForEvaluationError(ASTDirMacroOrFunction macro, int line, int column) {
+ Template t = macro.getTemplate();
+ return formatLocation("at", t != null ? t.getSourceOrLookupName() : null, macro.getName(), macro.isFunction(),
+ line, column);
+ }
+
+ private static String formatLocation(String preposition, Template template, int line, int column) {
+ return formatLocation(preposition, template != null ? template.getSourceOrLookupName() : null, line, column);
+ }
+
+ private static String formatLocation(String preposition, String templateSourceName, int line, int column) {
+ return formatLocation(
+ preposition, templateSourceName,
+ null, false,
+ line, column);
+ }
+
+ private static String formatLocation(
+ String preposition, String templateSourceName,
+ String macroOrFuncName, boolean isFunction,
+ int line, int column) {
+ String templateDesc;
+ if (line < 0) {
+ templateDesc = "?eval-ed string";
+ macroOrFuncName = null;
+ } else {
+ templateDesc = templateSourceName != null
+ ? "template " + _StringUtils.jQuoteNoXSS(templateSourceName)
+ : "nameless template";
+ }
+ return "in " + templateDesc
+ + (macroOrFuncName != null
+ ? " in " + (isFunction ? "function " : "macro ") + _StringUtils.jQuote(macroOrFuncName)
+ : "")
+ + " "
+ + preposition + " " + formatPosition(line, column);
+ }
+
+ static String formatPosition(int line, int column) {
+ return "line " + (line >= 0 ? line : line - (ASTNode.RUNTIME_EVAL_LINE_DISPLACEMENT - 1))
+ + ", column " + column;
+ }
+
+ /**
+ * Returns a single line string that is no longer than {@code maxLength}.
+ * If will truncate the string at line-breaks too.
+ * The truncation is always signaled with a a {@code "..."} at the end of the result string.
+ */
+ static String shorten(String s, int maxLength) {
+ if (maxLength < 5) maxLength = 5;
+
+ boolean isTruncated = false;
+
+ int brIdx = s.indexOf('\n');
+ if (brIdx != -1) {
+ s = s.substring(0, brIdx);
+ isTruncated = true;
+ }
+ brIdx = s.indexOf('\r');
+ if (brIdx != -1) {
+ s = s.substring(0, brIdx);
+ isTruncated = true;
+ }
+
+ if (s.length() > maxLength) {
+ s = s.substring(0, maxLength - 3);
+ isTruncated = true;
+ }
+
+ if (!isTruncated) {
+ return s;
+ } else {
+ if (s.endsWith(".")) {
+ if (s.endsWith("..")) {
+ if (s.endsWith("...")) {
+ return s;
+ } else {
+ return s + ".";
+ }
+ } else {
+ return s + "..";
+ }
+ } else {
+ return s + "...";
+ }
+ }
+ }
+
+ static StringBuilder appendExpressionAsUntearable(StringBuilder sb, ASTExpression argExp) {
+ boolean needParen =
+ !(argExp instanceof ASTExpNumberLiteral)
+ && !(argExp instanceof ASTExpStringLiteral)
+ && !(argExp instanceof ASTExpBooleanLiteral)
+ && !(argExp instanceof ASTExpListLiteral)
+ && !(argExp instanceof ASTExpHashLiteral)
+ && !(argExp instanceof ASTExpVariable)
+ && !(argExp instanceof ASTExpDot)
+ && !(argExp instanceof ASTExpDynamicKeyName)
+ && !(argExp instanceof ASTExpFunctionCall)
+ && !(argExp instanceof ASTExpBuiltIn);
+ if (needParen) sb.append('(');
+ sb.append(argExp.getCanonicalForm());
+ if (needParen) sb.append(')');
+ return sb;
+ }
+
+ static TemplateModelException newArgCntError(String methodName, int argCnt, int expectedCnt) {
+ return newArgCntError(methodName, argCnt, expectedCnt, expectedCnt);
+ }
+
+ static TemplateModelException newArgCntError(String methodName, int argCnt, int minCnt, int maxCnt) {
+ ArrayList/*<Object>*/ desc = new ArrayList(20);
+
+ desc.add(methodName);
+
+ desc.add("(");
+ if (maxCnt != 0) desc.add("...");
+ desc.add(") expects ");
+
+ if (minCnt == maxCnt) {
+ if (maxCnt == 0) {
+ desc.add("no");
+ } else {
+ desc.add(Integer.valueOf(maxCnt));
+ }
+ } else if (maxCnt - minCnt == 1) {
+ desc.add(Integer.valueOf(minCnt));
+ desc.add(" or ");
+ desc.add(Integer.valueOf(maxCnt));
+ } else {
+ desc.add(Integer.valueOf(minCnt));
+ if (maxCnt != Integer.MAX_VALUE) {
+ desc.add(" to ");
+ desc.add(Integer.valueOf(maxCnt));
+ } else {
+ desc.add(" or more (unlimited)");
+ }
+ }
+ desc.add(" argument");
+ if (maxCnt > 1) desc.add("s");
+
+ desc.add(" but has received ");
+ if (argCnt == 0) {
+ desc.add("none");
+ } else {
+ desc.add(Integer.valueOf(argCnt));
+ }
+ desc.add(".");
+
+ return new _TemplateModelException(desc.toArray());
+ }
+
+ static TemplateModelException newMethodArgMustBeStringException(String methodName, int argIdx, TemplateModel arg) {
+ return newMethodArgUnexpectedTypeException(methodName, argIdx, "string", arg);
+ }
+
+ static TemplateModelException newMethodArgMustBeNumberException(String methodName, int argIdx, TemplateModel arg) {
+ return newMethodArgUnexpectedTypeException(methodName, argIdx, "number", arg);
+ }
+
+ static TemplateModelException newMethodArgMustBeBooleanException(String methodName, int argIdx, TemplateModel arg) {
+ return newMethodArgUnexpectedTypeException(methodName, argIdx, "boolean", arg);
+ }
+
+ static TemplateModelException newMethodArgMustBeExtendedHashException(
+ String methodName, int argIdx, TemplateModel arg) {
+ return newMethodArgUnexpectedTypeException(methodName, argIdx, "extended hash", arg);
+ }
+
+ static TemplateModelException newMethodArgMustBeSequenceException(
+ String methodName, int argIdx, TemplateModel arg) {
+ return newMethodArgUnexpectedTypeException(methodName, argIdx, "sequence", arg);
+ }
+
+ static TemplateModelException newMethodArgMustBeSequenceOrCollectionException(
+ String methodName, int argIdx, TemplateModel arg) {
+ return newMethodArgUnexpectedTypeException(methodName, argIdx, "sequence or collection", arg);
+ }
+
+ static TemplateModelException newMethodArgUnexpectedTypeException(
+ String methodName, int argIdx, String expectedType, TemplateModel arg) {
+ return new _TemplateModelException(
+ methodName, "(...) expects ", new _DelayedAOrAn(expectedType), " as argument #", Integer.valueOf(argIdx + 1),
+ ", but received ", new _DelayedAOrAn(new _DelayedFTLTypeDescription(arg)), ".");
+ }
+
+ /**
+ * The type of the argument was good, but it's value wasn't.
+ */
+ static TemplateModelException newMethodArgInvalidValueException(
+ String methodName, int argIdx, Object... details) {
+ return new _TemplateModelException(
+ methodName, "(...) argument #", Integer.valueOf(argIdx + 1),
+ " had invalid value: ", details);
+ }
+
+ /**
+ * The type of the argument was good, but the values of two or more arguments are inconsistent with each other.
+ */
+ static TemplateModelException newMethodArgsInvalidValueException(
+ String methodName, Object... details) {
+ return new _TemplateModelException(methodName, "(...) arguments have invalid value: ", details);
+ }
+
+ static TemplateException newInstantiatingClassNotAllowedException(String className, Environment env) {
+ return new _MiscTemplateException(env,
+ "Instantiating ", className, " is not allowed in the template for security reasons.");
+ }
+
+ static TemplateModelException newCantFormatUnknownTypeDateException(
+ ASTExpression dateSourceExpr, UnknownDateTypeFormattingUnsupportedException cause) {
+ return new _TemplateModelException(cause, null, new _ErrorDescriptionBuilder(
+ MessageUtils.UNKNOWN_DATE_TO_STRING_ERROR_MESSAGE)
+ .blame(dateSourceExpr)
+ .tips(MessageUtils.UNKNOWN_DATE_TO_STRING_TIPS));
+ }
+
+ static TemplateException newCantFormatDateException(TemplateDateFormat format, ASTExpression dataSrcExp,
+ TemplateValueFormatException e, boolean useTempModelExc) {
+ _ErrorDescriptionBuilder desc = new _ErrorDescriptionBuilder(
+ "Failed to format date/time/dateTime with format ", new _DelayedJQuote(format.getDescription()), ": ",
+ e.getMessage())
+ .blame(dataSrcExp);
+ return useTempModelExc
+ ? new _TemplateModelException(e, null, desc)
+ : new _MiscTemplateException(e, null, desc);
+ }
+
+ static TemplateException newCantFormatNumberException(TemplateNumberFormat format, ASTExpression dataSrcExp,
+ TemplateValueFormatException e, boolean useTempModelExc) {
+ _ErrorDescriptionBuilder desc = new _ErrorDescriptionBuilder(
+ "Failed to format number with format ", new _DelayedJQuote(format.getDescription()), ": ",
+ e.getMessage())
+ .blame(dataSrcExp);
+ return useTempModelExc
+ ? new _TemplateModelException(e, null, desc)
+ : new _MiscTemplateException(e, null, desc);
+ }
+
+ /**
+ * @return "a" or "an" or "a(n)" (or "" for empty string) for an FTL type name
+ */
+ static String getAOrAn(String s) {
+ if (s == null) return null;
+ if (s.length() == 0) return "";
+
+ char fc = Character.toLowerCase(s.charAt(0));
+ if (fc == 'a' || fc == 'e' || fc == 'i') {
+ return "an";
+ } else if (fc == 'h') {
+ String ls = s.toLowerCase();
+ if (ls.startsWith("has") || ls.startsWith("hi")) {
+ return "a";
+ } else if (ls.startsWith("ht")) {
+ return "an";
+ } else {
+ return "a(n)";
+ }
+ } else if (fc == 'u' || fc == 'o') {
+ return "a(n)";
+ } else {
+ char sc = (s.length() > 1) ? s.charAt(1) : '\0';
+ if (fc == 'x' && !(sc == 'a' || sc == 'e' || sc == 'i' || sc == 'a' || sc == 'o' || sc == 'u')) {
+ return "an";
+ } else {
+ return "a";
+ }
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/MiscUtil.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/MiscUtil.java b/freemarker-core/src/main/java/org/apache/freemarker/core/MiscUtil.java
deleted file mode 100644
index 35d5943..0000000
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/MiscUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.freemarker.core;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Utilities that didn't fit elsewhere.
- */
-class MiscUtil {
-
- // Can't be instatiated
- private MiscUtil() { }
-
- static final String C_FALSE = "false";
- static final String C_TRUE = "true";
-
- /**
- * Returns the map entries in source code order of the ASTExpression values.
- */
- static List/*Map.Entry*/ sortMapOfExpressions(Map/*<?, ASTExpression>*/ map) {
- ArrayList res = new ArrayList(map.entrySet());
- Collections.sort(res,
- new Comparator() { // for sorting to source code order
- @Override
- public int compare(Object o1, Object o2) {
- Map.Entry ent1 = (Map.Entry) o1;
- ASTExpression exp1 = (ASTExpression) ent1.getValue();
-
- Map.Entry ent2 = (Map.Entry) o2;
- ASTExpression exp2 = (ASTExpression) ent2.getValue();
-
- int res = exp1.beginLine - exp2.beginLine;
- if (res != 0) return res;
- res = exp1.beginColumn - exp2.beginColumn;
- if (res != 0) return res;
-
- if (ent1 == ent2) return 0;
-
- // Should never reach this
- return ((String) ent1.getKey()).compareTo((String) ent1.getKey());
- }
-
- });
- return res;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
index 9339c62..0c845b7 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableParsingAndProcessingConfiguration.java
@@ -28,7 +28,7 @@ import org.apache.freemarker.core.outputformat.impl.UndefinedOutputFormat;
import org.apache.freemarker.core.templateresolver.TemplateLoader;
import org.apache.freemarker.core.util._NullArgumentException;
import org.apache.freemarker.core.util._SortedArraySet;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
import org.apache.freemarker.core.util._UnmodifiableCompositeSet;
public abstract class MutableParsingAndProcessingConfiguration<
@@ -92,7 +92,7 @@ public abstract class MutableParsingAndProcessingConfiguration<
value, OutputFormat.class, true, _SettingEvaluationEnvironment.getCurrent()));
}
} else if (WHITESPACE_STRIPPING_KEY.equals(name)) {
- setWhitespaceStripping(_StringUtil.getYesNo(value));
+ setWhitespaceStripping(_StringUtils.getYesNo(value));
} else if (AUTO_ESCAPING_POLICY_KEY.equals(name)) {
if ("enableIfDefault".equals(value)) {
setAutoEscapingPolicy(AutoEscapingPolicy.ENABLE_IF_DEFAULT);
@@ -110,7 +110,7 @@ public abstract class MutableParsingAndProcessingConfiguration<
if (value.equalsIgnoreCase(DEFAULT_VALUE)) {
unsetRecognizeStandardFileExtensions();
} else {
- setRecognizeStandardFileExtensions(_StringUtil.getYesNo(value));
+ setRecognizeStandardFileExtensions(_StringUtils.getYesNo(value));
}
} else if (TEMPLATE_LANGUAGE_KEY.equals(name)) {
if ("FTL".equals(value)) {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
index d119bbc..d1684d3 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/MutableProcessingConfiguration.java
@@ -61,12 +61,12 @@ import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateNameForma
import org.apache.freemarker.core.util.FTLUtil;
import org.apache.freemarker.core.util.GenericParseException;
import org.apache.freemarker.core.util.OptInTemplateClassResolver;
-import org.apache.freemarker.core.util._ClassUtil;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._ClassUtils;
+import org.apache.freemarker.core.util._CollectionUtils;
import org.apache.freemarker.core.util._KeyValuePair;
import org.apache.freemarker.core.util._NullArgumentException;
import org.apache.freemarker.core.util._SortedArraySet;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
import org.apache.freemarker.core.valueformat.TemplateDateFormatFactory;
import org.apache.freemarker.core.valueformat.TemplateNumberFormatFactory;
@@ -367,7 +367,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
if (customNumberFormats == this.customNumberFormats) {
return;
}
- _CollectionUtil.safeCastMap("customNumberFormats", customNumberFormats,
+ _CollectionUtils.safeCastMap("customNumberFormats", customNumberFormats,
String.class, false,
TemplateNumberFormatFactory.class, false);
validateFormatNames(customNumberFormats.keySet());
@@ -638,7 +638,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
if (customDateFormats == this.customDateFormats) {
return;
}
- _CollectionUtil.safeCastMap("customDateFormats", customDateFormats,
+ _CollectionUtils.safeCastMap("customDateFormats", customDateFormats,
String.class, false,
TemplateDateFormatFactory.class, false);
validateFormatNames(customDateFormats.keySet());
@@ -1150,7 +1150,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
if (autoImports == this.autoImports) {
return;
}
- _CollectionUtil.safeCastMap("autoImports", autoImports, String.class, false, String.class, false);
+ _CollectionUtils.safeCastMap("autoImports", autoImports, String.class, false, String.class, false);
this.autoImports = Collections.unmodifiableMap(new LinkedHashMap<>(autoImports));
} else {
this.autoImports = autoImports;
@@ -1209,7 +1209,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
if (autoIncludes == this.autoIncludes) {
return;
}
- _CollectionUtil.safeCastList("autoIncludes", autoIncludes, String.class, false);
+ _CollectionUtils.safeCastList("autoIncludes", autoIncludes, String.class, false);
Set<String> uniqueItems = new LinkedHashSet<>(autoIncludes.size() * 4 / 3, 1f);
for (String templateName : autoIncludes) {
if (!uniqueItems.add(templateName)) {
@@ -1653,7 +1653,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
if (JVM_DEFAULT_VALUE.equalsIgnoreCase(value)) {
setLocale(Locale.getDefault());
} else {
- setLocale(_StringUtil.deduceLocale(value));
+ setLocale(_StringUtils.deduceLocale(value));
}
} else if (NUMBER_FORMAT_KEY.equals(name)) {
setNumberFormat(value);
@@ -1752,11 +1752,11 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
} else if (URL_ESCAPING_CHARSET_KEY.equals(name)) {
setURLEscapingCharset(Charset.forName(value));
} else if (AUTO_FLUSH_KEY.equals(name)) {
- setAutoFlush(_StringUtil.getYesNo(value));
+ setAutoFlush(_StringUtils.getYesNo(value));
} else if (SHOW_ERROR_TIPS_KEY.equals(name)) {
- setShowErrorTips(_StringUtil.getYesNo(value));
+ setShowErrorTips(_StringUtils.getYesNo(value));
} else if (API_BUILTIN_ENABLED_KEY.equals(name)) {
- setAPIBuiltinEnabled(_StringUtil.getYesNo(value));
+ setAPIBuiltinEnabled(_StringUtils.getYesNo(value));
} else if (NEW_BUILTIN_CLASS_RESOLVER_KEY.equals(name)) {
if ("unrestricted".equals(value)) {
setNewBuiltinClassResolver(TemplateClassResolver.UNRESTRICTED);
@@ -1775,7 +1775,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
trustedTemplates = segmentValue;
} else {
throw new InvalidSettingValueException(name, value,
- "Unrecognized list segment key: " + _StringUtil.jQuote(segmentKey) +
+ "Unrecognized list segment key: " + _StringUtils.jQuote(segmentKey) +
". Supported keys are: \"" + ALLOWED_CLASSES + "\", \"" +
TRUSTED_TEMPLATES + "\"");
}
@@ -1796,9 +1796,9 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
+ "looks like class name");
}
} else if (LAZY_AUTO_IMPORTS_KEY.equals(name)) {
- setLazyAutoImports(value.equals(NULL_VALUE) ? null : Boolean.valueOf(_StringUtil.getYesNo(value)));
+ setLazyAutoImports(value.equals(NULL_VALUE) ? null : Boolean.valueOf(_StringUtils.getYesNo(value)));
} else if (LAZY_IMPORTS_KEY.equals(name)) {
- setLazyImports(_StringUtil.getYesNo(value));
+ setLazyImports(_StringUtils.getYesNo(value));
} else if (AUTO_INCLUDES_KEY.equals(name)) {
setAutoIncludes(parseAsList(value));
} else if (AUTO_IMPORTS_KEY.equals(name)) {
@@ -1834,8 +1834,8 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
for (Object value : values) {
if (!expectedClass.isInstance(value)) {
throw new IllegalArgumentException(somethingsSentenceStart + " must be instances of "
- + _ClassUtil.getShortClassName(expectedClass) + ", but one of them was a(n) "
- + _ClassUtil.getShortClassNameOfObject(value) + ".");
+ + _ClassUtils.getShortClassName(expectedClass) + ", but one of them was a(n) "
+ + _ClassUtils.getShortClassNameOfObject(value) + ".");
}
}
}
@@ -2017,7 +2017,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
// When there's no need for inheritance:
customSettingsModifiable = false; // Copy-on-write on next modification
- return _CollectionUtil.unmodifiableMap(customSettings);
+ return _CollectionUtils.unmodifiableMap(customSettings);
}
/**
@@ -2185,7 +2185,7 @@ public abstract class MutableProcessingConfiguration<SelfT extends MutableProces
"Unexpected end of text: expected \"as\"");
String s = fetchKeyword();
if (!s.equalsIgnoreCase("as")) throw new GenericParseException(
- "Expected \"as\", but found " + _StringUtil.jQuote(s));
+ "Expected \"as\", but found " + _StringUtils.jQuote(s));
c = skipWS();
if (c == ' ') throw new GenericParseException(
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/NonSequenceOrCollectionException.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/NonSequenceOrCollectionException.java b/freemarker-core/src/main/java/org/apache/freemarker/core/NonSequenceOrCollectionException.java
index 2836230..c229808 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/NonSequenceOrCollectionException.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/NonSequenceOrCollectionException.java
@@ -23,7 +23,7 @@ import org.apache.freemarker.core.model.TemplateCollectionModel;
import org.apache.freemarker.core.model.TemplateModel;
import org.apache.freemarker.core.model.TemplateSequenceModel;
import org.apache.freemarker.core.model.WrapperTemplateModel;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._CollectionUtils;
/**
* Indicates that a {@link TemplateSequenceModel} or {@link TemplateCollectionModel} value was expected, but the value
@@ -53,7 +53,7 @@ public class NonSequenceOrCollectionException extends UnexpectedTypeException {
NonSequenceOrCollectionException(
ASTExpression blamed, TemplateModel model, Environment env)
throws InvalidReferenceException {
- this(blamed, model, _CollectionUtil.EMPTY_OBJECT_ARRAY, env);
+ this(blamed, model, _CollectionUtils.EMPTY_OBJECT_ARRAY, env);
}
NonSequenceOrCollectionException(
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/ParseException.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ParseException.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ParseException.java
index 2b87cfe..9480562 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ParseException.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ParseException.java
@@ -25,8 +25,8 @@ import java.util.Iterator;
import java.util.Set;
import org.apache.freemarker.core.util._NullArgumentException;
-import org.apache.freemarker.core.util._SecurityUtil;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._SecurityUtils;
+import org.apache.freemarker.core.util._StringUtils;
/**
* Parsing-time exception in a template (as opposed to a runtime exception, a {@link TemplateException}). This usually
@@ -76,7 +76,7 @@ public class ParseException extends IOException implements FMParserConstants {
/**
* The end of line string for this machine.
*/
- protected String eol = _SecurityUtil.getSystemProperty("line.separator", "\n");
+ protected String eol = _SecurityUtils.getSystemProperty("line.separator", "\n");
private String templateSourceName;
private String templateLookupName;
@@ -287,7 +287,7 @@ public class ParseException extends IOException implements FMParserConstants {
String prefix;
if (!isInJBossToolsMode()) {
prefix = "Syntax error "
- + MessageUtil.formatLocationForSimpleParsingError(getTemplateSourceOrLookupName(), lineNumber,
+ + MessageUtils.formatLocationForSimpleParsingError(getTemplateSourceOrLookupName(), lineNumber,
columnNumber)
+ ":\n";
} else {
@@ -437,7 +437,7 @@ public class ParseException extends IOException implements FMParserConstants {
+ "Check if you have a valid #if-#elseIf-#else or #list-#else structure.";
} else if (kind == END_IF || kind == ELSE_IF) {
return "Unexpected directive, "
- + _StringUtil.jQuote(nextToken)
+ + _StringUtils.jQuote(nextToken)
+ ". Check if you have a valid #if-#elseIf-#else structure.";
}
return null;
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/RegexpHelper.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/RegexpHelper.java b/freemarker-core/src/main/java/org/apache/freemarker/core/RegexpHelper.java
index d564d31..37b5fd5 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/RegexpHelper.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/RegexpHelper.java
@@ -24,7 +24,7 @@ import java.util.regex.PatternSyntaxException;
import org.apache.freemarker.core.model.TemplateModelException;
import org.apache.freemarker.core.templateresolver.impl.MruCacheStorage;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -145,7 +145,7 @@ final class RegexpHelper {
// [FM3] Should be an error
RegexpHelper.logFlagWarning(
"Unrecognized regular expression flag: "
- + _StringUtil.jQuote(String.valueOf(c)) + ".");
+ + _StringUtils.jQuote(String.valueOf(c)) + ".");
}
} // switch
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java b/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
index fde11d9..9384b9e 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/Template.java
@@ -55,7 +55,7 @@ import org.apache.freemarker.core.templateresolver.TemplateLookupStrategy;
import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateResolver;
import org.apache.freemarker.core.templateresolver.impl.FileTemplateLoader;
import org.apache.freemarker.core.util.BugException;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._CollectionUtils;
import org.apache.freemarker.core.util._NullArgumentException;
import org.apache.freemarker.core.valueformat.TemplateDateFormatFactory;
import org.apache.freemarker.core.valueformat.TemplateNumberFormatFactory;
@@ -332,8 +332,8 @@ public class Template implements ProcessingConfiguration, CustomStateScope {
ltbReader.throwFailure();
_DebuggerService.registerTemplate(this);
- namespaceURIToPrefixLookup = _CollectionUtil.unmodifiableMap(namespaceURIToPrefixLookup);
- prefixToNamespaceURILookup = _CollectionUtil.unmodifiableMap(prefixToNamespaceURILookup);
+ namespaceURIToPrefixLookup = _CollectionUtils.unmodifiableMap(namespaceURIToPrefixLookup);
+ prefixToNamespaceURILookup = _CollectionUtils.unmodifiableMap(prefixToNamespaceURILookup);
finishConstruction();
}
@@ -343,8 +343,8 @@ public class Template implements ProcessingConfiguration, CustomStateScope {
* protected when construction is done.
*/
private void finishConstruction() {
- headerCustomSettings = _CollectionUtil.unmodifiableMap(headerCustomSettings);
- tcAndHeaderCustomSettings = _CollectionUtil.unmodifiableMap(tcAndHeaderCustomSettings);
+ headerCustomSettings = _CollectionUtils.unmodifiableMap(headerCustomSettings);
+ tcAndHeaderCustomSettings = _CollectionUtils.unmodifiableMap(tcAndHeaderCustomSettings);
writeProtected = true;
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateBooleanFormat.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateBooleanFormat.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateBooleanFormat.java
index 240b81e..b2de905 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateBooleanFormat.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateBooleanFormat.java
@@ -19,13 +19,15 @@
package org.apache.freemarker.core;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
import org.apache.freemarker.core.valueformat.TemplateValueFormat;
// TODO Should be public and moved over to core.valueformat?
final class TemplateBooleanFormat extends TemplateValueFormat {
- static final String C_TRUE_FALSE = "true,false";
+ static final String C_FALSE = "false";
+ static final String C_TRUE = "true";
+ static final String C_TRUE_FALSE = C_TRUE + "," + C_FALSE;
static final TemplateBooleanFormat C_TRUE_FALSE_FORMAT = new TemplateBooleanFormat();
static TemplateBooleanFormat getInstance(String format) {
@@ -85,7 +87,7 @@ final class TemplateBooleanFormat extends TemplateValueFormat {
@Override
public String getDescription() {
- return _StringUtil.jQuote(formatString);
+ return _StringUtils.jQuote(formatString);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateClassResolver.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateClassResolver.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateClassResolver.java
index 415c66c..0e04b4f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateClassResolver.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateClassResolver.java
@@ -19,7 +19,7 @@
package org.apache.freemarker.core;
-import org.apache.freemarker.core.util._ClassUtil;
+import org.apache.freemarker.core.util._ClassUtils;
/**
* Used by built-ins and other template language features that get a class
@@ -34,7 +34,7 @@ import org.apache.freemarker.core.util._ClassUtil;
public interface TemplateClassResolver {
/**
- * Simply calls {@link _ClassUtil#forName(String)}.
+ * Simply calls {@link _ClassUtils#forName(String)}.
*/
TemplateClassResolver UNRESTRICTED = new TemplateClassResolver() {
@@ -42,7 +42,7 @@ public interface TemplateClassResolver {
public Class resolve(String className, Environment env, Template template)
throws TemplateException {
try {
- return _ClassUtil.forName(className);
+ return _ClassUtils.forName(className);
} catch (ClassNotFoundException e) {
throw new _MiscTemplateException(e, env);
}
@@ -58,7 +58,7 @@ public interface TemplateClassResolver {
@Override
public Class resolve(String className, Environment env, Template template)
throws TemplateException {
- throw MessageUtil.newInstantiatingClassNotAllowedException(className, env);
+ throw MessageUtils.newInstantiatingClassNotAllowedException(className, env);
}
};
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
index 3e77e2c..901c4f4 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateConfiguration.java
@@ -29,7 +29,7 @@ import java.util.TimeZone;
import org.apache.freemarker.core.arithmetic.ArithmeticEngine;
import org.apache.freemarker.core.outputformat.OutputFormat;
import org.apache.freemarker.core.util.CommonBuilder;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._CollectionUtils;
import org.apache.freemarker.core.valueformat.TemplateDateFormatFactory;
import org.apache.freemarker.core.valueformat.TemplateNumberFormatFactory;
@@ -779,13 +779,13 @@ public final class TemplateConfiguration implements ParsingAndProcessingConfigur
setBooleanFormat(tc.getBooleanFormat());
}
if (tc.isCustomDateFormatsSet()) {
- setCustomDateFormats(_CollectionUtil.mergeImmutableMaps(
+ setCustomDateFormats(_CollectionUtils.mergeImmutableMaps(
isCustomDateFormatsSet() ? getCustomDateFormats() : null, tc.getCustomDateFormats(), false),
true
);
}
if (tc.isCustomNumberFormatsSet()) {
- setCustomNumberFormats(_CollectionUtil.mergeImmutableMaps(
+ setCustomNumberFormats(_CollectionUtils.mergeImmutableMaps(
isCustomNumberFormatsSet() ? getCustomNumberFormats() : null, tc.getCustomNumberFormats(), false),
true);
}
@@ -856,21 +856,21 @@ public final class TemplateConfiguration implements ParsingAndProcessingConfigur
setLazyAutoImports(tc.getLazyAutoImports());
}
if (tc.isAutoImportsSet()) {
- setAutoImports(_CollectionUtil.mergeImmutableMaps(
+ setAutoImports(_CollectionUtils.mergeImmutableMaps(
isAutoImportsSet() ? getAutoImports() : null,
tc.isAutoImportsSet() ? tc.getAutoImports() : null,
true),
true);
}
if (tc.isAutoIncludesSet()) {
- setAutoIncludes(_CollectionUtil.mergeImmutableLists(
+ setAutoIncludes(_CollectionUtils.mergeImmutableLists(
isAutoIncludesSet() ? getAutoIncludes() : null,
tc.isAutoIncludesSet() ? tc.getAutoIncludes() : null,
true),
true);
}
- setCustomSettingsMap(_CollectionUtil.mergeImmutableMaps(
+ setCustomSettingsMap(_CollectionUtils.mergeImmutableMaps(
getCustomSettings(false),
tc.getCustomSettings(false),
false));
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateElementArrayBuilder.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateElementArrayBuilder.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateElementArrayBuilder.java
index 3b8f40f..4bc9a4f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateElementArrayBuilder.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateElementArrayBuilder.java
@@ -18,7 +18,7 @@
*/
package org.apache.freemarker.core;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._CollectionUtils;
/**
* Holds an buffer (array) of {@link ASTElement}-s with the count of the utilized items in it. The un-utilized tail
@@ -70,7 +70,7 @@ class TemplateElements {
*/
ASTElement asSingleElement() {
if (count == 0) {
- return new ASTStaticText(_CollectionUtil.EMPTY_CHAR_ARRAY, false);
+ return new ASTStaticText(_CollectionUtils.EMPTY_CHAR_ARRAY, false);
} else {
ASTElement first = buffer[0];
if (count == 1) {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateException.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateException.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateException.java
index fb54f82..e7f387f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateException.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateException.java
@@ -27,7 +27,7 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Method;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._CollectionUtils;
/**
* Runtime exception in a template (as opposed to a parsing-time exception: {@link ParseException}).
@@ -170,10 +170,10 @@ public class TemplateException extends Exception {
String stackTopFew = getFTLInstructionStackTopFew();
if (stackTopFew != null) {
message = messageWithoutStackTop + "\n\n"
- + MessageUtil.ERROR_MESSAGE_HR + "\n"
+ + MessageUtils.ERROR_MESSAGE_HR + "\n"
+ FTL_INSTRUCTION_STACK_TRACE_TITLE + "\n"
+ stackTopFew
- + MessageUtil.ERROR_MESSAGE_HR;
+ + MessageUtils.ERROR_MESSAGE_HR;
messageWithoutStackTop = message.substring(0, messageWithoutStackTop.length()); // to reuse backing char[]
} else {
message = messageWithoutStackTop;
@@ -339,10 +339,10 @@ public class TemplateException extends Exception {
if (stackTrace != null) {
out.println(getMessageWithoutStackTop()); // Not getMessage()!
out.println();
- out.println(MessageUtil.ERROR_MESSAGE_HR);
+ out.println(MessageUtils.ERROR_MESSAGE_HR);
out.println(FTL_INSTRUCTION_STACK_TRACE_TITLE);
out.print(stackTrace);
- out.println(MessageUtil.ERROR_MESSAGE_HR);
+ out.println(MessageUtils.ERROR_MESSAGE_HR);
} else {
ftlStackTrace = false;
javaStackTrace = true;
@@ -353,7 +353,7 @@ public class TemplateException extends Exception {
if (ftlStackTrace) { // We are after an FTL stack trace
out.println();
out.println("Java stack trace (for programmers):");
- out.println(MessageUtil.ERROR_MESSAGE_HR);
+ out.println(MessageUtils.ERROR_MESSAGE_HR);
synchronized (lock) {
if (messageWasAlreadyPrintedForThisTrace == null) {
messageWasAlreadyPrintedForThisTrace = new ThreadLocal();
@@ -376,8 +376,8 @@ public class TemplateException extends Exception {
if (causeCause == null) {
try {
// Reflection is used to prevent dependency on Servlet classes.
- Method m = getCause().getClass().getMethod("getRootCause", _CollectionUtil.EMPTY_CLASS_ARRAY);
- Throwable rootCause = (Throwable) m.invoke(getCause(), _CollectionUtil.EMPTY_OBJECT_ARRAY);
+ Method m = getCause().getClass().getMethod("getRootCause", _CollectionUtils.EMPTY_CLASS_ARRAY);
+ Throwable rootCause = (Throwable) m.invoke(getCause(), _CollectionUtils.EMPTY_OBJECT_ARRAY);
if (rootCause != null) {
out.println("ServletException root cause: ");
out.printStandardStackTrace(rootCause);
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
index 477cbf6..1269053 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
@@ -23,7 +23,7 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
/**
* Used for the {@code templateExceptionHandler} configuration setting;
@@ -134,7 +134,7 @@ public interface TemplateExceptionHandler {
te.printStackTrace(stackPW, false, true, true);
stackPW.close();
pw.println();
- pw.println(_StringUtil.XMLEncNQG(stackTraceSW.toString()));
+ pw.println(_StringUtils.XMLEncNQG(stackTraceSW.toString()));
pw.println("</pre></div></html>");
pw.flush(); // To commit the HTTP response
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateLanguage.java b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
index 205fa8c..02ccb47 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/TemplateLanguage.java
@@ -24,7 +24,7 @@ import java.io.InputStream;
import java.io.Reader;
import java.nio.charset.Charset;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
/**
* Represents a template language. Currently this class is not mature, so it can't be implemented outside FreeMarker,
@@ -105,7 +105,7 @@ public abstract class TemplateLanguage {
@Override
public final String toString() {
- return "TemplateLanguage(" + _StringUtil.jQuote(name) + ")";
+ return "TemplateLanguage(" + _StringUtils.jQuote(name) + ")";
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/Version.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/Version.java b/freemarker-core/src/main/java/org/apache/freemarker/core/Version.java
index 3a542d1..da7e1fc 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/Version.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/Version.java
@@ -22,7 +22,7 @@ package org.apache.freemarker.core;
import java.io.Serializable;
import java.util.Date;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
/**
* Represents a version number plus the further qualifiers and build info. This is
@@ -71,14 +71,14 @@ public final class Version implements Serializable {
} else {
if (i == 0) {
throw new IllegalArgumentException(
- "The version number string " + _StringUtil.jQuote(stringValue)
+ "The version number string " + _StringUtils.jQuote(stringValue)
+ " doesn't start with a number.");
}
if (c == '.') {
char nextC = i + 1 >= stringValue.length() ? 0 : stringValue.charAt(i + 1);
if (nextC == '.') {
throw new IllegalArgumentException(
- "The version number string " + _StringUtil.jQuote(stringValue)
+ "The version number string " + _StringUtils.jQuote(stringValue)
+ " contains multiple dots after a number.");
}
if (partIdx == 2 || !isNumber(nextC)) {
@@ -100,7 +100,7 @@ public final class Version implements Serializable {
extraInfoTmp = extraInfoTmp.substring(1);
if (extraInfoTmp.length() == 0) {
throw new IllegalArgumentException(
- "The version number string " + _StringUtil.jQuote(stringValue)
+ "The version number string " + _StringUtils.jQuote(stringValue)
+ " has an extra info section opened with \"" + firstChar + "\", but it's empty.");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
index b1e02ab..81a5aa0 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_CallableUtils.java
@@ -36,7 +36,7 @@ import org.apache.freemarker.core.model.TemplateScalarModel;
import org.apache.freemarker.core.model.TemplateSequenceModel;
import org.apache.freemarker.core.util.FTLUtil;
import org.apache.freemarker.core.util.StringToIndexMap;
-import org.apache.freemarker.core.util._CollectionUtil;
+import org.apache.freemarker.core.util._CollectionUtils;
/**
* For internal use only; don't depend on this, there's no backward compatibility guarantee at all!
@@ -161,7 +161,7 @@ public final class _CallableUtils {
TemplateModel argValue, String argName, int argIndex,
boolean optional) throws TemplateException {
if (argValue instanceof TemplateScalarModel) {
- return _EvalUtil.modelToString((TemplateScalarModel) argValue, null, null);
+ return _EvalUtils.modelToString((TemplateScalarModel) argValue, null, null);
}
if (argValue == null) {
if (optional) {
@@ -255,7 +255,7 @@ public final class _CallableUtils {
(!validPredefNames.isEmpty()
? new Object[] { " The supported parameter names are:\n",
new _DelayedJQuotedListing(validPredefNames)}
- : _CollectionUtil.EMPTY_OBJECT_ARRAY)}
+ : _CollectionUtils.EMPTY_OBJECT_ARRAY)}
: "")
);
if (callableValue instanceof Environment.TemplateLanguageDirective
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedAOrAn.java
----------------------------------------------------------------------
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 630fa26..1c5bc09 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
@@ -29,7 +29,7 @@ public class _DelayedAOrAn extends _DelayedConversionToString {
@Override
protected String doConversion(Object obj) {
String s = obj.toString();
- return MessageUtil.getAOrAn(s) + " " + s;
+ return MessageUtils.getAOrAn(s) + " " + s;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuote.java
----------------------------------------------------------------------
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 4caf71b..0d04574 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
@@ -19,7 +19,7 @@
package org.apache.freemarker.core;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
/** Don't use this; used internally by FreeMarker, might changes without notice. */
public class _DelayedJQuote extends _DelayedConversionToString {
@@ -30,7 +30,7 @@ public class _DelayedJQuote extends _DelayedConversionToString {
@Override
protected String doConversion(Object obj) {
- return _StringUtil.jQuote(_ErrorDescriptionBuilder.toString(obj));
+ return _StringUtils.jQuote(_ErrorDescriptionBuilder.toString(obj));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedJQuotedListing.java
----------------------------------------------------------------------
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 e809a92..d251281 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
@@ -21,7 +21,7 @@ package org.apache.freemarker.core;
import java.util.Collection;
-import org.apache.freemarker.core.util._StringUtil;
+import org.apache.freemarker.core.util._StringUtils;
/** Don't use this; used internally by FreeMarker, might changes without notice. */
public class _DelayedJQuotedListing extends _DelayedConversionToString {
@@ -37,7 +37,7 @@ public class _DelayedJQuotedListing extends _DelayedConversionToString {
if (sb.length() != 0) {
sb.append(", ");
}
- sb.append(_StringUtil.jQuote(element));
+ sb.append(_StringUtils.jQuote(element));
}
return sb.toString();
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedShortClassName.java
----------------------------------------------------------------------
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedShortClassName.java b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedShortClassName.java
index d9769b9..9a141c2 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedShortClassName.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/_DelayedShortClassName.java
@@ -19,7 +19,7 @@
package org.apache.freemarker.core;
-import org.apache.freemarker.core.util._ClassUtil;
+import org.apache.freemarker.core.util._ClassUtils;
public class _DelayedShortClassName extends _DelayedConversionToString {
@@ -29,7 +29,7 @@ public class _DelayedShortClassName extends _DelayedConversionToString {
@Override
protected String doConversion(Object obj) {
- return _ClassUtil.getShortClassName((Class) obj, true);
+ return _ClassUtils.getShortClassName((Class) obj, true);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/ebb39b84/freemarker-core/src/main/java/org/apache/freemarker/core/_ErrorDescriptionBuilder.java
----------------------------------------------------------------------
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 13cadcd..48a48fc 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
@@ -23,9 +23,9 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
-import org.apache.freemarker.core.model.impl._MethodUtil;
-import org.apache.freemarker.core.util._ClassUtil;
-import org.apache.freemarker.core.util._StringUtil;
+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;
@@ -150,7 +150,7 @@ public class _ErrorDescriptionBuilder {
sb.append("\n\n");
for (int i = 0; i < allTips.length; i++) {
if (i != 0) sb.append('\n');
- sb.append(MessageUtil.ERROR_MESSAGE_HR).append('\n');
+ sb.append(MessageUtils.ERROR_MESSAGE_HR).append('\n');
sb.append("Tip: ");
Object tip = allTips[i];
if (!(tip instanceof Object[])) {
@@ -159,7 +159,7 @@ public class _ErrorDescriptionBuilder {
appendParts(sb, (Object[]) tip);
}
}
- sb.append('\n').append(MessageUtil.ERROR_MESSAGE_HR);
+ sb.append('\n').append(MessageUtils.ERROR_MESSAGE_HR);
}
}
@@ -262,19 +262,19 @@ public class _ErrorDescriptionBuilder {
if (partObj == null) {
return null;
} else if (partObj instanceof Class) {
- partStr = _ClassUtil.getShortClassName((Class) partObj);
+ partStr = _ClassUtils.getShortClassName((Class) partObj);
} else if (partObj instanceof Method || partObj instanceof Constructor) {
- partStr = _MethodUtil.toString((Member) partObj);
+ partStr = _MethodUtils.toString((Member) partObj);
} else {
- partStr = suppressToStringException ? _StringUtil.tryToString(partObj) : partObj.toString();
+ partStr = suppressToStringException ? _StringUtils.tryToString(partObj) : partObj.toString();
}
return partStr;
}
private String[] splitToLines(String s) {
- s = _StringUtil.replace(s, "\r\n", "\n");
- s = _StringUtil.replace(s, "\r", "\n");
- return _StringUtil.split(s, '\n');
+ s = _StringUtils.replace(s, "\r\n", "\n");
+ s = _StringUtils.replace(s, "\r", "\n");
+ return _StringUtils.split(s, '\n');
}
/**