aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/RetrievalMethod.java
blob: feb8b26d3b587924f010567a29ee398e89bef2bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
 * reserved comment block
 * DO NOT REMOVE OR ALTER!
 */
/*
 * Copyright  1999-2004 The Apache Software Foundation.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package com.sun.org.apache.xml.internal.security.keys.content;




import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException;
import com.sun.org.apache.xml.internal.security.signature.XMLSignatureException;
import com.sun.org.apache.xml.internal.security.transforms.Transforms;
import com.sun.org.apache.xml.internal.security.utils.Constants;
import com.sun.org.apache.xml.internal.security.utils.SignatureElementProxy;
import com.sun.org.apache.xml.internal.security.utils.XMLUtils;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;


/**
 *
 * @author $Author: raul $
 */
public class RetrievalMethod extends SignatureElementProxy
        implements KeyInfoContent {

   /** {@link java.util.logging} logging facility */
    static java.util.logging.Logger log =
        java.util.logging.Logger.getLogger(RetrievalMethod.class.getName());
   //J-
    /** DSA retrieval */
   public static final String TYPE_DSA     = Constants.SignatureSpecNS + "DSAKeyValue";
   /** RSA retrieval */
   public static final String TYPE_RSA     = Constants.SignatureSpecNS + "RSAKeyValue";
   /** PGP retrieval */
   public static final String TYPE_PGP     = Constants.SignatureSpecNS + "PGPData";
   /** SPKI retrieval */
   public static final String TYPE_SPKI    = Constants.SignatureSpecNS + "SPKIData";
   /** MGMT retrieval */
   public static final String TYPE_MGMT    = Constants.SignatureSpecNS + "MgmtData";
   /** X509 retrieval */
   public static final String TYPE_X509    = Constants.SignatureSpecNS + "X509Data";
   /** RAWX509 retrieval */
   public static final String TYPE_RAWX509 = Constants.SignatureSpecNS + "rawX509Certificate";
   //J+

   /**
    * Constructor RetrievalMethod
    *
    * @param element
    * @param BaseURI
    * @throws XMLSecurityException
    */
   public RetrievalMethod(Element element, String BaseURI)
           throws XMLSecurityException {
      super(element, BaseURI);
   }

   /**
    * Constructor RetrievalMethod
    *
    * @param doc
    * @param URI
    * @param transforms
    * @param Type
    */
   public RetrievalMethod(Document doc, String URI, Transforms transforms,
                          String Type) {

      super(doc);

      this._constructionElement.setAttributeNS(null, Constants._ATT_URI, URI);

      if (Type != null) {
         this._constructionElement.setAttributeNS(null, Constants._ATT_TYPE, Type);
      }

      if (transforms != null) {
         this._constructionElement.appendChild(transforms.getElement());
         XMLUtils.addReturnToElement(this._constructionElement);
      }
   }

   /**
    * Method getURIAttr
    *
    * @return the URI attribute
    */
   public Attr getURIAttr() {
      return this._constructionElement.getAttributeNodeNS(null, Constants._ATT_URI);
   }

   /**
    * Method getURI
    *
    *
    * @return URI string
    */
   public String getURI() {
      return this.getURIAttr().getNodeValue();
   }

   /** @return the type*/
   public String getType() {
      return this._constructionElement.getAttributeNS(null, Constants._ATT_TYPE);
   }

   /**
    * Method getTransforms
    *
    *
    * @throws XMLSecurityException
    * @return the transforamitons
    */
   public Transforms getTransforms() throws XMLSecurityException {

      try {
       Element transformsElem =
             XMLUtils.selectDsNode(this._constructionElement,
                                                Constants
                                                   ._TAG_TRANSFORMS, 0);

         if (transformsElem != null) {
            return new Transforms(transformsElem, this._baseURI);
         }

         return null;
      } catch (XMLSignatureException ex) {
         throw new XMLSecurityException("empty", ex);
      }
   }

   /** @inheritDoc */
   public String getBaseLocalName() {
      return Constants._TAG_RETRIEVALMETHOD;
   }
}