• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.bouncycastle.jce.provider;
2 
3 import java.security.cert.PolicyNode;
4 import java.util.ArrayList;
5 import java.util.HashSet;
6 import java.util.Iterator;
7 import java.util.List;
8 import java.util.Set;
9 
10 public class PKIXPolicyNode
11     implements PolicyNode
12 {
13     protected List       children;
14     protected int        depth;
15     protected Set        expectedPolicies;
16     protected PolicyNode parent;
17     protected Set        policyQualifiers;
18     protected String     validPolicy;
19     protected boolean    critical;
20 
21     /*
22      *
23      *  CONSTRUCTORS
24      *
25      */
26 
PKIXPolicyNode( List _children, int _depth, Set _expectedPolicies, PolicyNode _parent, Set _policyQualifiers, String _validPolicy, boolean _critical)27     public PKIXPolicyNode(
28         List       _children,
29         int        _depth,
30         Set        _expectedPolicies,
31         PolicyNode _parent,
32         Set        _policyQualifiers,
33         String     _validPolicy,
34         boolean    _critical)
35     {
36         children         = _children;
37         depth            = _depth;
38         expectedPolicies = _expectedPolicies;
39         parent           = _parent;
40         policyQualifiers = _policyQualifiers;
41         validPolicy      = _validPolicy;
42         critical         = _critical;
43     }
44 
addChild( PKIXPolicyNode _child)45     public void addChild(
46         PKIXPolicyNode _child)
47     {
48         children.add(_child);
49         _child.setParent(this);
50     }
51 
getChildren()52     public Iterator getChildren()
53     {
54         return children.iterator();
55     }
56 
getDepth()57     public int getDepth()
58     {
59         return depth;
60     }
61 
getExpectedPolicies()62     public Set getExpectedPolicies()
63     {
64         return expectedPolicies;
65     }
66 
getParent()67     public PolicyNode getParent()
68     {
69         return parent;
70     }
71 
getPolicyQualifiers()72     public Set getPolicyQualifiers()
73     {
74         return policyQualifiers;
75     }
76 
getValidPolicy()77     public String getValidPolicy()
78     {
79         return validPolicy;
80     }
81 
hasChildren()82     public boolean hasChildren()
83     {
84         return !children.isEmpty();
85     }
86 
isCritical()87     public boolean isCritical()
88     {
89         return critical;
90     }
91 
removeChild(PKIXPolicyNode _child)92     public void removeChild(PKIXPolicyNode _child)
93     {
94         children.remove(_child);
95     }
96 
setCritical(boolean _critical)97     public void setCritical(boolean _critical)
98     {
99         critical = _critical;
100     }
101 
setParent(PKIXPolicyNode _parent)102     public void setParent(PKIXPolicyNode _parent)
103     {
104         parent = _parent;
105     }
106 
toString()107     public String toString()
108     {
109         return toString("");
110     }
111 
toString(String _indent)112     public String toString(String _indent)
113     {
114         StringBuffer _buf = new StringBuffer();
115         _buf.append(_indent);
116         _buf.append(validPolicy);
117         _buf.append(" {\n");
118 
119         for(int i = 0; i < children.size(); i++)
120         {
121             _buf.append(((PKIXPolicyNode)children.get(i)).toString(_indent + "    "));
122         }
123 
124         _buf.append(_indent);
125         _buf.append("}\n");
126         return _buf.toString();
127     }
128 
clone()129     public Object clone()
130     {
131         return copy();
132     }
133 
copy()134     public PKIXPolicyNode copy()
135     {
136         Set     _expectedPolicies = new HashSet();
137         Iterator _iter = expectedPolicies.iterator();
138         while (_iter.hasNext())
139         {
140             _expectedPolicies.add(new String((String)_iter.next()));
141         }
142 
143         Set     _policyQualifiers = new HashSet();
144         _iter = policyQualifiers.iterator();
145         while (_iter.hasNext())
146         {
147             _policyQualifiers.add(new String((String)_iter.next()));
148         }
149 
150         PKIXPolicyNode _node = new PKIXPolicyNode(new ArrayList(),
151                                                   depth,
152                                                   _expectedPolicies,
153                                                   null,
154                                                   _policyQualifiers,
155                                                   new String(validPolicy),
156                                                   critical);
157 
158         _iter = children.iterator();
159         while (_iter.hasNext())
160         {
161             PKIXPolicyNode _child = ((PKIXPolicyNode)_iter.next()).copy();
162             _child.setParent(_node);
163             _node.addChild(_child);
164         }
165 
166         return _node;
167     }
168 }
169