From: Robert Varga Date: Wed, 10 Sep 2014 19:31:26 +0000 (+0200) Subject: BUG-1794: use QName.cachedReference in static references X-Git-Tag: release/beryllium~347^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=b4202f2fd8e66e68b2cbabfbbbc46bedb29d7fed;p=mdsal.git BUG-1794: use QName.cachedReference in static references When we emit generated classes, we add a static final reference to a QName created via the usual string factory method. This leads to less-than-optimal string sharing, so we go through a cachedReference initializer to make sure we get maximum resource sharing. Change-Id: Id75286410be4883736164c504dd6cb8f9d26383a Signed-off-by: Robert Varga --- diff --git a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/TransformerGenerator.xtend b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/TransformerGenerator.xtend index 473c8e644c..1a9914828a 100644 --- a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/TransformerGenerator.xtend +++ b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/TransformerGenerator.xtend @@ -1435,7 +1435,7 @@ class TransformerGenerator extends AbstractTransformerGenerator { private def staticQNameField(CtClass it, QName node, SourceCodeGenerator sourceGenerator) { val field = new CtField(ctQName, "QNAME", it); field.modifiers = PUBLIC + FINAL + STATIC; - val code = '''«QName.asCtClass.name».create("«node.namespace»","«node.formattedRevision»","«node.localName»")''' + val code = '''«QName.asCtClass.name».cachedReference(«QName.asCtClass.name».create("«node.namespace»","«node.formattedRevision»","«node.localName»"))''' addField(field, code ) sourceGenerator.appendField( field, code );