x509DataType.getX509IssuerSerialOrX509SKIOrX509SubjectName().addAll(childKeyDataList);
JAXBElement dataJAXB = new JAXBElement(new QName("http://www.w3.org/2000/09/xmldsig#", tagName), X509DataType.class, x509DataType);
parentKeyDataList.add(dataJAXB);
} else if (dataType.equals(RetrievalMethodType.class.getSimpleName())) {
RetrievalMethodType retrievalMethodType = new RetrievalMethodType();
TransformsType transformsType = new TransformsType();
for (KeyDataValue retrievalMethodKDV : modelKeyDataValue.getKeyDataValueList()) {
if (retrievalMethodKDV.getKeyDataName().equals("Transform")) {
TransformType tType = new TransformType();
tType.setAlgorithm(retrievalMethodKDV.getKeyDataValueString());
for (KeyDataValue transformContentKDV: retrievalMethodKDV.getKeyDataValueList()) {
String type = transformContentKDV.getKeyDataType();
byte[] xformBytes = transformContentKDV.getKeyDataValueBytes();
Object transformObject = convertDataToTransformContent(type, xformBytes);
tType.getContent().add(transformObject);
}
transformsType.getTransform().add(tType);
} else if (retrievalMethodKDV.getKeyDataName().equals("Type")) {
retrievalMethodType.setType(retrievalMethodKDV.getKeyDataValueString());
} else if (retrievalMethodKDV.getKeyDataName().equals("URI")) {
retrievalMethodType.setURI(retrievalMethodKDV.getKeyDataValueString());
} else {
throw new RuntimeException("Unrecognized key data type: " + retrievalMethodKDV.getKeyDataType());
}
}
if (transformsType.getTransform() != null && !transformsType.getTransform().isEmpty()) {
retrievalMethodType.setTransforms(transformsType);
}
JAXBElement dataJAXB = new JAXBElement(new QName("http://www.w3.org/2000/09/xmldsig#", tagName), RetrievalMethodType.class, retrievalMethodType);
parentKeyDataList.add(dataJAXB);
} else if (dataType.equals(PGPDataType.class.getSimpleName())) {