- static TypeDefinitionAwareCodec<?,BinaryTypeDefinition> from(final BinaryTypeDefinition type) {
- return new BinaryStringCodec(Optional.fromNullable(type));
+ private static final class Unrestricted extends BinaryStringCodec {
+ Unrestricted(final BinaryTypeDefinition typeDef) {
+ super(typeDef);
+ }
+
+ @Override
+ void validate(final byte[] value) {
+ // No-op
+ }
+ }
+
+ BinaryStringCodec(final BinaryTypeDefinition typeDef) {
+ super(requireNonNull(typeDef), byte[].class);
+ }
+
+ public static BinaryStringCodec from(final BinaryTypeDefinition type) {
+ final java.util.Optional<LengthConstraint> optConstraint = type.getLengthConstraint();
+ return optConstraint.isPresent() ? new Restricted(type, optConstraint.get()) : new Unrestricted(type);