package net.gcdc.asn1.uper; import java.lang.annotation.Annotation; class BooleanCoder implements Decoder, Encoder { @Override public <T> boolean canEncode(T obj, Annotation[] extraAnnotations) { return obj instanceof Boolean; } @Override public <T> void encode(BitBuffer bitbuffer, T obj, Annotation[] extraAnnotations) { UperEncoder.logger.debug("BOOLEAN {}", obj); bitbuffer.put((Boolean) obj); } @Override public <T> boolean canDecode(Class<T> classOfT, Annotation[] extraAnnotations) { return Boolean.class.isAssignableFrom(classOfT) || boolean.class.isAssignableFrom(classOfT); } @Override public <T> T decode(BitBuffer bitbuffer, Class<T> classOfT, Annotation[] extraAnnotations) { UperEncoder.logger.debug("BOOL"); return (T) new Boolean(bitbuffer.get()); } }