in src/main/java/org/apache/jcp/xml/dsig/internal/dom/XMLDSigRI.java [81:127]
public Object newInstance(Object ctrParamObj)
throws NoSuchAlgorithmException {
String type = getType();
if (ctrParamObj != null) {
throw new InvalidParameterException
("constructorParameter not used with " + type + " engines");
}
String algo = getAlgorithm();
try {
if ("XMLSignatureFactory".equals(type)) {
if ("DOM".equals(algo)) {
return new DOMXMLSignatureFactory();
}
} else if ("KeyInfoFactory".equals(type)) {
if ("DOM".equals(algo)) {
return new DOMKeyInfoFactory();
}
} else if ("TransformService".equals(type)) {
if (algo.equals(CanonicalizationMethod.INCLUSIVE) ||
algo.equals(CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS)) {
return new DOMCanonicalXMLC14NMethod();
} else if ("http://www.w3.org/2006/12/xml-c14n11".equals(algo) ||
"http://www.w3.org/2006/12/xml-c14n11#WithComments".equals(algo)) {
return new DOMCanonicalXMLC14N11Method();
} else if (algo.equals(CanonicalizationMethod.EXCLUSIVE) ||
algo.equals(CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS)) {
return new DOMExcC14NMethod();
} else if (algo.equals(Transform.BASE64)) {
return new DOMBase64Transform();
} else if (algo.equals(Transform.ENVELOPED)) {
return new DOMEnvelopedTransform();
} else if (algo.equals(Transform.XPATH2)) {
return new DOMXPathFilter2Transform();
} else if (algo.equals(Transform.XPATH)) {
return new DOMXPathTransform();
} else if (algo.equals(Transform.XSLT)) {
return new DOMXSLTTransform();
}
}
} catch (Exception ex) {
throw new NoSuchAlgorithmException("Error constructing " +
type + " for " + algo + " using XMLDSig", ex);
}
throw new ProviderException("No impl for " + algo +
" " + type);
}