public class Oid extends Object
This class represents Universal Object Identifiers (Oids) and their associated operations.
Oids are hierarchically globally-interpretable identifiers used within the GSS-API framework to identify mechanisms and name formats.
The structure and encoding of Oids is defined in ISOIEC-8824 and ISOIEC-8825. For example the Oid representation of Kerberos V5 mechanism is "1.2.840.113554.1.2.2".
The GSSName
name class contains public static Oid
objects representing the standard name types defined in GSS-API.
Constructor and Description |
---|
Oid(byte[] derOid)
Creates an Oid object from its DER encoding.
|
Oid(InputStream derOid)
Creates an Oid object from its DER encoding.
|
Oid(String strOid)
Creates an Oid object from a string representation of its integer
components (e.g. "1.2.840.113554.1.2.2").
|
Modifier and Type | Method and Description |
---|---|
boolean |
containedIn(Oid[] oids)
A utility method to test if an Oid object is contained within the
supplied Oid object array.
|
boolean |
equals(Object o)
Determine whether this Object is semantically equal
to another Object.
|
byte[] |
getDER()
Returns the full ASN.1 DER encoding for this oid object, which
includes the tag and length.
|
int |
hashCode()
Get a value that represents this Object, as uniquely as
possible within the confines of an int.
|
String |
toString()
Returns a string representation of the oid's integer components in
dot separated notation (e.g. "1.2.840.113554.1.2.2").
|
public Oid(String strOid) throws GSSException
strOid
- The string representation for the oid.GSSException
- If the argument is badly formed.public Oid(InputStream derOid) throws GSSException
derOid
- Stream containing the DER encoded oid.GSSException
- If the DER stream is badly formed, or if the
input stream throws an exception.public Oid(byte[] derOid) throws GSSException
derOid
- Byte array storing a DER encoded oid.GSSException
- If the DER bytes are badly formed.public String toString()
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
public byte[] getDER() throws GSSException
GSSException
- If encoding fails.public boolean containedIn(Oid[] oids)
oids
- An array of oids to search.public boolean equals(Object o)
Object
There are some fairly strict requirements on this
method which subclasses must follow:
a.equals(b)
and
b.equals(c)
, then a.equals(c)
must be true as well.a.equals(b)
and
b.equals(a)
must have the same value.a.equals(a)
must
always be true.a.equals(null)
must be false.a.equals(b)
must imply
a.hashCode() == b.hashCode()
.
The reverse is not true; two objects that are not
equal may have the same hashcode, but that has
the potential to harm hashing performance.This is typically overridden to throw a ClassCastException
if the argument is not comparable to the class performing
the comparison, but that is not a requirement. It is legal
for a.equals(b)
to be true even though
a.getClass() != b.getClass()
. Also, it
is typical to never cause a NullPointerException
.
In general, the Collections API (java.util
) use the
equals
method rather than the ==
operator to compare objects. However, IdentityHashMap
is an exception to this rule, for its own good reasons.
The default implementation returns this == o
.
equals
in class Object
o
- the Object to compare toObject.hashCode()
public int hashCode()
Object
There are some requirements on this method which
subclasses must follow:
a.equals(b)
is true, then
a.hashCode() == b.hashCode()
must be as well.
However, the reverse is not necessarily true, and two
objects may have the same hashcode without being equal.Notice that since hashCode
is used in
Hashtable
and other hashing classes,
a poor implementation will degrade the performance of hashing
(so don't blindly implement it as returning a constant!). Also,
if calculating the hash is time-consuming, a class may consider
caching the results.
The default implementation returns
System.identityHashCode(this)
hashCode
in class Object
Object.equals(Object)
,
System.identityHashCode(Object)