import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil.computeDefaultSUID;
import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil.encodeAngleBrackets;
import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil.packageNameForGeneratedType;
+import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingTypes.IDENTIFIABLE;
+import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingTypes.IDENTIFIER;
import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingTypes.NOTIFICATION;
import static org.opendaylight.mdsal.binding.javav2.generator.util.Types.parameterizedTypeFor;
import static org.opendaylight.mdsal.binding.javav2.generator.util.Types.wildcardTypeFor;
processUsesImplements(node, module, schemaContext, genCtx, namespaceType);
} else {
final GeneratedTOBuilder genTOBuilder = resolveListKeyTOBuilder(packageName, node, genCtx.get(module));
+ if (genTOBuilder != null) {
+ final Type identifiableMarker = Types.parameterizedTypeFor(IDENTIFIABLE, genTOBuilder);
+ genTOBuilder.addImplementsType(IDENTIFIER);
+ genType.addImplementsType(identifiableMarker);
+ }
+
for (final DataSchemaNode schemaNode : node.getChildNodes()) {
if (resolveDataSchemaNodesCheck(module, schemaContext, schemaNode)) {
addSchemaNodeToListBuilders(nodeName, basePackageName, schemaNode, genType, genTOBuilder, listKeys,
returnKeyType = wildcardTypeFor(keyType.getPackageName(), keyType.getName(),
true, true, null);
}
- constructGetter(typeBuilder, "key", "Returns Primary Key of Yang List Type", returnKeyType, Status.CURRENT);
+ constructGetter(typeBuilder, "identifier", "Returns Primary Key of Yang List Type", returnKeyType, Status.CURRENT);
}
}
int test_j = 0;
for (final MethodSignature m : t.getMethodDefinitions()) {
switch (m.getName()) {
- case "getKey":
- assertMethod(t, "getKey", "MyListKey",
+ case "getIdentifier":
+ assertMethod(t, "getIdentifier", "MyListKey",
"org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list",
m);
test_j++;
final Type keyType = getKey(getType());
if (isList && keyType != null) {
final List<GeneratedProperty> keyProps = ((GeneratedTransferObject) keyType).getProperties();
- final Comparator<GeneratedProperty> function = (GeneratedProperty p1, GeneratedProperty p2) -> {
- String name2 = p1.getName();
- String name3 = p2.getName();
- return name2.compareTo(name3);
- };
- Collections.sort(keyProps, function);
for (GeneratedProperty keyProp : keyProps) {
removeProperty(allProps, keyProp.getName());
}
removeProperty(allProps, "key");
importedNames.put("keyTypeConstructor", importedName(keyType));
- return builderConstructorHelperTemplate.render(allProps, keyProps, importedNames, getPropertyList(allProps))
+ return builderConstructorHelperTemplate.render(allProps, keyProps, importedNames, getPropertyList(keyProps))
.body();
}
return builderConstructorHelperTemplate.render(allProps, null, importedNames, null).body();
@(allProps: List[GeneratedProperty], keyProps: List[GeneratedProperty], importedNames: Map[String, String],
keyPropsList: String)
@if(keyProps != null) {
-if (base.getKey() == null) {
- this._key = new @{importedNames.get("keyTypeConstructor")}(
+if (base.getIdentifier() == null) {
+ this._identifier = new @{importedNames.get("keyTypeConstructor")}(
@{keyPropsList}
);
@for(field <- keyProps) {
@{getterMethodName(field)}();
}
} @{"else"} {
- this._key = base.getKey();
+ this._identifier = base.getIdentifier();
@for(field <- keyProps) {
- this.@{fieldName(field)} = _key.@{getterMethodName(field)}();
+ this.@{fieldName(field)} = _identifier.@{getterMethodName(field)}();
}
}
}
--- /dev/null
+module test-list {
+ yang-version 1.1;
+
+ namespace "urn:test:simple:test:list";
+ prefix test-list;
+ organization "test.list.org";
+ revision "2017-03-14";
+
+ list my-list {
+ key "key key1 key2";
+ leaf key{
+ type string;
+ }
+ leaf key1 {
+ type string;
+ }
+ leaf key2 {
+ type string;
+ }
+ leaf foo{
+ type string;
+ }
+ }
+
+}
\ No newline at end of file