33/**
44 * This class allows Jinjava to be configured to override legacy behaviour.
55 * LegacyOverrides.NONE signifies that none of the legacy functionality will be overridden.
6+ * LegacyOverrides.ALL signifies that all new functionality will be used; avoid legacy "bugs".
67 */
78public class LegacyOverrides {
89 public static final LegacyOverrides NONE = new LegacyOverrides .Builder ().build ();
10+ public static final LegacyOverrides ALL = new LegacyOverrides .Builder ()
11+ .withEvaluateMapKeys (true )
12+ .withIterateOverMapKeys (true )
13+ .withUsePyishObjectMapper (true )
14+ .withUseSnakeCasePropertyNaming (true )
15+ .withWhitespaceRequiredWithinTokens (true )
16+ .withUseNaturalOperatorPrecedence (true )
17+ .withParseWhitespaceControlStrictly (true )
18+ .withAllowAdjacentTextNodes (true )
19+ .build ();
920 private final boolean evaluateMapKeys ;
1021 private final boolean iterateOverMapKeys ;
1122 private final boolean usePyishObjectMapper ;
1223 private final boolean useSnakeCasePropertyNaming ;
1324 private final boolean whitespaceRequiredWithinTokens ;
1425 private final boolean useNaturalOperatorPrecedence ;
1526 private final boolean parseWhitespaceControlStrictly ;
27+ private final boolean allowAdjacentTextNodes ;
1628
1729 private LegacyOverrides (Builder builder ) {
1830 evaluateMapKeys = builder .evaluateMapKeys ;
@@ -22,6 +34,7 @@ private LegacyOverrides(Builder builder) {
2234 whitespaceRequiredWithinTokens = builder .whitespaceRequiredWithinTokens ;
2335 useNaturalOperatorPrecedence = builder .useNaturalOperatorPrecedence ;
2436 parseWhitespaceControlStrictly = builder .parseWhitespaceControlStrictly ;
37+ allowAdjacentTextNodes = builder .allowAdjacentTextNodes ;
2538 }
2639
2740 public static Builder newBuilder () {
@@ -56,6 +69,10 @@ public boolean isParseWhitespaceControlStrictly() {
5669 return parseWhitespaceControlStrictly ;
5770 }
5871
72+ public boolean isAllowAdjacentTextNodes () {
73+ return allowAdjacentTextNodes ;
74+ }
75+
5976 public static class Builder {
6077 private boolean evaluateMapKeys = false ;
6178 private boolean iterateOverMapKeys = false ;
@@ -64,6 +81,7 @@ public static class Builder {
6481 private boolean whitespaceRequiredWithinTokens = false ;
6582 private boolean useNaturalOperatorPrecedence = false ;
6683 private boolean parseWhitespaceControlStrictly = false ;
84+ private boolean allowAdjacentTextNodes = false ;
6785
6886 private Builder () {}
6987
@@ -83,7 +101,8 @@ public static Builder from(LegacyOverrides legacyOverrides) {
83101 .withUseNaturalOperatorPrecedence (legacyOverrides .useNaturalOperatorPrecedence )
84102 .withParseWhitespaceControlStrictly (
85103 legacyOverrides .parseWhitespaceControlStrictly
86- );
104+ )
105+ .withAllowAdjacentTextNodes (legacyOverrides .allowAdjacentTextNodes );
87106 }
88107
89108 public Builder withEvaluateMapKeys (boolean evaluateMapKeys ) {
@@ -126,5 +145,10 @@ public Builder withParseWhitespaceControlStrictly(
126145 this .parseWhitespaceControlStrictly = parseWhitespaceControlStrictly ;
127146 return this ;
128147 }
148+
149+ public Builder withAllowAdjacentTextNodes (boolean allowAdjacentTextNodes ) {
150+ this .allowAdjacentTextNodes = allowAdjacentTextNodes ;
151+ return this ;
152+ }
129153 }
130154}
0 commit comments