X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-java-api-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fjava%2Fapi%2Fgenerator%2FJavaFileTemplate.java;h=5387a82c5340020f862c7635de89588cdd4b8f91;hb=0f351bbc28ddf2cddfe30c8d018646d81953fa17;hp=f8aeba321c4ab282c171940648669303511ff239;hpb=ce1e55484544d25297cb60cdfc6758e9b14945fb;p=mdsal.git diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java index f8aeba321c..5387a82c53 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java @@ -12,10 +12,12 @@ import static java.util.Objects.requireNonNull; import java.util.Optional; import java.util.stream.Collectors; +import org.opendaylight.mdsal.binding.model.api.ConcreteType; import org.opendaylight.mdsal.binding.model.api.GeneratedProperty; import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; import org.opendaylight.mdsal.binding.model.api.GeneratedType; import org.opendaylight.mdsal.binding.model.api.JavaTypeName; +import org.opendaylight.mdsal.binding.model.api.Restrictions; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.util.Types; @@ -68,6 +70,10 @@ class JavaFileTemplate { return importedName(Types.typeForClass(cls)); } + final String importedName(final JavaTypeName intype) { + return javaType.getReferenceString(intype); + } + final void addImport(final Class cls) { javaType.getReferenceString(JavaTypeName.create(cls)); } @@ -77,4 +83,29 @@ class JavaFileTemplate { final Optional optEnc = name.immediatelyEnclosingClass(); return optEnc.isPresent() && type.getIdentifier().equals(optEnc.get()); } + + final CharSequence generateInnerClass(final GeneratedType innerClass) { + if (!(innerClass instanceof GeneratedTransferObject)) { + return ""; + } + + final GeneratedTransferObject gto = (GeneratedTransferObject) innerClass; + final NestedJavaGeneratedType innerJavaType = javaType.getEnclosedType(innerClass.getIdentifier()); + return gto.isUnionType() ? new UnionTemplate(innerJavaType, gto).generateAsInnerClass() + : new ClassTemplate(innerJavaType, gto).generateAsInnerClass(); + } + + static final Restrictions restrictionsForSetter(final Type actualType) { + return actualType instanceof GeneratedType ? null : getRestrictions(actualType); + } + + static final Restrictions getRestrictions(final Type type) { + if (type instanceof ConcreteType) { + return ((ConcreteType) type).getRestrictions(); + } + if (type instanceof GeneratedTransferObject) { + return ((GeneratedTransferObject) type).getRestrictions(); + } + return null; + } }