Skip to content

Commit 5d353d6

Browse files
author
Steve Powell
committed
Builder methods for LongString generate overload for String;
Builder classes are all final.
1 parent afdac01 commit 5d353d6

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

codegen.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,20 +188,23 @@ def genFields(spec, m):
188188
def genArgMethods(spec, m):
189189
for a in m.arguments:
190190
(jfType, jfName, jfDefault) = typeNameDefault(spec, a)
191-
print " public final Builder %s(%s %s)" % (jfName, jfType, jfName)
191+
print " public Builder %s(%s %s)" % (jfName, jfType, jfName)
192192
print " { this.%s = %s; return this; }" % (jfName, jfName)
193193
if jfType == "boolean":
194-
print " public final Builder %s()" % (jfName)
194+
print " public Builder %s()" % (jfName)
195195
print " { return this.%s(true); }" % (jfName)
196+
elif jfType == "LongString":
197+
print " public Builder %s(String %s)" % (jfName, jfName)
198+
print " { return this.%s(LongStringHelper.asLongString(%s)); }" % (jfName, jfName)
196199

197200
def genBuildMethod(c,m):
198-
print " public final %s build() {" % (java_class_name(m.name))
201+
print " public %s build() {" % (java_class_name(m.name))
199202
ctorCall(c,m)
200203
print " }"
201204

202205
print
203206
print " // Builder for instances of %s.%s" % (java_class_name(c.name), java_class_name(m.name))
204-
print " public static class Builder"
207+
print " public static final class Builder"
205208
print " {"
206209
genFields(spec, m)
207210
print

src/com/rabbitmq/client/impl/LongStringHelper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public long length()
9494
*/
9595
public static LongString asLongString(String string)
9696
{
97+
if (string==null) return null;
9798
try {
9899
return new ByteArrayLongString(string.getBytes("utf-8"));
99100
}
@@ -109,6 +110,7 @@ public static LongString asLongString(String string)
109110
*/
110111
public static LongString asLongString(byte [] bytes)
111112
{
113+
if (bytes==null) return null;
112114
return new ByteArrayLongString(bytes);
113115
}
114116
}

0 commit comments

Comments
 (0)