Generate fields for all Identityrefs in an Union binding class
[mdsal.git] / binding / mdsal-binding-generator / src / main / java / org / opendaylight / mdsal / binding / generator / impl / reactor / AbstractTypeObjectGenerator.java
index d99977dbea8d60b441f445e598cdc7d1d610b2c1..2ba6783367bb5c05f00bf19aeaaf4dc827558169 100644 (file)
@@ -11,6 +11,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Verify.verify;
 import static com.google.common.base.Verify.verifyNotNull;
 
+import com.google.common.base.VerifyException;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 import java.util.ArrayList;
@@ -729,6 +730,10 @@ abstract class AbstractTypeObjectGenerator<S extends EffectiveStatement<?, ?>, R
                     builder.addEnclosingTransferObject(subBits);
                     generatedType = subBits;
                 } else if (TypeDefinitions.IDENTITYREF.equals(subName)) {
+                    propSource = stmt.findFirstEffectiveSubstatement(BaseEffectiveStatement.class)
+                        .orElseThrow(() -> new VerifyException(String.format("Invalid identityref "
+                            + "definition %s in %s, missing BASE statement", stmt, definingStatement)))
+                        .argument().getLocalName();
                     generatedType = verifyNotNull(dependencies.identityTypes.get(stmt),
                         "Cannot resolve identityref %s in %s", stmt, definingStatement)
                         .methodReturnType(builderFactory);