@Test public void testExplicitOptionalField() throws Exception { SequenceWithExplicitOptionalField seq = parse("300602010d02012a", SequenceWithExplicitOptionalField.class); assertEquals(13, seq.f1.intValue()); assertNull(seq.f2); assertEquals(42, seq.f3.intValue()); seq = parse("300c02010da1040202ffff02012a", SequenceWithExplicitOptionalField.class); assertEquals(13, seq.f1.intValue()); assertEquals(-1, seq.f2.intValue()); assertEquals(42, seq.f3.intValue()); }
public static <T> T parse(ByteBuffer encoded, Class<T> containerClass) throws Asn1DecodingException { BerDataValue containerDataValue; try { containerDataValue = new ByteBufferBerDataValueReader(encoded).readDataValue(); } catch (BerDataValueFormatException e) { throw new Asn1DecodingException("Failed to decode top-level data value", e); } if (containerDataValue == null) { throw new Asn1DecodingException("Empty input"); } return parse(containerDataValue, containerClass); }
Asn1BerParser { public static <T> T parse(ByteBuffer encoded, Class<T> containerClass) throws Asn1DecodingException { BerDataValue containerDataValue; try { containerDataValue = new ByteBufferBerDataValueReader(encoded).readDataValue(); } catch (BerDataValueFormatException e) { throw new Asn1DecodingException("Failed to decode top-level data value", e); } if (containerDataValue == null) { throw new Asn1DecodingException("Empty input"); } return parse(containerDataValue, containerClass); } }
Asn1BerParser { public static <T> T parse(ByteBuffer encoded, Class<T> containerClass) throws Asn1DecodingException { BerDataValue containerDataValue; try { containerDataValue = new ByteBufferBerDataValueReader(encoded).readDataValue(); } catch (BerDataValueFormatException e) { throw new Asn1DecodingException("Failed to decode top-level data value", e); } if (containerDataValue == null) { throw new Asn1DecodingException("Empty input"); } return parse(containerDataValue, containerClass); } private  Asn1BerParser(); }
Asn1BerParser { public static <T> T parse(ByteBuffer encoded, Class<T> containerClass) throws Asn1DecodingException { BerDataValue containerDataValue; try { containerDataValue = new ByteBufferBerDataValueReader(encoded).readDataValue(); } catch (BerDataValueFormatException e) { throw new Asn1DecodingException("Failed to decode top-level data value", e); } if (containerDataValue == null) { throw new Asn1DecodingException("Empty input"); } return parse(containerDataValue, containerClass); } private  Asn1BerParser(); static T parse(ByteBuffer encoded, Class<T> containerClass); static List<T> parseImplicitSetOf(ByteBuffer encoded, Class<T> elementClass); }
Asn1BerParser { public static <T> T parse(ByteBuffer encoded, Class<T> containerClass) throws Asn1DecodingException { BerDataValue containerDataValue; try { containerDataValue = new ByteBufferBerDataValueReader(encoded).readDataValue(); } catch (BerDataValueFormatException e) { throw new Asn1DecodingException("Failed to decode top-level data value", e); } if (containerDataValue == null) { throw new Asn1DecodingException("Empty input"); } return parse(containerDataValue, containerClass); } private  Asn1BerParser(); static T parse(ByteBuffer encoded, Class<T> containerClass); static List<T> parseImplicitSetOf(ByteBuffer encoded, Class<T> elementClass);  }