Java tutorial
/** * Copyright (c) 2009--2012 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.common.client; import org.apache.commons.digester.Digester; import org.xml.sax.SAXException; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.util.ArrayList; /** * ClientCertificateDigester * @version $Rev$ */ public class ClientCertificateDigester { private ClientCertificateDigester() { } private static void configureDigester(Digester digester) { digester.setValidating(false); digester.addObjectCreate("params", ClientCertificate.class); digester.addObjectCreate("*/param/value/struct/member/", Member.class); digester.addCallMethod("*/param/value/struct/member/name", "setName", 0); digester.addCallMethod("*/param/value/struct/member/value/string", "addValue", 0); digester.addObjectCreate("*/param/value/struct/member/value/array", ArrayList.class); digester.addCallMethod("*/param/value/struct/member/value/array/data/value/string", "add", 0); digester.addSetNext("*/param/value/struct/member/value/array", "setValues"); digester.addSetNext("*/param/value/struct/member", "addMember"); } /** * Creates a ClientCertificate from the given inputstream. * @param is to client certificate * @return a ClientCertificate * @throws IOException thrown if there is a problem reading the certificate. * @throws SAXException thrown if there is a problem reading the certificate. */ public static ClientCertificate buildCertificate(InputStream is) throws IOException, SAXException { Digester digester = new Digester(); configureDigester(digester); return (ClientCertificate) digester.parse(is); } /** * @param rdr to client certificate * @return a ClientCertificate * @throws IOException thrown if there is a problem reading the certificate. * @throws SAXException thrown if there is a problem reading the certificate. */ public static ClientCertificate buildCertificate(Reader rdr) throws IOException, SAXException { Digester digester = new Digester(); configureDigester(digester); return (ClientCertificate) digester.parse(rdr); } }