public class Wrapper<T> // Don't use this name either... { private ExtraFields extraFields; private T myClass; public Wrapper(T myClass) { this.myClass = myClass; this.extraFields = new ExtraFields(); } }
final @Nullable ExtraField addExtraField(final ExtraField field) { assert null != field; ExtraFields fields = this.fields; if (null == fields) this.fields = fields = new ExtraFields(); return fields.add(field); }
public class Subclass1 extends Superclass1 { private ExtraFields extraFields; public MySubclass() { super(); extraFields = new ExtraFields(); } public void doSomethingWithExtraFields() { extraFields.doSomethingWithExtraFields(); } }
/** * @throws IllegalArgumentException if the serialized extra fields do not * conform to the ZIP File Format Specification. */ private void setExtraFields(final byte[] buf, final boolean zip64) throws IllegalArgumentException { assert UShort.check(buf.length); if (0 < buf.length) { final ExtraFields fields = new ExtraFields(); try { fields.readFrom(buf, 0, buf.length); if (zip64) parseZip64ExtraField(fields); } catch (final IndexOutOfBoundsException ex) { throw new IllegalArgumentException(ex); } fields.remove(ZIP64_HEADER_ID); this.fields = 0 < fields.size() ? fields : null; } else { this.fields = null; } }
@Before public void setUp() { fields = new ExtraFields(); serialized = SERIALIZED.clone(); }
private byte[] getExtraFields(final boolean zip64) { ExtraFields fields = this.fields; if (zip64) { final ExtraField field = composeZip64ExtraField(); if (null != field) { fields = null != fields ? fields.clone() : new ExtraFields(); fields.add(field); } } else { assert null == fields || null == fields.get(ZIP64_HEADER_ID); } return null == fields ? EMPTY : fields.getExtra(); }