public DERMacData build() { switch (type) { case UNILATERALU: case BILATERALU: return new DERMacData(concatenate(type.getHeader(), DerUtil.toByteArray(idU), DerUtil.toByteArray(idV), DerUtil.toByteArray(ephemDataU), DerUtil.toByteArray(ephemDataV), text)); case UNILATERALV: case BILATERALV: return new DERMacData(concatenate(type.getHeader(), DerUtil.toByteArray(idV), DerUtil.toByteArray(idU), DerUtil.toByteArray(ephemDataV), DerUtil.toByteArray(ephemDataU), text)); } throw new IllegalStateException("Unknown type encountered in build"); // should never happen }