Skip to content

Commit d58e01d

Browse files
committed
Remove toPyishString() method entirely
1 parent fa21618 commit d58e01d

8 files changed

Lines changed: 44 additions & 37 deletions

File tree

src/main/java/com/hubspot/jinjava/interpret/JinjavaInterpreter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -882,7 +882,9 @@ private String getWrappedErrorMessage(
882882
}
883883

884884
@Override
885-
public String toPyishString() {
886-
return ExtendedParser.INTERPRETER;
885+
@SuppressWarnings("unchecked")
886+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
887+
throws IOException {
888+
return (T) appendable.append(ExtendedParser.INTERPRETER);
887889
}
888890
}

src/main/java/com/hubspot/jinjava/interpret/LazyReference.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.hubspot.jinjava.interpret;
22

33
import com.hubspot.jinjava.objects.serialization.PyishSerializable;
4+
import java.io.IOException;
45

56
public class LazyReference extends LazyExpression implements PyishSerializable {
67
private String referenceKey;
@@ -24,7 +25,9 @@ public void setReferenceKey(String referenceKey) {
2425
}
2526

2627
@Override
27-
public CharSequence toPyishString() {
28-
return getReferenceKey();
28+
@SuppressWarnings("unchecked")
29+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
30+
throws IOException {
31+
return (T) appendable.append(getReferenceKey());
2932
}
3033
}

src/main/java/com/hubspot/jinjava/objects/serialization/PyishSerializable.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,43 +19,27 @@ public interface PyishSerializable extends PyWrapper {
1919
.writer(PyishPrettyPrinter.INSTANCE)
2020
.with(PyishCharacterEscapes.INSTANCE);
2121

22-
/**
23-
* Allows for a class to specify a custom string representation in Jinjava.
24-
* By default, this will get a json representation of the object,
25-
* but this method can be overridden to provide a custom representation.
26-
* This should no longer be called directly,
27-
* {@link #writePyishSelf(JsonGenerator, SerializerProvider)} or
28-
* {@link #appendPyishString(Appendable)} should instead be used.
29-
* @return A pyish/json CharSequence representation of the object
30-
*/
31-
@Deprecated
32-
default CharSequence toPyishString() {
33-
return writeValueAsString(this);
34-
}
35-
3622
/**
3723
* Allows for a class to append the custom string representation in Jinjava.
3824
* This method will be used by {@link #writePyishSelf(JsonGenerator, SerializerProvider)}
3925
* to specify what will be written to the json generator.
4026
* <p>
41-
* If the pyish string representation of this object is composed of several strings,
42-
* it's recommended to override this method instead of {@link #toPyishString()}
4327
* @param appendable Appendable to append the pyish string representation to.
4428
* @return The same appendable with an appended result
4529
*/
4630
@SuppressWarnings("unchecked")
4731
default <T extends Appendable & CharSequence> T appendPyishString(T appendable)
4832
throws IOException {
49-
return (T) appendable.append(toPyishString());
33+
return (T) appendable.append(writeValueAsString(this));
5034
}
5135

5236
/**
5337
* Allows for a class to specify how its pyish string representation will
5438
* be written to the json generator.
5539
* <p>
56-
* If the pyish string representation of this object can be very large, it's recommended
57-
* to override this method instead of {@link #toPyishString()} so that jsonGenerator
58-
* can be written to multiple times, allowing multiple limit checks to occur.
40+
* If the object's serialization can be broken up into multiple jsonGenerator writes,
41+
* then this method can be overridden to do so instead of a single call to
42+
* {@link JsonGenerator#writeRawValue(String)}.
5943
* @param jsonGenerator The JsonGenerator to write to.
6044
* @param serializerProvider Provides default value serialization and attributes stored on the ObjectWriter if needed.
6145
*/

src/test/java/com/hubspot/jinjava/lib/filter/RejectAttrFilterTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.common.collect.Lists;
66
import com.hubspot.jinjava.BaseJinjavaTest;
77
import com.hubspot.jinjava.objects.serialization.PyishSerializable;
8+
import java.io.IOException;
89
import java.util.HashMap;
910
import org.junit.Before;
1011
import org.junit.Test;
@@ -112,8 +113,10 @@ public String toString() {
112113
}
113114

114115
@Override
115-
public CharSequence toPyishString() {
116-
return toString();
116+
@SuppressWarnings("unchecked")
117+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
118+
throws IOException {
119+
return (T) appendable.append(toString());
117120
}
118121
}
119122

src/test/java/com/hubspot/jinjava/lib/filter/SelectAttrFilterTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.google.common.collect.Lists;
77
import com.hubspot.jinjava.BaseJinjavaTest;
88
import com.hubspot.jinjava.objects.serialization.PyishSerializable;
9+
import java.io.IOException;
910
import java.util.HashMap;
1011
import org.junit.Before;
1112
import org.junit.Test;
@@ -135,8 +136,10 @@ public String toString() {
135136
}
136137

137138
@Override
138-
public String toPyishString() {
139-
return toString();
139+
@SuppressWarnings("unchecked")
140+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
141+
throws IOException {
142+
return (T) appendable.append(toString());
140143
}
141144
}
142145

@@ -164,8 +167,10 @@ public String toString() {
164167
}
165168

166169
@Override
167-
public String toPyishString() {
168-
return toString();
170+
@SuppressWarnings("unchecked")
171+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
172+
throws IOException {
173+
return (T) appendable.append(toString());
169174
}
170175
}
171176
}

src/test/java/com/hubspot/jinjava/lib/filter/SortFilterTest.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.hubspot.jinjava.interpret.RenderResult;
77
import com.hubspot.jinjava.interpret.TemplateError.ErrorType;
88
import com.hubspot.jinjava.objects.serialization.PyishSerializable;
9+
import java.io.IOException;
910
import java.util.Date;
1011
import java.util.HashMap;
1112
import java.util.Map;
@@ -153,8 +154,10 @@ public String toString() {
153154
}
154155

155156
@Override
156-
public String toPyishString() {
157-
return toString();
157+
@SuppressWarnings("unchecked")
158+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
159+
throws IOException {
160+
return (T) appendable.append(toString());
158161
}
159162
}
160163

@@ -175,8 +178,10 @@ public String toString() {
175178
}
176179

177180
@Override
178-
public String toPyishString() {
179-
return toString();
181+
@SuppressWarnings("unchecked")
182+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
183+
throws IOException {
184+
return (T) appendable.append(toString());
180185
}
181186
}
182187
}

src/test/java/com/hubspot/jinjava/lib/filter/UniqueFilterTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import com.hubspot.jinjava.BaseJinjavaTest;
66
import com.hubspot.jinjava.objects.serialization.PyishSerializable;
7+
import java.io.IOException;
78
import java.util.HashMap;
89
import java.util.Map;
910
import org.apache.commons.lang3.StringUtils;
@@ -71,8 +72,10 @@ public String toString() {
7172
}
7273

7374
@Override
74-
public String toPyishString() {
75-
return toString();
75+
@SuppressWarnings("unchecked")
76+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
77+
throws IOException {
78+
return (T) appendable.append(toString());
7679
}
7780
}
7881
}

src/test/java/com/hubspot/jinjava/util/EagerExpressionResolverTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,7 +908,9 @@ public String getName() {
908908
}
909909

910910
@Override
911-
public String toPyishString() {
911+
@SuppressWarnings("unchecked")
912+
public <T extends Appendable & CharSequence> T appendPyishString(T appendable)
913+
throws IOException {
912914
throw new DeferredValueException("Can't serialize");
913915
}
914916
}

0 commit comments

Comments
 (0)