X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fgenerator%2Fimpl%2Freactor%2FKeyGenerator.java;h=4a28b410f16cc7aef0cf9253e8e105b6364fa233;hb=ecdcdb340457ded6898193197e88ea33c84d58ae;hp=e0bf2e60df77a2063687730bbd09fc56069f9c28;hpb=89a12a10b9573dcc84a5636c046cbd0610bc2111;p=mdsal.git diff --git a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/KeyGenerator.java b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/KeyGenerator.java index e0bf2e60df..4a28b410f1 100644 --- a/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/KeyGenerator.java +++ b/binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/KeyGenerator.java @@ -7,28 +7,28 @@ */ package org.opendaylight.mdsal.binding.generator.impl.reactor; +import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; import java.util.Set; import org.opendaylight.mdsal.binding.generator.impl.reactor.CollisionDomain.Member; -import org.opendaylight.mdsal.binding.model.api.GeneratedType; +import org.opendaylight.mdsal.binding.generator.impl.rt.DefaultKeyRuntimeType; +import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase; import org.opendaylight.mdsal.binding.model.ri.BindingTypes; +import org.opendaylight.mdsal.binding.runtime.api.KeyRuntimeType; import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.stmt.KeyEffectiveStatement; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; -final class KeyGenerator extends AbstractExplicitGenerator { - // FIXME: this should be a well-known constant - private static final String SUFFIX = "Key"; - +final class KeyGenerator extends AbstractExplicitGenerator { private final ListGenerator listGen; - KeyGenerator(final KeyEffectiveStatement statement, final AbstractCompositeGenerator parent, + KeyGenerator(final KeyEffectiveStatement statement, final AbstractCompositeGenerator parent, final ListGenerator listGen) { super(statement, parent); this.listGen = requireNonNull(listGen); @@ -41,11 +41,11 @@ final class KeyGenerator extends AbstractExplicitGenerator { + verify(type instanceof GeneratedTransferObject, "Unexpected type %s", type); + return new DefaultKeyRuntimeType((GeneratedTransferObject) type, statement()); + }).orElse(null); + } + + @Override + KeyRuntimeType rebaseRuntimeType(final KeyRuntimeType type, final KeyEffectiveStatement statement) { + return new DefaultKeyRuntimeType(type.javaType(), statement); + } + @Override void addAsGetterMethod(final GeneratedTypeBuilderBase builder, final TypeBuilderFactory builderFactory) { // Keys are explicitly handled by their corresponding list