src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java
Print this page
@@ -1,30 +1,32 @@
/*
* reserved comment block
* DO NOT REMOVE OR ALTER!
*/
-/*
- * Copyright 2005 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
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
- *
+ * 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.
*/
/*
* Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
*/
/*
- * $Id: DOMPGPData.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
+ * $Id: DOMPGPData.java 1203846 2011-11-18 21:18:17Z mullan $
*/
package org.jcp.xml.dsig.internal.dom;
import java.util.*;
import javax.xml.crypto.*;
@@ -46,11 +48,11 @@
*/
public final class DOMPGPData extends DOMStructure implements PGPData {
private final byte[] keyId;
private final byte[] keyPacket;
- private final List externalElements;
+ private final List<XMLStructure> externalElements;
/**
* Creates a <code>DOMPGPData</code> containing the specified key packet.
* and optional list of external elements.
*
@@ -65,27 +67,27 @@
* @throws IllegalArgumentException if the key packet is not in the
* correct format
* @throws ClassCastException if <code>other</code> contains any
* entries that are not of type {@link XMLStructure}
*/
- public DOMPGPData(byte[] keyPacket, List other) {
+ public DOMPGPData(byte[] keyPacket, List<? extends XMLStructure> other) {
if (keyPacket == null) {
throw new NullPointerException("keyPacket cannot be null");
}
if (other == null || other.isEmpty()) {
- this.externalElements = Collections.EMPTY_LIST;
+ this.externalElements = Collections.emptyList();
} else {
- List otherCopy = new ArrayList(other);
- for (int i = 0, size = otherCopy.size(); i < size; i++) {
- if (!(otherCopy.get(i) instanceof XMLStructure)) {
+ this.externalElements =
+ Collections.unmodifiableList(new ArrayList<XMLStructure>(other));
+ for (int i = 0, size = this.externalElements.size(); i < size; i++) {
+ if (!(this.externalElements.get(i) instanceof XMLStructure)) {
throw new ClassCastException
("other["+i+"] is not a valid PGPData type");
}
}
- this.externalElements = Collections.unmodifiableList(otherCopy);
}
- this.keyPacket = (byte []) keyPacket.clone();
+ this.keyPacket = (byte[])keyPacket.clone();
checkKeyPacket(keyPacket);
this.keyId = null;
}
/**
@@ -106,32 +108,35 @@
* @throws IllegalArgumentException if the key id or packet is not in the
* correct format
* @throws ClassCastException if <code>other</code> contains any
* entries that are not of type {@link XMLStructure}
*/
- public DOMPGPData(byte[] keyId, byte[] keyPacket, List other) {
+ public DOMPGPData(byte[] keyId, byte[] keyPacket,
+ List<? extends XMLStructure> other)
+ {
if (keyId == null) {
throw new NullPointerException("keyId cannot be null");
}
// key ids must be 8 bytes
if (keyId.length != 8) {
throw new IllegalArgumentException("keyId must be 8 bytes long");
}
if (other == null || other.isEmpty()) {
- this.externalElements = Collections.EMPTY_LIST;
+ this.externalElements = Collections.emptyList();
} else {
- List otherCopy = new ArrayList(other);
- for (int i = 0, size = otherCopy.size(); i < size; i++) {
- if (!(otherCopy.get(i) instanceof XMLStructure)) {
+ this.externalElements =
+ Collections.unmodifiableList(new ArrayList<XMLStructure>(other));
+ for (int i = 0, size = this.externalElements.size(); i < size; i++) {
+ if (!(this.externalElements.get(i) instanceof XMLStructure)) {
throw new ClassCastException
("other["+i+"] is not a valid PGPData type");
}
}
- this.externalElements = Collections.unmodifiableList(otherCopy);
}
- this.keyId = (byte []) keyId.clone();
- this.keyPacket = keyPacket == null ? null : (byte []) keyPacket.clone();
+ this.keyId = (byte[])keyId.clone();
+ this.keyPacket = keyPacket == null ? null
+ : (byte[])keyPacket.clone();
if (keyPacket != null) {
checkKeyPacket(keyPacket);
}
}
@@ -144,15 +149,15 @@
// get all children nodes
byte[] keyId = null;
byte[] keyPacket = null;
NodeList nl = pdElem.getChildNodes();
int length = nl.getLength();
- List other = new ArrayList(length);
+ List<XMLStructure> other = new ArrayList<XMLStructure>(length);
for (int x = 0; x < length; x++) {
Node n = nl.item(x);
if (n.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element) n;
+ Element childElem = (Element)n;
String localName = childElem.getLocalName();
try {
if (localName.equals("PGPKeyID")) {
keyId = Base64.decode(childElem);
} else if (localName.equals("PGPKeyPacket")){
@@ -170,50 +175,53 @@
this.keyPacket = keyPacket;
this.externalElements = Collections.unmodifiableList(other);
}
public byte[] getKeyId() {
- return (keyId == null ? null : (byte []) keyId.clone());
+ return (keyId == null ? null : (byte[])keyId.clone());
}
public byte[] getKeyPacket() {
- return (keyPacket == null ? null : (byte []) keyPacket.clone());
+ return (keyPacket == null ? null : (byte[])keyPacket.clone());
}
public List getExternalElements() {
return externalElements;
}
public void marshal(Node parent, String dsPrefix, DOMCryptoContext context)
- throws MarshalException {
+ throws MarshalException
+ {
Document ownerDoc = DOMUtils.getOwnerDocument(parent);
-
- Element pdElem = DOMUtils.createElement
- (ownerDoc, "PGPData", XMLSignature.XMLNS, dsPrefix);
+ Element pdElem = DOMUtils.createElement(ownerDoc, "PGPData",
+ XMLSignature.XMLNS, dsPrefix);
// create and append PGPKeyID element
if (keyId != null) {
- Element keyIdElem = DOMUtils.createElement
- (ownerDoc, "PGPKeyID", XMLSignature.XMLNS, dsPrefix);
+ Element keyIdElem = DOMUtils.createElement(ownerDoc, "PGPKeyID",
+ XMLSignature.XMLNS,
+ dsPrefix);
keyIdElem.appendChild
(ownerDoc.createTextNode(Base64.encode(keyId)));
pdElem.appendChild(keyIdElem);
}
// create and append PGPKeyPacket element
if (keyPacket != null) {
- Element keyPktElem = DOMUtils.createElement
- (ownerDoc, "PGPKeyPacket", XMLSignature.XMLNS, dsPrefix);
+ Element keyPktElem = DOMUtils.createElement(ownerDoc,
+ "PGPKeyPacket",
+ XMLSignature.XMLNS,
+ dsPrefix);
keyPktElem.appendChild
(ownerDoc.createTextNode(Base64.encode(keyPacket)));
pdElem.appendChild(keyPktElem);
}
// create and append any elements
- for (int i = 0, size = externalElements.size(); i < size; i++) {
+ for (XMLStructure extElem : externalElements) {
DOMUtils.appendChild(pdElem, ((javax.xml.crypto.dom.DOMStructure)
- externalElements.get(i)).getNode());
+ extElem).getNode());
}
parent.appendChild(pdElem);
}