/* * XAdES4j - A Java library for generation and verification of XAdES signatures. * Copyright (C) 2012 Luis Goncalves. * * XAdES4j is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 3 of the License, or any later version. * * XAdES4j is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License along * with XAdES4j. If not, see <http://www.gnu.org/licenses/>. */ package xades4j.xml.marshalling.algorithms; import java.util.List; import org.w3c.dom.Document; import org.w3c.dom.Node; import xades4j.algorithms.Algorithm; import xades4j.UnsupportedAlgorithmException; /** * Marshaller of parameters of any algorithm. It it responsible for finding and * invoking the appropriate parameters marshaller for each algorithm. * <p> * This interface is intended for use on internal components and <b> may be subject * to changes.</b> * * @author Luís */ public interface AlgorithmsParametersMarshallingProvider { /** * @param alg the algorithm * @param doc the XML document where the nodes will be appended * @return the list os parameter nodes (can be {@code null} but not empty) * @throws UnsupportedAlgorithmException if {@code alg} is not recognized */ List<Node> marshalParameters(Algorithm alg, Document doc) throws UnsupportedAlgorithmException; }