| package org.bouncycastle.jce.provider; |
| |
| import java.security.cert.PolicyNode; |
| import java.util.ArrayList; |
| import java.util.HashSet; |
| import java.util.Iterator; |
| import java.util.List; |
| import java.util.Set; |
| |
| public class PKIXPolicyNode |
| implements PolicyNode |
| { |
| protected List children; |
| protected int depth; |
| protected Set expectedPolicies; |
| protected PolicyNode parent; |
| protected Set policyQualifiers; |
| protected String validPolicy; |
| protected boolean critical; |
| |
| /* |
| * |
| * CONSTRUCTORS |
| * |
| */ |
| |
| public PKIXPolicyNode( |
| List _children, |
| int _depth, |
| Set _expectedPolicies, |
| PolicyNode _parent, |
| Set _policyQualifiers, |
| String _validPolicy, |
| boolean _critical) |
| { |
| children = _children; |
| depth = _depth; |
| expectedPolicies = _expectedPolicies; |
| parent = _parent; |
| policyQualifiers = _policyQualifiers; |
| validPolicy = _validPolicy; |
| critical = _critical; |
| } |
| |
| public void addChild( |
| PKIXPolicyNode _child) |
| { |
| children.add(_child); |
| _child.setParent(this); |
| } |
| |
| public Iterator getChildren() |
| { |
| return children.iterator(); |
| } |
| |
| public int getDepth() |
| { |
| return depth; |
| } |
| |
| public Set getExpectedPolicies() |
| { |
| return expectedPolicies; |
| } |
| |
| public PolicyNode getParent() |
| { |
| return parent; |
| } |
| |
| public Set getPolicyQualifiers() |
| { |
| return policyQualifiers; |
| } |
| |
| public String getValidPolicy() |
| { |
| return validPolicy; |
| } |
| |
| public boolean hasChildren() |
| { |
| return !children.isEmpty(); |
| } |
| |
| public boolean isCritical() |
| { |
| return critical; |
| } |
| |
| public void removeChild(PKIXPolicyNode _child) |
| { |
| children.remove(_child); |
| } |
| |
| public void setCritical(boolean _critical) |
| { |
| critical = _critical; |
| } |
| |
| public void setParent(PKIXPolicyNode _parent) |
| { |
| parent = _parent; |
| } |
| |
| public String toString() |
| { |
| return toString(""); |
| } |
| |
| public String toString(String _indent) |
| { |
| StringBuffer _buf = new StringBuffer(); |
| _buf.append(_indent); |
| _buf.append(validPolicy); |
| _buf.append(" {\n"); |
| |
| for(int i = 0; i < children.size(); i++) |
| { |
| _buf.append(((PKIXPolicyNode)children.get(i)).toString(_indent + " ")); |
| } |
| |
| _buf.append(_indent); |
| _buf.append("}\n"); |
| return _buf.toString(); |
| } |
| |
| public Object clone() |
| { |
| return copy(); |
| } |
| |
| public PKIXPolicyNode copy() |
| { |
| Set _expectedPolicies = new HashSet(); |
| Iterator _iter = expectedPolicies.iterator(); |
| while (_iter.hasNext()) |
| { |
| _expectedPolicies.add(new String((String)_iter.next())); |
| } |
| |
| Set _policyQualifiers = new HashSet(); |
| _iter = policyQualifiers.iterator(); |
| while (_iter.hasNext()) |
| { |
| _policyQualifiers.add(new String((String)_iter.next())); |
| } |
| |
| PKIXPolicyNode _node = new PKIXPolicyNode(new ArrayList(), |
| depth, |
| _expectedPolicies, |
| null, |
| _policyQualifiers, |
| new String(validPolicy), |
| critical); |
| |
| _iter = children.iterator(); |
| while (_iter.hasNext()) |
| { |
| PKIXPolicyNode _child = ((PKIXPolicyNode)_iter.next()).copy(); |
| _child.setParent(_node); |
| _node.addChild(_child); |
| } |
| |
| return _node; |
| } |
| } |