public class Rdn extends Object implements Serializable, Comparable<Object>
LdapName
のクラスの説明に記載されているように解析対象になります。
Rdnクラスは、RDNを、Attributes
を使って表示可能な属性の型と値のマッピングとして表現します。Rdnクラスには、Rdnが単一の型/値ペア(通常この形式で使用)で構成されているとき、この型と値を簡単に取得できるようにする便利なメソッドが含まれています。また、RFC 2253に定義されているエスケープ構文に従って、書式なし属性値のエスケープと書式化された値のエスケープ解除を行なうヘルパー・メソッドも含まれています。属性値をObjectとして取得、または返すメソッドの場合、値はString (エスケープ解除された書式)またはバイト配列になります。
Rdn
は、有効なRDNをすべて適切に解析する一方で、無効なRDNの解析時には、可能なすべての違反を検出しません。つまり、無効なRDNに対して「寛大」です。名前の有効性は、最終的にLDAPサーバーに渡された時点で判定されます。LDAPサーバーは、スキーマ情報や相互運用の要件などの各種要因に基づいて、渡された名前を受け付けるか拒否します。
次に示すのは、型と値を引数として取るコンストラクタを使ってRdnを構築するコード例です。
Rdn rdn = new Rdn("cn", "Juicy, Fruit"); System.out.println(rdn.toString());最終行により、cn=Juicy\, Fruitが出力されます。エスケープされたカンマのエスケープを解除して、元の値「Juicy, Fruit」を出力させるには、
unescapeValue()
メソッドを使用します。カンマの前にエスケープを戻すには、escapeValue()
メソッドを使用します。
このクラスは、RFC 2253に定義されているRDNの文字列表現により、インスタンス化されます。次のコード例を参照してください。
Rdn rdn = new Rdn("cn=Juicy\\, Fruit"); System.out.println(rdn.toString());最終行により、cn=Juicy\, Fruitが出力されます。
Rdnのインスタンスに対する読取り専用の並行マルチスレッド・アクセスは、必ずしも同期させなくてもかまいません。
ほかで指定がない場合、null引数をコンストラクタ、またはこのクラスのメソッドへ渡すと、NullPointerExceptionがスローされます。
コンストラクタと説明 |
---|
Rdn(Attributes attrSet)
指定の属性セットからRdnを作成します。
|
Rdn(Rdn rdn)
特定のrdnからRdnを構築します。
|
Rdn(String rdnString)
指定の文字列からRdnを作成します。
|
Rdn(String type, Object value)
指定の属性の型および値からRdnを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
int |
compareTo(Object obj)
Rdnと、指定されたObjectの順序を比較します。
|
boolean |
equals(Object obj)
指定のObjectとこのRdnの同等性を比較します。
|
static String |
escapeValue(Object val)
属性の値を指定し、RFC 2253に指定されている規則に従ってエスケープされた文字列を返します。
|
String |
getType()
このRdnの型の1つを取得します。
|
Object |
getValue()
このRdnの値の1つを取得します。
|
int |
hashCode()
このRDNのハッシュ・コードを返します。
|
int |
size()
このRdnに含まれる属性の型/値ペアの数を取得します。
|
Attributes |
toAttributes()
このRdnに含まれる型/値のマッピングの
Attributes ビューを取得します。 |
String |
toString()
|
static Object |
unescapeValue(String val)
RFC 2253に指定されている規則に従って書式化された属性値の文字列を指定して、書式化されていない値を返します。
|
public Rdn(Attributes attrSet) throws InvalidNameException
Attributes
を参照してください。
文字列の属性値は、RFC 2253指定の書式のRDN文字列とは解釈されません。つまり、これらの値は文字どおり解釈され(解析の対象にならない)、エスケープは解除されているものと見なされます。
attrSet
- 型/値のマッピングを含むnull以外の空でない属性。InvalidNameException
- attrSetの内容を使って有効なRDNを作成できない場合。public Rdn(String rdnString) throws InvalidNameException
LdapName
のクラスの説明を参照してください。rdnString
- RFC 2253に定義されている書式を持つ、null以外の空でない文字列。InvalidNameException
- rdnStringの構文解析時に構文エラーが発生した場合。public Rdn(Rdn rdn)
rdn
- コピーするnull以外のRdn。public Rdn(String type, Object value) throws InvalidNameException
type
- null以外の空でない文字列の属性の型。value
- null以外の空でない文字列の属性の値。InvalidNameException
- 型/値のペアを使って有効なRDNを作成できない場合。toString()
public Object getValue()
RDNの値が複数存在する場合、このメソッドは、getType()
メソッドによって返される型に対応する値を返します。
public String getType()
RDNの値が複数存在する場合、型/値ペアの順序は特に定義されていません。この場合、このメソッドは、型/値ペアのいずれか1つの型を返します。getValue()
メソッドは、このメソッドによって返される型に対応する値を返します。
public int compareTo(Object obj)
objがnull、またはRdnのインスタンスではない場合は、ClassCastExceptionがスローされます。
RDNの属性の型と値のペアが、それぞれ辞書的に比較されます。複数の値を持つRdn (「ou=Sales+cn=Bob」など)内のコンポーネントの順序は重要ではありません。
compareTo
、インタフェース: Comparable<Object>
obj
- 比較対象となるnull以外のオブジェクト。ClassCastException
- objがnullであるか、Rdnではない場合。public boolean equals(Object obj)
型の値の同等性のマッチングは次のように行われます。
objがnullである場合、またはRdnのインスタンスではない場合は、falseが返されます。
equals
、クラス: Object
obj
- このRdnと等しいかどうかを比較するオブジェクト。hashCode()
public int hashCode()
hashCode
、クラス: Object
equals(java.lang.Object)
public Attributes toAttributes()
Attributes
ビューを取得します。public int size()
public static String escapeValue(Object val)
たとえば、valが「Sue, Grabbit and Runn」の場合、このメソッドによって返されるエスケープされた値は、「Sue\, Grabbit and Runn」になります。
文字列値は、Stringと、バイト配列で表されるバイナリ値として表現されます。
val
- エスケープするnull以外のオブジェクト。ClassCastException
- valがStringでもバイト配列でもない場合。public static Object unescapeValue(String val)
正当な値と不当な値は、RFC 2253に定義されています。このメソッドは、値を受け付けることに対して寛大で、不当な値をすべて検出しません。このため、不当な値を渡しても、必ずしもIllegalArgumentExceptionはトリガーされません。
val
- エスケープ解除するnull以外の文字列。IllegalArgumentException
- 不当な値が渡された場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.