java_gen: create DEFAULT instance for objects that support it (for Match)
Objects which consist only of parts that have a default value
now get a default value.
Match, in particular, now defines a default instance that wildcards
everything and is available as factory.matchWildcardAll()
diff --git a/java_gen/templates/of_class.java b/java_gen/templates/of_class.java
index 8a8d09d..829d257 100644
--- a/java_gen/templates/of_class.java
+++ b/java_gen/templates/of_class.java
@@ -56,6 +56,13 @@
//:: for prop in msg.data_members:
private final ${prop.java_type.public_type} ${prop.name};
//:: #endfor
+//
+//:: if all(prop.default_value for prop in msg.data_members):
+ // Immutable default instance
+ final static ${impl_class} DEFAULT = new ${impl_class}(
+ ${", ".join(prop.default_name for prop in msg.data_members)}
+ );
+//:: #endif
//:: if msg.data_members:
// package private constructor - used by readers, builders, and factory