View Javadoc
1   /*
2    * reserved comment block
3    * DO NOT REMOVE OR ALTER!
4    */
5   /**
6    * Licensed to the Apache Software Foundation (ASF) under one
7    * or more contributor license agreements. See the NOTICE file
8    * distributed with this work for additional information
9    * regarding copyright ownership. The ASF licenses this file
10   * to you under the Apache License, Version 2.0 (the
11   * "License"); you may not use this file except in compliance
12   * with the License. You may obtain a copy of the License at
13   *
14   * http://www.apache.org/licenses/LICENSE-2.0
15   *
16   * Unless required by applicable law or agreed to in writing,
17   * software distributed under the License is distributed on an
18   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19   * KIND, either express or implied. See the License for the
20   * specific language governing permissions and limitations
21   * under the License.
22   */
23  package com.sun.org.apache.xml.internal.security.algorithms;
24  
25  import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException;
26  import com.sun.org.apache.xml.internal.security.utils.Constants;
27  import com.sun.org.apache.xml.internal.security.utils.SignatureElementProxy;
28  import org.w3c.dom.Document;
29  import org.w3c.dom.Element;
30  
31  /**
32   * The Algorithm class which stores the Algorithm URI as a string.
33   */
34  public abstract class Algorithm extends SignatureElementProxy {
35  
36      /**
37       *
38       * @param doc
39       * @param algorithmURI is the URI of the algorithm as String
40       */
41      public Algorithm(Document doc, String algorithmURI) {
42          super(doc);
43  
44          this.setAlgorithmURI(algorithmURI);
45      }
46  
47      /**
48       * Constructor Algorithm
49       *
50       * @param element
51       * @param BaseURI
52       * @throws XMLSecurityException
53       */
54      public Algorithm(Element element, String BaseURI) throws XMLSecurityException {
55          super(element, BaseURI);
56      }
57  
58      /**
59       * Method getAlgorithmURI
60       *
61       * @return The URI of the algorithm
62       */
63      public String getAlgorithmURI() {
64          return this.constructionElement.getAttributeNS(null, Constants._ATT_ALGORITHM);
65      }
66  
67      /**
68       * Sets the algorithm's URI as used in the signature.
69       *
70       * @param algorithmURI is the URI of the algorithm as String
71       */
72      protected void setAlgorithmURI(String algorithmURI) {
73          if (algorithmURI != null) {
74              this.constructionElement.setAttributeNS(
75                  null, Constants._ATT_ALGORITHM, algorithmURI
76              );
77          }
78      }
79  }