Share MandatoryStatement instances 65/29465/3
authorRobert Varga <rovarga@cisco.com>
Mon, 9 Nov 2015 18:46:03 +0000 (19:46 +0100)
committerRobert Varga <rovarga@cisco.com>
Tue, 10 Nov 2015 00:21:54 +0000 (01:21 +0100)
commit54f189800b7a9a67e2a0999ad3ee3677384e2f8a
tree40ccf021baf52585a0e50e8cb6482eb74517ee8f
parent8a524457d78e932a4de301a9cdacf46c1f2531b2
Share MandatoryStatement instances

Heap dump analysis shows we are wasting memory on MandatoryStatementImpl
instances which are empty. Fix this by creating two dedicated classes
which handle the 'mandatory true' and 'mandatory false' cases.

Same goes for MandatoryEffectiveStatementImpl, for which we provide an
alternative implementation, requiring an MandatoryEffectiveStatement
interface, so that it can be looked up.

Change-Id: If126c3b8d81ad4a870088285ff8956724b199134
Signed-off-by: Robert Varga <rovarga@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/EmptyMandatoryEffectiveStatement.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/EmptyMandatoryStatement.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/MandatoryStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/EffectiveConstraintDefinitionImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/MandatoryEffectiveStatement.java [new file with mode: 0644]
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/MandatoryEffectiveStatementImpl.java