|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface DirContext
目錄服務介面,包含一些用於檢查和更新與物件關聯的屬性以及搜尋目錄的方法。
大多數方法具有重載形式,一種使用 Name
參數,另一種使用 String
參數。這些重載的方法是等效的,因為如果 Name
和 String
參數只是同一名稱的不同表示形式,則相同方法的重載形式以相同的方式運行。在以下的方法描述中,只記錄一種形式。第二種形式連接到第一種:對兩者應用相同的文檔。
有關 Context 方法的名稱參數解釋的討論,請參閱 Context。這些相同的規則也適用於 DirContext 方法的名稱參數。
第二個模型是屬性與 DirContext 中的名稱(通常是原子名稱)相關聯。在此模型中,對指定物件進行的屬性操作大致等效於先對命名物件父 DirContext 的名稱進行尋找,然後對父 DirContext 物件(調用者在其中提供最終原子名稱)調用該屬性操作。這些屬性可視為存儲在父 DirContext 中(注意,這並不意味著實作必須進行此操作)。不是 DirContext 的物件只要其父級是 DirContext 就可以有屬性。
JNDI 同時支持這兩種模型。由各個服務提供者決定將屬性“存儲”在何處。JNDI 客戶端在沒有對物件屬性是作為物件的一部分存儲,還是存儲在父物件中並與物件名稱關聯作出假設時,是最安全的。
在屬性子類別化中,屬性在類別層次中定義。例如,在某些目錄中,"name" 屬性可能是所有與名稱相關的屬性(包括 "commonName" 和 "surName")的父級類別。請求 "name" 屬性可能同時返回 "commonName" 和 "surName" 屬性。
使用屬性型別同義詞,目錄可以將多個名稱分派給同一屬性。例如,"cn" 和 "commonName" 可能指的是同一屬性。請求 "cn" 可能返回 "commonName" 屬性。
有些目錄支持屬性的語言碼。例如,向這種目錄請求 "description" 屬性可能返回以下全部屬性:
有些目錄具有“操作屬性”的概念,操作屬性指為了管理而與目錄物件關聯的屬性。一個操作屬性的範例是物件的存取控制列表。
在 getAttributes() 和 search() 方法中,可以通過提供 null 作為要返回的屬性列表來指定所有與請求的物件關聯的屬性。返回的屬性不 套件括操作屬性。要檢索操作屬性,必須顯式指定它們。
在某些方法中,必須將名稱解析為上下文(例如,在搜尋單個級別的上下文時)。這些方法的文檔使用術語命名上下文 來描述其名稱參數。對於這些方法,如果命名物件不是 DirContext,則拋出 NotContextException
。除了這些方法之外,其他方法均不要求命名物件 為 DirContext。
作為參數傳遞給任何方法的 Attributes、SearchControls 或陣列物件不能被服務提供者修改。服務提供者可以在操作期間持有對它的參考,包括方法結果的所有列舉和對產生的所有參考的處理。調用者在此期間不應修改物件。任何方法返回的 Attributes 物件都歸調用者所有。調用者可以在以後修改它,而服務提供者則不能。
此介面中的所有方法都可以拋出 NamingException 或其任一子類別。有關每個異常的詳細資訊,請參閱 NamingException 及其子類別。
Context
欄位摘要 | |
---|---|
static int |
ADD_ATTRIBUTE
此常數指定使用指定值添加屬性。 |
static int |
REMOVE_ATTRIBUTE
此常數指定從屬性中刪除指定的屬性值。 |
static int |
REPLACE_ATTRIBUTE
此常數指定使用指定值替換屬性。 |
方法摘要 | |
---|---|
void |
bind(Name name,
Object obj,
Attributes attrs)
將名稱與關聯的屬性一起綁定到一個物件。 |
void |
bind(String name,
Object obj,
Attributes attrs)
將名稱與關聯的屬性一起綁定到一個物件。 |
DirContext |
createSubcontext(Name name,
Attributes attrs)
創建並綁定新的上下文及關聯的屬性。 |
DirContext |
createSubcontext(String name,
Attributes attrs)
創建並綁定新的上下文及關聯的屬性。 |
Attributes |
getAttributes(Name name)
檢索與命名物件關聯的所有屬性。 |
Attributes |
getAttributes(Name name,
String[] attrIds)
檢索與命名物件關聯的選定屬性。 |
Attributes |
getAttributes(String name)
檢索所有與命名物件關聯的屬性。 |
Attributes |
getAttributes(String name,
String[] attrIds)
檢索與命名物件關聯的選定屬性。 |
DirContext |
getSchema(Name name)
檢索與命名物件關聯的網要。 |
DirContext |
getSchema(String name)
檢索與命名物件關聯的網要。 |
DirContext |
getSchemaClassDefinition(Name name)
檢索包含命名物件類別定義的網要物件的上下文。 |
DirContext |
getSchemaClassDefinition(String name)
檢索包含命名物件類別定義的網要物件的上下文。 |
void |
modifyAttributes(Name name,
int mod_op,
Attributes attrs)
修改與命名物件關聯的屬性。 |
void |
modifyAttributes(Name name,
ModificationItem[] mods)
使用有序的修改列表修改與命名物件關聯的屬性。 |
void |
modifyAttributes(String name,
int mod_op,
Attributes attrs)
修改與命名物件關聯的屬性。 |
void |
modifyAttributes(String name,
ModificationItem[] mods)
使用有序的修改列表修改與命名物件關聯的屬性。 |
void |
rebind(Name name,
Object obj,
Attributes attrs)
將名稱與關聯的屬性一起綁定到一個物件,並覆寫任何現有綁定。 |
void |
rebind(String name,
Object obj,
Attributes attrs)
將名稱與關聯的屬性一起綁定到一個物件,並覆寫任何現有綁定。 |
NamingEnumeration<SearchResult> |
search(Name name,
Attributes matchingAttributes)
在單個上下文中搜尋包含指定屬性集的物件。 |
NamingEnumeration<SearchResult> |
search(Name name,
Attributes matchingAttributes,
String[] attributesToReturn)
在單個上下文中搜尋包含指定屬性集的物件,並檢索選定的屬性。 |
NamingEnumeration<SearchResult> |
search(Name name,
String filterExpr,
Object[] filterArgs,
SearchControls cons)
在命名上下文或物件中搜尋符合給定搜尋過濾器的項。 |
NamingEnumeration<SearchResult> |
search(Name name,
String filter,
SearchControls cons)
在命名上下文或物件中搜尋符合給定搜尋過濾器的項。 |
NamingEnumeration<SearchResult> |
search(String name,
Attributes matchingAttributes)
在單個上下文中搜尋包含指定屬性集的物件。 |
NamingEnumeration<SearchResult> |
search(String name,
Attributes matchingAttributes,
String[] attributesToReturn)
在單個上下文中搜尋包含指定屬性集的物件,並檢索選定的屬性。 |
NamingEnumeration<SearchResult> |
search(String name,
String filterExpr,
Object[] filterArgs,
SearchControls cons)
在命名上下文或物件中搜尋符合給定搜尋過濾器的項。 |
NamingEnumeration<SearchResult> |
search(String name,
String filter,
SearchControls cons)
在命名上下文或物件中搜尋符合給定搜尋過濾器的項。 |
從介面 javax.naming.Context 繼承的方法 |
---|
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind |
欄位詳細資訊 |
---|
static final int ADD_ATTRIBUTE
如果屬性不存在,則創建屬性。得到的屬性會將指定的值集合與以前的值集合併起來。如果屬性必須至少有一個值,則添加不帶值的屬性將拋出 InvalidAttributeValueException
。對於屬性已經存在的單值屬性,拋出 AttributeInUseException
。如果試圖將一個以上的值添加到單值屬性,則拋出 InvalidAttributeValueException
。
此常數的值為 1。
ModificationItem
,
modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
,
常數欄位值static final int REPLACE_ATTRIBUTE
如果屬性已經存在,則使用新的指定值替換所有現有值。如果該屬性不存在,則創建它。如果沒有指定值,則刪除屬性的所有值。如果要求屬性必須至少有一個值,則移除最後一個值時會將屬性一起移除。如果試圖將一個以上的值添加到單值屬性,則拋出 InvalidAttributeValueException
。
此常數的值為 2。
ModificationItem
,
modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
,
常數欄位值static final int REMOVE_ATTRIBUTE
得到的屬性值集合不同於其以前的值集合和指定的值集合。如果沒有指定值,則刪除整個屬性。如果屬性不存在,或者指定值集合的某些或全部成員不存在,則可能忽略此情況並操作成功,也可能拋出 NamingException 指示此情況。如果要求屬性必須至少有一個值,則移除最後一個值時會將屬性一起移除。
此常數的值為 3。
ModificationItem
,
modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
,
常數欄位值方法詳細資訊 |
---|
Attributes getAttributes(Name name) throws NamingException
name
- 物件名,通過該物件名檢索屬性
name
關聯的屬性集。如果名稱沒有屬性,則返回空屬性集;永遠不為 null。
NamingException
- 如果遇到命名異常getAttributes(String)
,
getAttributes(Name, String[])
Attributes getAttributes(String name) throws NamingException
getAttributes(Name)
。
name
- 物件名,通過該物件名檢索屬性
name
關聯的屬性集
NamingException
- 如果遇到命名異常Attributes getAttributes(Name name, String[] attrIds) throws NamingException
如果物件沒有指定的屬性,則目錄將忽略不存在的屬性,並返回那些物件所具有的請求屬性。
目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但不允許返回任意的、無關的屬性。
另請參閱類別描述中的操作屬性。
name
- 物件名,通過該物件名檢索屬性attrIds
- 要檢索的屬性的標識符。null 指示應該檢索所有屬性;空陣列指示不應檢索任何屬性。
NamingException
- 如果遇到命名異常Attributes getAttributes(String name, String[] attrIds) throws NamingException
getAttributes(Name, String[])
。
name
- 物件名,通過該物件名檢索屬性attrIds
- 要檢索的屬性的標識符。null 指示應該檢索所有屬性;空陣列指示不應檢索任何屬性。
NamingException
- 如果遇到命名異常void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException
name
- 屬性將被更新的物件的名稱mod_op
- 修改操作,為以下操作之一:ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
和 REMOVE_ATTRIBUTE
。attrs
- 要用於修改的屬性;不能為 null
AttributeModificationException
- 如果不能成功完成修改
NamingException
- 如果遇到命名異常modifyAttributes(Name, ModificationItem[])
void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException
modifyAttributes(Name, int, Attributes)
。
name
- 屬性將被更新的物件的名稱mod_op
- 修改操作,為以下操作之一:ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
和 REMOVE_ATTRIBUTE
。attrs
- 要用於修改的屬性;不能為 null
AttributeModificationException
- 如果不能成功完成修改
NamingException
- 如果遇到命名異常void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException
name
- 屬性將被更新的物件的名稱mods
- 要執行的修改的有序序列;不能為 null
AttributeModificationException
- 如果不能成功完成修改
NamingException
- 如果遇到命名異常modifyAttributes(Name, int, Attributes)
,
ModificationItem
void modifyAttributes(String name, ModificationItem[] mods) throws NamingException
modifyAttributes(Name, ModificationItem[])
。
name
- 屬性將被更新的物件的名稱mods
- 要執行的修改的有序序列;不能為 null
AttributeModificationException
- 如果不能成功完成修改
NamingException
- 如果遇到命名異常void bind(Name name, Object obj, Attributes attrs) throws NamingException
name
- 要綁定的名稱;不能為空obj
- 要綁定的物件;可能為 nullattrs
- 要與綁定關聯的屬性
NameAlreadyBoundException
- 如果已經綁定了 name
InvalidAttributesException
- 如果沒有提供綁定的某些“強制”屬性
NamingException
- 如果遇到命名異常Context.bind(Name, Object)
,
rebind(Name, Object, Attributes)
void bind(String name, Object obj, Attributes attrs) throws NamingException
bind(Name, Object, Attributes)
。
name
- 要綁定的名稱;不能為空obj
- 要綁定的物件;可能為 nullattrs
- 要與綁定關聯的屬性
NameAlreadyBoundException
- 如果已經綁定了 name
InvalidAttributesException
- 如果沒有提供綁定的某些“強制”屬性
NamingException
- 如果遇到命名異常void rebind(Name name, Object obj, Attributes attrs) throws NamingException
name
- 要綁定的名稱;不能為空obj
- 要綁定的物件;可能為 nullattrs
- 要與綁定關聯的屬性
InvalidAttributesException
- 如果沒有提供綁定的某些“強制”屬性
NamingException
- 如果遇到命名異常Context.bind(Name, Object)
,
bind(Name, Object, Attributes)
void rebind(String name, Object obj, Attributes attrs) throws NamingException
rebind(Name, Object, Attributes)
。
name
- 要綁定的名稱;不能為空obj
- 要綁定的物件;可能為 nullattrs
- 要與綁定關聯的屬性
InvalidAttributesException
- 如果沒有提供綁定的某些“強制”屬性
NamingException
- 如果遇到命名異常DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
name
- 要創建的上下文的名稱;不能為空attrs
- 要與新創建的上下文關聯的屬性
NameAlreadyBoundException
- 如果已經綁定了名稱
InvalidAttributesException
- 如果 attrs
不包含創建所需要的所有強制屬性
NamingException
- 如果遇到命名異常Context.createSubcontext(Name)
DirContext createSubcontext(String name, Attributes attrs) throws NamingException
createSubcontext(Name, Attributes)
。
name
- 要創建的上下文的名稱;不能為空attrs
- 要與新創建的上下文關聯的屬性
NameAlreadyBoundException
- 如果已經綁定了名稱
InvalidAttributesException
- 如果 attrs
不包含創建所需要的所有強制屬性
NamingException
- 如果遇到命名異常DirContext getSchema(Name name) throws NamingException
此方法返回可用於命名物件的網要資訊階層樹的根。多個命名物件(或者甚至整個目錄)可以共享同一個網要。
諸如網要階層樹的結構和內容、修改網要階層樹內容的權限以及對目錄進行這種修改的效果等問題都與基礎目錄有關。
name
- 網要要被檢索的物件的名稱
OperationNotSupportedException
- 如果不支持網要
NamingException
- 如果遇到命名異常DirContext getSchema(String name) throws NamingException
getSchema(Name)
。
name
- 網要要被檢索的物件的名稱
OperationNotSupportedException
- 如果不支持網要
NamingException
- 如果遇到命名異常DirContext getSchemaClassDefinition(Name name) throws NamingException
目錄網要中存在的一種資訊是類別定義。“物件類別”定義指定物件的型別 和物件必須/可以具有的屬性(強制和可選)。注意,這裡參考的術語“物件類別”是指目錄中而不是 Java 中的物件類別。例如,如果命名物件是 "Person" 類別的目錄物件,則 getSchemaClassDefinition() 將返回 DirContext,它表示 "Person" 的(目錄)物件類別定義。
可以從物件類別定義檢索的資訊與目錄有關。
在 JNDI 1.2 之前,此方法返回表示命名物件類別定義的單個網要物件。從 JNDI 1.2 開始,此方法返回包含所有命名物件類別定義的 DirContext。
name
- 物件類別定義要被檢索的物件的名稱
OperationNotSupportedException
- 如果不支持網要
NamingException
- 如果遇到命名異常DirContext getSchemaClassDefinition(String name) throws NamingException
getSchemaClassDefinition(Name)
。
name
- 物件類別定義要被檢索的物件的名稱
OperationNotSupportedException
- 如果不支持網要
NamingException
- 如果遇到命名異常NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
SearchControls
設置進行搜尋。
對於要選擇的物件,matchingAttributes
中的每個屬性都必須與物件的某個屬性比對。如果 matchingAttributes
為空或 null,則返回目標上下文中的所有物件。
如果 matchingAttributes
中的屬性 A1 和物件的屬性 A2 具有相同的標識符並且 A1 中的每個值都與 A2 的某個值相等,則認為 A1 與 A2 比對。這意味著值的順序無關緊要,並且 A2 可以包含 A1 沒有的“額外”值,這些值對比較沒有影響。它還意味著如果 A1 沒有值,則測試是否比對等效於測試是否存在具有相同標識符的屬性 A2。
在比較屬性值時使用的“相等性”的精確定義由基礎目錄服務定義。例如,它可能使用 Object.equals
方法或某種網要來指定不同的相等性操作。對於基於操作而非相等性的比對(如子字元串比較),需要使用帶有過濾器參數的 search
方法。
當對此 DirContext 作出更改時,對以前調用此方法返回的列舉的影響是不確定的。
如果物件沒有指定的屬性,則目錄將忽略不存在的屬性,並返回那些物件所具有的請求屬性。
目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但不允許返回任意的、無關的屬性。
另請參閱類別描述中的操作屬性。
name
- 要搜尋的上下文的名稱matchingAttributes
- 要搜尋的屬性。如果為空或 null,則返回目標上下文中的所有物件。attributesToReturn
- 要返回的屬性。null 指示要返回所有屬性;空陣列指示不返回任何屬性。
attributesToReturn
所標識的屬性和相應物件的名稱,該名稱相對於 name
指定的上下文命名。
NamingException
- 如果遇到命名異常SearchControls
,
SearchResult
,
search(Name, String, Object[], SearchControls)
NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
search(Name, Attributes, String[])
。
name
- 要搜尋的上下文的名稱matchingAttributes
- 要搜尋的屬性attributesToReturn
- 要返回的屬性
NamingException
- 如果遇到命名異常NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException
search(Name, Attributes, String[])
提供 null 作為 atributesToReturn 參數。search(Name, Attributes, String[])
。
name
- 要搜尋的上下文的名稱matchingAttributes
- 要搜尋的屬性
NamingException
- 如果遇到命名異常search(Name, Attributes, String[])
NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException
search(Name, Attributes)
。
name
- 要搜尋的上下文的名稱matchingAttributes
- 要搜尋的屬性
NamingException
- 如果遇到命名異常NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException
filter
的格式和解釋遵從 RFC 2254,其中對 RFC 中提及的 attr
和 value
解釋如下。
attr
為屬性的標識符。
value
為屬性值的字元串表示形式。如何將此字元串表示形式轉換為屬性值是特定於目錄的。
例如,對於宣告 "someCount=127",attr
為 "someCount",value
為 "127"。提供者根據屬性 ID ("someCount")(可能還有其網要)確定屬性值是否為整數。然後它適當地解析字元串 "127"。
應該使用適當的 Java (Unicode) 字元表示過濾器字元串中的所有非 ASCII 字元,不能將其編碼為 UTF-8 八位組。或者,也可以使用 RFC 2254 中描述的“十六進制編碼的反斜槓(backslash-hexcode)”符號。
如果目錄不支持部分或全部其屬性的字元串表示形式,則可以使用過濾器參數的形式為 Object 的 search
方法。然後,這種目錄的服務提供者會將過濾器參數轉換為其特定於服務的表示形式,以供過濾器計算使用。請參閱 search(Name, String, Object[], SearchControls)
。
RFC 2254 為過濾器定義了某些操作符,包括子字元串比對、相等性、近似比對、大於、小於。這些操作符被映射到基礎目錄中具有相應語義的操作符。例如,對於相等操作符,假定目錄具有比對的規則來定義過濾器中屬性的“相等性”。則此規則將用於檢查濾器中指定的屬性與目錄中的物件屬性的相等性。類似地,如果目錄具有用於排序的比對規則,則此規則將用於進行“大於”和“小於”比較。
並不是 RFC 2254 中定義的所有操作符都可用於所有屬性。當操作符不可用時,拋出異常 InvalidSearchFilterException
。
結果返回在 SearchResult 的列舉中。每個 SearchResult 都包含物件名和關於該物件的其他資訊(請參閱 SearchResult)。名稱或者相對於搜尋的目標上下文(由 name
參數命名),或者為 URL 字元串。如果目標上下文包括在列舉(這可能發生在 cons
指定 SearchControls.OBJECT_SCOPE
或 SearchControls.SUBSTREE_SCOPE
的搜尋範圍時)中,則其名稱為空字元串。SearchResult 還可能包含比對物件的屬性,如果 cons 參數指定返回該屬性的話。
如果物件不具有請求的屬性,則忽略不存在的屬性。僅返回那些物件具有的請求的屬性。
目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但是不允許返回任意的、無關的屬性。
另請參閱類別描述中的操作屬性。
name
- 要搜尋的上下文或物件的名稱filter
- 要用於搜尋的過濾器表達式;不能為 nullcons
- 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
InvalidSearchFilterException
- 如果基礎目錄不支持或者不理解指定的搜尋過濾器
InvalidSearchControlsException
- 如果搜尋控制元件包含無效的設置
NamingException
- 如果遇到命名異常search(Name, String, Object[], SearchControls)
,
SearchControls
,
SearchResult
NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons) throws NamingException
search(Name, String, SearchControls)
。
name
- 要搜尋的上下文或物件的名稱filter
- 要用於搜尋的過濾器表達式;不能為 nullcons
- 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
InvalidSearchFilterException
- 如果基礎目錄不支持或者不理解指定的搜尋過濾器
InvalidSearchControlsException
- 如果搜尋控制元件包含無效的設置
NamingException
- 如果遇到命名異常NamingEnumeration<SearchResult> search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
filterExpr
的解釋基於 RFC 2254。它可能還包含形式為 {i}
(其中 i
為整數)的變數,這些變數參考 filterArgs
陣列中的物件。否則,filterExpr
的解釋等同於對方法 search(Name, String, SearchControls)
的 filter
參數的解釋。
當變數 {i}
出現在搜尋過濾器中時,它指示要在該位置使用過濾器參數 filterArgs[i]
。只要產生的 attr、value 或 matchingrule 在 RFC 2254 第 4 節的過濾器語法中出現,這些變數就可以使用。當使用字元串值的過濾器參數替換變數時,過濾器被解釋為好像給定了取代變數的字元串,同時根據 RFC 2254 的規則轉義了過濾器中具有特殊意義的所有字元(如 '*'
)。
對於部分或全部屬性不使用的字元串表示形式的目錄,對應於屬性值的過濾器參數可能是 String 以外的型別。例如,支持非結構化二進制值屬性的目錄應該接受位元組陣列作為過濾器參數。任何其他型別的過濾器參數的解釋(如果有)由該目錄的服務提供者確定,該服務提供者將過濾器操作映射到基礎目錄中具有相應語義的操作上。
此方法返回結果的列舉。每個列舉元素都包含物件名和關於該物件的其他資訊(請參閱 SearchResult
)。名稱或者相對於搜尋的目標上下文(由 name
參數命名),或者為 URL 字元串。如果目標上下文包括在列舉(這可能發生在 cons
指定 SearchControls.OBJECT_SCOPE
或 SearchControls.SUBSTREE_SCOPE
的搜尋範圍時)中,則其名稱為空字元串。
SearchResult 還可能包含比對物件的屬性,如果 cons 參數指定返回該屬性的話。
如果物件不具有請求的屬性,則忽略不存在的屬性。僅返回那些物件具有的請求的屬性。
目錄返回的屬性可能多於請求(請參閱類別描述中的屬性型別名稱),但是不允許返回任意的、無關的屬性。
如果為此方法提供帶有無效變數替換項的搜尋過濾器,則結果是不確定的。當對此 DirContext 作出更改時,對以前調用此方法返回的列舉的影響是不確定的。
另請參閱類別描述中的操作屬性。
name
- 要搜尋的上下文或物件的名稱filterExpr
- 要用於搜尋的過濾器表達式。表達式可能包含形式為 "{i}
"(其中 i
為非負整數)的變數。不能為 null。filterArgs
- 要替換 filterExpr
中的變數的參數所組成的陣列。filterArgs[i]
的值將取代每個出現的 "{i}
"。如果為 null,則等效於空陣列。cons
- 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
ArrayIndexOutOfBoundsException
- 如果 filterExpr 套件含 {i}
表達式,其中 i
在陣列 filterArgs
的界限之外
InvalidSearchControlsException
- 如果 cons 套件含無效設置
InvalidSearchFilterException
- 如果帶有 filterArgs 的 filterExpr 表示無效的搜尋過濾器
NamingException
- 如果遇到命名異常search(Name, Attributes, String[])
,
MessageFormat
NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
search(Name, String, Object[], SearchControls)
。
name
- 要搜尋的上下文或物件的名稱。filterExpr
- 要用於搜尋的過濾器表達式。表達式可能包含形式為 "{i}
"(其中 i
為非負整數)的變數。不能為 null。filterArgs
- 要替換 filterExpr
中的變數的參數所組成的陣列。filterArgs[i]
的值將取代每個出現的 "{i}
"。如果為 null,則等效於空陣列。cons
- 控制搜尋的搜尋控制元件。如果為 null,則使用預設的搜尋控制元件(等效於 (new SearchControls()))。
ArrayIndexOutOfBoundsException
- 如果 filterExpr 套件含 {i}
表達式,其中 i
在陣列 filterArgs
的界限之外
InvalidSearchControlsException
- 如果 cons 套件含無效設置
InvalidSearchFilterException
- 如果帶有 filterArgs 的 filterExpr 表示無效的搜尋過濾器
NamingException
- 如果遇到命名異常
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。