You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2009/11/20 21:54:42 UTC
svn commit: r882707 - in /hadoop/avro/trunk: CHANGES.txt
src/java/org/apache/avro/specific/SpecificCompiler.java
src/java/org/apache/avro/specific/SpecificData.java
Author: cutting
Date: Fri Nov 20 20:54:42 2009
New Revision: 882707
URL: http://svn.apache.org/viewvc?rev=882707&view=rev
Log:
AVRO-225. In generated Java, use dollar-sign, not underscore, to prevent name conflicts.
Modified:
hadoop/avro/trunk/CHANGES.txt
hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificCompiler.java
hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificData.java
Modified: hadoop/avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=882707&r1=882706&r2=882707&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Fri Nov 20 20:54:42 2009
@@ -138,6 +138,9 @@
AVRO-221. Mangle Java reserved words in generated code to avoid
name conflicts. (Philip Zeyliger via cutting)
+ AVRO-225. In generated Java, use dollar-sign, not underscore, to
+ prevent name conflicts. (cutting)
+
Avro 1.2.0 (14 October 2009)
INCOMPATIBLE CHANGES
Modified: hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificCompiler.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificCompiler.java?rev=882707&r1=882706&r2=882707&view=diff
==============================================================================
--- hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificCompiler.java (original)
+++ hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificCompiler.java Fri Nov 20 20:54:42 2009
@@ -42,9 +42,8 @@
private final Set<Schema> queue = new HashSet<Schema>();
private final Protocol protocol;
- /** List of Java reserved words from
- * <a href="http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html">Sun</a>.
- */
+ /* List of Java reserved words from
+ * http://java.sun.com/docs/books/jls/third_edition/html/lexical.html. */
private static final Set<String> RESERVED_WORDS = new HashSet<String>(
Arrays.asList(new String[] {
"abstract", "assert", "boolean", "break", "byte", "case", "catch",
@@ -178,7 +177,7 @@
StringBuilder out = new StringBuilder();
header(out, protocol.getNamespace());
line(out, 0, "public interface "+mangle(protocol.getName())+" {");
- line(out, 1, "public static final Protocol _PROTOCOL = Protocol.parse(\""
+ line(out, 1, "public static final Protocol PROTOCOL = Protocol.parse(\""
+esc(protocol)+"\");");
for (Map.Entry<String,Message> e : protocol.getMessages().entrySet()) {
String name = e.getKey();
@@ -266,17 +265,17 @@
: " extends SpecificRecordBase")
+" implements SpecificRecord {");
// schema definition
- line(out, 1, "public static final Schema _SCHEMA = Schema.parse(\""
+ line(out, 1, "public static final Schema SCHEMA$ = Schema.parse(\""
+esc(schema)+"\");");
// field declations
for (Map.Entry<String,Schema.Field> field: schema.getFields().entrySet())
line(out, 1, "public " + unbox(field.getValue().schema()) + " "
+ mangle(field.getKey()) + ";");
// schema method
- line(out, 1, "public Schema getSchema() { return _SCHEMA; }");
+ line(out, 1, "public Schema getSchema() { return SCHEMA$; }");
// get method
- line(out, 1, "public Object get(int _field) {");
- line(out, 2, "switch (_field) {");
+ line(out, 1, "public Object get(int field$) {");
+ line(out, 2, "switch (field$) {");
int i = 0;
for (Map.Entry<String, Schema> field : schema.getFieldSchemas())
line(out, 2, "case "+(i++)+": return "+mangle(field.getKey())+";");
@@ -285,12 +284,12 @@
line(out, 1, "}");
// set method
line(out, 1, "@SuppressWarnings(value=\"unchecked\")");
- line(out, 1, "public void set(int _field, Object _value) {");
- line(out, 2, "switch (_field) {");
+ line(out, 1, "public void set(int field$, Object value$) {");
+ line(out, 2, "switch (field$) {");
i = 0;
for (Map.Entry<String, Schema> field : schema.getFieldSchemas())
line(out, 2, "case "+(i++)+": "+field.getKey()+" = ("+
- type(field.getValue())+")_value; break;");
+ type(field.getValue())+")value$; break;");
line(out, 2, "default: throw new AvroRuntimeException(\"Bad index\");");
line(out, 2, "}");
line(out, 1, "}");
Modified: hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificData.java
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificData.java?rev=882707&r1=882706&r2=882707&view=diff
==============================================================================
--- hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificData.java (original)
+++ hadoop/avro/trunk/src/java/org/apache/avro/specific/SpecificData.java Fri Nov 20 20:54:42 2009
@@ -188,7 +188,7 @@
/** Create a schema for a Java class. */
protected Schema createClassSchema(Class c, Map<String,Schema> names) {
try {
- return (Schema)(c.getDeclaredField("_SCHEMA").get(null));
+ return (Schema)(c.getDeclaredField("SCHEMA$").get(null));
} catch (NoSuchFieldException e) {
throw new AvroRuntimeException(e);
} catch (IllegalAccessException e) {
@@ -199,7 +199,7 @@
/** Return the protocol for a Java interface. */
public Protocol getProtocol(Class iface) {
try {
- return (Protocol)(iface.getDeclaredField("_PROTOCOL").get(null));
+ return (Protocol)(iface.getDeclaredField("PROTOCOL").get(null));
} catch (NoSuchFieldException e) {
throw new AvroRuntimeException(e);
} catch (IllegalAccessException e) {