import static org.opendaylight.mdsal.binding.model.util.BindingTypes.choiceIn;
import static org.opendaylight.mdsal.binding.model.util.BindingTypes.identifiable;
import static org.opendaylight.mdsal.binding.model.util.BindingTypes.identifier;
+import static org.opendaylight.mdsal.binding.model.util.BindingTypes.keyedListAction;
import static org.opendaylight.mdsal.binding.model.util.BindingTypes.rpcResult;
import static org.opendaylight.mdsal.binding.model.util.Types.BOOLEAN;
import static org.opendaylight.mdsal.binding.model.util.Types.listTypeFor;
import org.opendaylight.mdsal.binding.model.util.TypeConstants;
import org.opendaylight.mdsal.binding.model.util.Types;
import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedPropertyBuilderImpl;
+import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
import org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider;
import org.opendaylight.mdsal.binding.yang.types.BaseYangTypes;
import org.opendaylight.mdsal.binding.yang.types.GroupingDefinitionDependencySort;
-import org.opendaylight.yangtools.yang.binding.BindingMapping;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
if (genType != null) {
constructGetter(parent, genType, node);
resolveDataSchemaNodes(context, genType, genType, node.getChildNodes());
- actionsToGenType(context, genType, node);
+ actionsToGenType(context, genType, node, null);
}
}
genTOBuilder.addImplementsType(identifierMarker);
genType.addImplementsType(identifiableMarker);
- actionsToGenType(context, genTOBuilder, node);
}
+ actionsToGenType(context, genType, node, genTOBuilder);
for (final DataSchemaNode schemaNode : node.getChildNodes()) {
if (!schemaNode.isAugmenting()) {
}
private <T extends DataNodeContainer & ActionNodeContainer> void actionsToGenType(final ModuleContext context,
- final Type parent, final T parentSchema) {
+ final Type parent, final T parentSchema, final Type keyType) {
for (final ActionDefinition action : parentSchema.getActions()) {
final GeneratedType input;
final GeneratedType output;
final GeneratedTypeBuilder builder = typeProvider.newGeneratedTypeBuilder(JavaTypeName.create(
packageNameForGeneratedType(context.modulePackageName(), action.getPath()),
BindingMapping.getClassName(qname)));
+ qnameConstant(builder, JavaTypeName.create(context.modulePackageName(),
+ BindingMapping.MODULE_INFO_CLASS_NAME), qname.getLocalName());
annotateDeprecatedIfNecessary(action.getStatus(), builder);
- builder.addImplementsType(action(parent, input, output));
+ builder.addImplementsType(keyType != null ? keyedListAction(parent, keyType, input, output)
+ : action(parent, input, output));
addCodegenInformation(builder, context.module(), action);
context.addChildNodeType(action, builder);
method.addAnnotation("javax.annotation", "CheckReturnValue");
addComment(method, rpc);
method.addParameter(
- createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getInput())), "input");
+ createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getInput()), RPC_INPUT), "input");
method.setReturnType(listenableFutureTypeFor(
- rpcResult(createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getOutput())))));
+ rpcResult(createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getOutput()), RPC_OUTPUT))));
}
}
}
private Type createRpcContainer(final ModuleContext context, final String rpcName, final RpcDefinition rpc,
- final ContainerSchemaNode schema) {
+ final ContainerSchemaNode schema, final Type type) {
processUsesAugments(schema, context);
final GeneratedTypeBuilder outType = addRawInterfaceDefinition(
JavaTypeName.create(context.modulePackageName(), rpcName + BindingMapping.getClassName(schema.getQName())),
schema);
addImplementedInterfaceFromUses(schema, outType);
- outType.addImplementsType(DATA_OBJECT);
+ outType.addImplementsType(type);
outType.addImplementsType(augmentable(outType));
annotateDeprecatedIfNecessary(rpc.getStatus(), outType);
resolveDataSchemaNodes(context, outType, outType, schema.getChildNodes());
resolveDataSchemaNodes(context, genType, genType, grouping.getChildNodes());
groupingsToGenTypes(context, grouping.getGroupings());
processUsesAugments(grouping, context);
- actionsToGenType(context, genType, grouping);
+ actionsToGenType(context, genType, grouping, null);
}
}
resultTOBuilder.addEnclosingTransferObject(genTOBuilder);
}
- final GeneratedPropertyBuilder genPropBuilder = resultTOBuilder.addProperty("value");
- genPropBuilder.setReturnType(Types.CHAR_ARRAY);
- resultTOBuilder.addEqualsIdentity(genPropBuilder);
- resultTOBuilder.addHashIdentity(genPropBuilder);
- resultTOBuilder.addToStringProperty(genPropBuilder);
processEnclosedTOBuilderes(typeBuilder, genTOBuilders);
return resultTOBuilder;
}