import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition;
public abstract class TypeDefinitionAwareCodec<J, T extends TypeDefinition<T>> implements DataStringCodec<J> {
- private final Optional<T> typeDefinition;
private final Class<J> inputClass;
-
- @Override
- public Class<J> getInputClass() {
- return inputClass;
- }
+ private final T typeDefinition;
protected TypeDefinitionAwareCodec(final Optional<T> typeDefinition, final Class<J> outputClass) {
Preconditions.checkArgument(outputClass != null, "Output class must be specified.");
- this.typeDefinition = typeDefinition;
+ this.typeDefinition = typeDefinition.orNull();
this.inputClass = outputClass;
}
+ @Override
+ public Class<J> getInputClass() {
+ return inputClass;
+ }
+
public Optional<T> getTypeDefinition() {
- return typeDefinition;
+ return Optional.fromNullable(typeDefinition);
}
@SuppressWarnings({ "rawtypes", "unchecked" })