We have number of places where we do verify a Type is a GeneratedType.
Introduce AbstractExplicitGenerator.verifyGeneratedType() to reduce
duplication and explicit casts.
Change-Id: Idcdc2344d59befa2c39d74893348de6627b6c39d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.model.api.Enumeration;
import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder;
import org.opendaylight.mdsal.binding.model.ri.BindingTypes;
@Override
final R createExternalRuntimeType(final Type type) {
- verify(type instanceof GeneratedType, "Unexpected type %s", type);
- return createBuilder(statement()).populate(new AugmentResolver(), this).build((GeneratedType) type);
+ return createBuilder(statement()).populate(new AugmentResolver(), this).build(verifyGeneratedType(type));
}
abstract @NonNull CompositeRuntimeTypeBuilder<S, R> createBuilder(S statement);
@Override
final R createInternalRuntimeType(final AugmentResolver resolver, final S statement, final Type type) {
- verify(type instanceof GeneratedType, "Unexpected type %s", type);
- return createBuilder(statement).populate(resolver, this).build((GeneratedType) type);
+ return createBuilder(statement).populate(resolver, this).build(verifyGeneratedType(type));
}
@Override
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.generator.impl.reactor.CollisionDomain.Member;
import org.opendaylight.mdsal.binding.generator.impl.tree.StatementRepresentation;
+import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.MethodSignature.ValueMechanics;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.api.TypeMemberComment;
}
return helper;
}
+
+ static final @NonNull GeneratedType verifyGeneratedType(final Type type) {
+ if (type instanceof GeneratedType ret) {
+ return ret;
+ }
+ throw new VerifyException("Unexpected type " + type);
+ }
}
*/
package org.opendaylight.mdsal.binding.generator.impl.reactor;
-import static com.google.common.base.Verify.verify;
import static org.opendaylight.mdsal.binding.model.ri.BindingTypes.BASE_IDENTITY;
import java.util.List;
narrowImplementedInterface(builder);
- final ModuleGenerator module = currentModule();
+ final var module = currentModule();
module.addQNameConstant(builder, localName());
// Constant implementation
@Override
IdentityRuntimeType createExternalRuntimeType(final Type type) {
- verify(type instanceof GeneratedType, "Unexpected type %s", type);
- return new DefaultIdentityRuntimeType((GeneratedType) type, statement());
+ return new DefaultIdentityRuntimeType(verifyGeneratedType(type), statement());
}
@Override
*/
package org.opendaylight.mdsal.binding.generator.impl.reactor;
-import static com.google.common.base.Verify.verify;
-
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.generator.impl.rt.DefaultAnydataRuntimeType;
import org.opendaylight.mdsal.binding.generator.impl.rt.DefaultAnyxmlRuntimeType;
}
@Override
- final @NonNull R createExternalRuntimeType(final Type type) {
- verify(type instanceof GeneratedType, "Unexpected type %s", type);
- return createExternalRuntimeType((GeneratedType) type);
+ final R createExternalRuntimeType(final Type type) {
+ return createExternalRuntimeType(verifyGeneratedType(type));
}
abstract @NonNull R createExternalRuntimeType(@NonNull GeneratedType type);
@Override
final R createInternalRuntimeType(final AugmentResolver resolver, final S statement, final Type type) {
- verify(type instanceof GeneratedType, "Unexpected type %s", type);
- return createInternalRuntimeType(statement, (GeneratedType) type);
+ return createInternalRuntimeType(statement, verifyGeneratedType(type));
}
abstract @NonNull R createInternalRuntimeType(@NonNull S statement, @NonNull GeneratedType type);
*/
package org.opendaylight.mdsal.binding.generator.impl.reactor;
-import static com.google.common.base.Verify.verify;
import static com.google.common.base.Verify.verifyNotNull;
import static java.util.Objects.requireNonNull;
import java.util.List;
import org.opendaylight.mdsal.binding.generator.impl.rt.DefaultTypedefRuntimeType;
import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
void bindDerivedGenerators(final TypeReference reference) {
// Trigger any derived resolvers ...
if (derivedGenerators != null) {
- for (AbstractTypeObjectGenerator<?, ?> derived : derivedGenerators) {
+ for (var derived : derivedGenerators) {
derived.bindTypeDefinition(reference);
}
}
@Override
GeneratedTransferObject createDerivedType(final TypeBuilderFactory builderFactory,
final GeneratedTransferObject baseType) {
- final GeneratedTOBuilder builder = builderFactory.newGeneratedTOBuilder(typeName());
+ final var builder = builderFactory.newGeneratedTOBuilder(typeName());
builder.setTypedef(true);
builder.setExtendsType(baseType);
builder.setIsUnion(baseType.isUnionType());
builder.setRestrictions(computeRestrictions());
YangSourceDefinition.of(currentModule().statement(), statement()).ifPresent(builder::setYangSourceDefinition);
- final TypeDefinition<?> typedef = statement().getTypeDefinition();
+ final var typedef = statement().getTypeDefinition();
annotateDeprecatedIfNecessary(typedef, builder);
addStringRegExAsConstant(builder, resolveRegExpressions(typedef));
addUnits(builder, typedef);
@Override
TypedefRuntimeType createExternalRuntimeType(final Type type) {
- verify(type instanceof GeneratedType, "Unexpected type %s", type);
- return new DefaultTypedefRuntimeType((GeneratedType) type, statement());
+ return new DefaultTypedefRuntimeType(verifyGeneratedType(type), statement());
}
@Override