#
# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code 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 General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# ##########################################################
# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
# ##########################################################
#
module name java.xml.crypto
header exports javax/xml/crypto/dsig/keyinfo,javax/xml/crypto/dsig,javax/xml/crypto/dsig/spec,javax/xml/crypto,javax/xml/crypto/dom,javax/xml/crypto/dsig/dom requires name\u0020;java.logging\u0020;flags\u0020;0,name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.xml\u0020;flags\u0020;20 provides interface\u0020;java/security/Provider\u0020;impls\u0020;org/jcp/xml/dsig/internal/dom/XMLDSigRI flags 8000

class name javax/xml/crypto/NodeSetData
header extends java/lang/Object implements javax/xml/crypto/Data,java/lang/Iterable flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljavax/xml/crypto/Data;Ljava/lang/Iterable<TT;>;
-method name iterator descriptor ()Ljava/util/Iterator;
method name iterator descriptor ()Ljava/util/Iterator; flags 401 signature ()Ljava/util/Iterator<TT;>;

class name javax/xml/crypto/dom/DOMCryptoContext
header extends java/lang/Object implements javax/xml/crypto/XMLCryptoContext flags 21
innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
-method name iterator descriptor ()Ljava/util/Iterator;
method name iterator descriptor ()Ljava/util/Iterator; flags 1 signature ()Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Lorg/w3c/dom/Element;>;>;

class name javax/xml/crypto/dsig/Manifest
-method name getReferences descriptor ()Ljava/util/List;
method name getReferences descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/Reference;>;

class name javax/xml/crypto/dsig/Reference
-method name getTransforms descriptor ()Ljava/util/List;
method name getTransforms descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/Transform;>;

class name javax/xml/crypto/dsig/SignatureProperties
-method name getProperties descriptor ()Ljava/util/List;
method name getProperties descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/SignatureProperty;>;

class name javax/xml/crypto/dsig/SignatureProperty
-method name getContent descriptor ()Ljava/util/List;
method name getContent descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/XMLStructure;>;

class name javax/xml/crypto/dsig/SignedInfo
-method name getReferences descriptor ()Ljava/util/List;
method name getReferences descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/Reference;>;

class name javax/xml/crypto/dsig/TransformService
header extends java/lang/Object implements javax/xml/crypto/dsig/Transform flags 421
innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19

class name javax/xml/crypto/dsig/XMLObject
-method name getContent descriptor ()Ljava/util/List;
method name getContent descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/XMLStructure;>;

class name javax/xml/crypto/dsig/XMLSignature
-method name getObjects descriptor ()Ljava/util/List;
method name getObjects descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/XMLObject;>;

class name javax/xml/crypto/dsig/XMLSignatureFactory
header extends java/lang/Object flags 421
innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
-method name newXMLSignature descriptor (Ljavax/xml/crypto/dsig/SignedInfo;Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/XMLSignature;
-method name newReference descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Reference;
-method name newReference descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;[B)Ljavax/xml/crypto/dsig/Reference;
-method name newReference descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List;Ljavax/xml/crypto/Data;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Reference;
-method name newSignedInfo descriptor (Ljavax/xml/crypto/dsig/CanonicalizationMethod;Ljavax/xml/crypto/dsig/SignatureMethod;Ljava/util/List;)Ljavax/xml/crypto/dsig/SignedInfo;
-method name newSignedInfo descriptor (Ljavax/xml/crypto/dsig/CanonicalizationMethod;Ljavax/xml/crypto/dsig/SignatureMethod;Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignedInfo;
-method name newXMLObject descriptor (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/XMLObject;
-method name newManifest descriptor (Ljava/util/List;)Ljavax/xml/crypto/dsig/Manifest;
-method name newManifest descriptor (Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Manifest;
-method name newSignatureProperty descriptor (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignatureProperty;
-method name newSignatureProperties descriptor (Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignatureProperties;
method name newXMLSignature descriptor (Ljavax/xml/crypto/dsig/SignedInfo;Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/XMLSignature; flags 401 signature (Ljavax/xml/crypto/dsig/SignedInfo;Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;Ljava/util/List<+Ljavax/xml/crypto/dsig/XMLObject;>;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/XMLSignature;
method name newReference descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Reference; flags 401 signature (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List<+Ljavax/xml/crypto/dsig/Transform;>;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Reference;
method name newReference descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;[B)Ljavax/xml/crypto/dsig/Reference; flags 401 signature (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List<+Ljavax/xml/crypto/dsig/Transform;>;Ljava/lang/String;Ljava/lang/String;[B)Ljavax/xml/crypto/dsig/Reference;
method name newReference descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List;Ljavax/xml/crypto/Data;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Reference; flags 401 signature (Ljava/lang/String;Ljavax/xml/crypto/dsig/DigestMethod;Ljava/util/List<+Ljavax/xml/crypto/dsig/Transform;>;Ljavax/xml/crypto/Data;Ljava/util/List<+Ljavax/xml/crypto/dsig/Transform;>;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Reference;
method name newSignedInfo descriptor (Ljavax/xml/crypto/dsig/CanonicalizationMethod;Ljavax/xml/crypto/dsig/SignatureMethod;Ljava/util/List;)Ljavax/xml/crypto/dsig/SignedInfo; flags 401 signature (Ljavax/xml/crypto/dsig/CanonicalizationMethod;Ljavax/xml/crypto/dsig/SignatureMethod;Ljava/util/List<+Ljavax/xml/crypto/dsig/Reference;>;)Ljavax/xml/crypto/dsig/SignedInfo;
method name newSignedInfo descriptor (Ljavax/xml/crypto/dsig/CanonicalizationMethod;Ljavax/xml/crypto/dsig/SignatureMethod;Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignedInfo; flags 401 signature (Ljavax/xml/crypto/dsig/CanonicalizationMethod;Ljavax/xml/crypto/dsig/SignatureMethod;Ljava/util/List<+Ljavax/xml/crypto/dsig/Reference;>;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignedInfo;
method name newXMLObject descriptor (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/XMLObject; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/XMLStructure;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/XMLObject;
method name newManifest descriptor (Ljava/util/List;)Ljavax/xml/crypto/dsig/Manifest; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/dsig/Reference;>;)Ljavax/xml/crypto/dsig/Manifest;
method name newManifest descriptor (Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Manifest; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/dsig/Reference;>;Ljava/lang/String;)Ljavax/xml/crypto/dsig/Manifest;
method name newSignatureProperty descriptor (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignatureProperty; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/XMLStructure;>;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignatureProperty;
method name newSignatureProperties descriptor (Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignatureProperties; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/dsig/SignatureProperty;>;Ljava/lang/String;)Ljavax/xml/crypto/dsig/SignatureProperties;

class name javax/xml/crypto/dsig/keyinfo/KeyInfo
-method name getContent descriptor ()Ljava/util/List;
method name getContent descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/XMLStructure;>;

class name javax/xml/crypto/dsig/keyinfo/KeyInfoFactory
header extends java/lang/Object flags 421
innerclass innerClass java/security/Provider$Service outerClass java/security/Provider innerClassName Service flags 9
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
-method name newKeyInfo descriptor (Ljava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;
-method name newKeyInfo descriptor (Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;
-method name newPGPData descriptor ([B[BLjava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/PGPData;
-method name newPGPData descriptor ([BLjava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/PGPData;
-method name newRetrievalMethod descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/RetrievalMethod;
-method name newX509Data descriptor (Ljava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/X509Data;
method name newKeyInfo descriptor (Ljava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/KeyInfo; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/XMLStructure;>;)Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;
method name newKeyInfo descriptor (Ljava/util/List;Ljava/lang/String;)Ljavax/xml/crypto/dsig/keyinfo/KeyInfo; flags 401 signature (Ljava/util/List<+Ljavax/xml/crypto/XMLStructure;>;Ljava/lang/String;)Ljavax/xml/crypto/dsig/keyinfo/KeyInfo;
method name newPGPData descriptor ([B[BLjava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/PGPData; flags 401 signature ([B[BLjava/util/List<+Ljavax/xml/crypto/XMLStructure;>;)Ljavax/xml/crypto/dsig/keyinfo/PGPData;
method name newPGPData descriptor ([BLjava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/PGPData; flags 401 signature ([BLjava/util/List<+Ljavax/xml/crypto/XMLStructure;>;)Ljavax/xml/crypto/dsig/keyinfo/PGPData;
method name newRetrievalMethod descriptor (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/RetrievalMethod; flags 401 signature (Ljava/lang/String;Ljava/lang/String;Ljava/util/List<+Ljavax/xml/crypto/dsig/Transform;>;)Ljavax/xml/crypto/dsig/keyinfo/RetrievalMethod;
method name newX509Data descriptor (Ljava/util/List;)Ljavax/xml/crypto/dsig/keyinfo/X509Data; flags 401 signature (Ljava/util/List<*>;)Ljavax/xml/crypto/dsig/keyinfo/X509Data;

class name javax/xml/crypto/dsig/keyinfo/PGPData
-method name getExternalElements descriptor ()Ljava/util/List;
method name getExternalElements descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/XMLStructure;>;

class name javax/xml/crypto/dsig/keyinfo/RetrievalMethod
-method name getTransforms descriptor ()Ljava/util/List;
method name getTransforms descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/Transform;>;

class name javax/xml/crypto/dsig/keyinfo/X509Data
-method name getContent descriptor ()Ljava/util/List;
method name getContent descriptor ()Ljava/util/List; flags 401 signature ()Ljava/util/List<*>;

class name javax/xml/crypto/dsig/spec/ExcC14NParameterSpec
-method name <init> descriptor (Ljava/util/List;)V
-method name getPrefixList descriptor ()Ljava/util/List;
method name <init> descriptor (Ljava/util/List;)V flags 1 signature (Ljava/util/List<Ljava/lang/String;>;)V
method name getPrefixList descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljava/lang/String;>;

class name javax/xml/crypto/dsig/spec/XPathFilter2ParameterSpec
-method name <init> descriptor (Ljava/util/List;)V
-method name getXPathList descriptor ()Ljava/util/List;
method name <init> descriptor (Ljava/util/List;)V flags 1 signature (Ljava/util/List<Ljavax/xml/crypto/dsig/spec/XPathType;>;)V
method name getXPathList descriptor ()Ljava/util/List; flags 1 signature ()Ljava/util/List<Ljavax/xml/crypto/dsig/spec/XPathType;>;

class name javax/xml/crypto/dsig/spec/XPathFilterParameterSpec
-method name <init> descriptor (Ljava/lang/String;Ljava/util/Map;)V
-method name getNamespaceMap descriptor ()Ljava/util/Map;
method name <init> descriptor (Ljava/lang/String;Ljava/util/Map;)V flags 1 signature (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
method name getNamespaceMap descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

class name javax/xml/crypto/dsig/spec/XPathType
-method name <init> descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/spec/XPathType$Filter;Ljava/util/Map;)V
-method name getNamespaceMap descriptor ()Ljava/util/Map;
method name <init> descriptor (Ljava/lang/String;Ljavax/xml/crypto/dsig/spec/XPathType$Filter;Ljava/util/Map;)V flags 1 signature (Ljava/lang/String;Ljavax/xml/crypto/dsig/spec/XPathType$Filter;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
method name getNamespaceMap descriptor ()Ljava/util/Map; flags 1 signature ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

