public class ObjectName extends Object implements Comparable<ObjectName>, QueryExp
代表一个MBean对象的名字,或一个模式,可以几个MBeans名称匹配。这个类的实例是不可变的。
这个类的一个实例可以用来表示:
一个对象名称由两部分组成,一个域和一个关键属性。
域是一个字符串不包含字符冒号(:
)。这是建议的域不包含字符串“//
”,这是保留给将来使用。
如果域包括至少一个发生的通配符星号(*
)或问号(?
),然后对象名称是一个模式。星号可以匹配任何序列的零个或多个字符,而马克匹配任何单个字符的问题。
如果域是空的,它会在一定的语境中被默认域的MBean服务器中的对象使用。
关键特性是一个键无序集合和关联值。
每个按键都是一个非空的字符串不包含任何字符的逗号(,
),等于(=
)、结肠癌、星号或问号。同样的钥匙不可能在一个给定的对象会发生两次。
与密钥相关的每个值是一个字符串,或者是非上市或引用。
一个不带引号的值可能为空的字符串不能包含任何字符逗号,等于,结肠癌,或引用。
如果不带引号的值包含至少一个发生的通配符星号或问号,然后对象名称是财产价值模式。星号可以匹配任何序列的零个或多个字符,而马克匹配任何单个字符的问题。
一个引用的值由一个引用("
),其次是一个可能为空字符串,紧随其后的是另一句。字符的字符串中,反斜杠(\
)有特殊的意义。它必须遵循以下一个字符:
一句话可能不会出现在一个引用值除后立即连续的反斜杠奇数。
周边有引用价值的报价,并在任何反斜线,被认为是部分的价值。
如果引用的值包含至少出现一次的字符星号或问号,他们之前没有一个反斜杠,然后他们作为通配符和对象名称是财产价值模式。星号可以匹配任何序列的零个或多个字符,而马克匹配任何单个字符的问题。
一个对象可以是一个属性列表模式。在这种情况下,它可能有零个或多个键和相关的值。它匹配一个nonpattern对象的域匹配,包含相同的键和对应的值,以及其他可能的键和值。
一个对象是一个物业价值模式时,至少一个其引用或非上市的关键属性值包含通配符星号或问号如上。在这种情况下,它有一个或多个键和对应的值,在含有通配符的值的至少一个。它匹配一个nonpattern对象的域匹配具有相同键的值相匹配;如果房产价值模式也是一个属性列表模式则nonpattern对象可以包含其他的键和值。
一个对象是一个物业的模式如果不是属性列表模式或财产价值模式或两者。
一个对象是一个模式,如果域包含一个通配符或如果对象是一个物业模式。
如果一个对象不是一个模式,它必须包含相关的值至少有一个关键的。
对象模式的例子:
*:type=Foo,name=Bar
匹配在任何领域,其确切的组键的名字是type=Foo,name=Bar
。d:type=Foo,name=Bar,*
匹配域中的d
,有钥匙type=Foo,name=Bar
加零个或多个其他键名字。*:type=Foo,name=Bar,*
匹配在任何领域,有钥匙type=Foo,name=Bar
加零个或多个其他键名字。d:type=F?o,name=Bar
将匹配如d:type=Foo,name=Bar
和d:type=Fro,name=Bar
。d:type=F*o,name=Bar
将匹配如d:type=Fo,name=Bar
和d:type=Frodo,name=Bar
。d:type=Foo,name="B*"
将匹配如d:type=Foo,name="Bling"
。通配符是认可甚至内部的引号,就像其他特殊字符可以逃脱\
。一个对象可以写为一个为以下元素的字符串:
:
)。作为一个字符串的一个键属性列表是一个逗号分隔的元素列表。每个元素是一个星号或关键特性。主要特性包括一个密钥,一个等于(=
),以及相关的价值。
最多一元一个关键属性列表可能星号。如果关键属性列表包含一个星号元,objectName是属性列表模式。
空间在一个字符串代表一个对象没有特殊的意义。例如,字符串:
域:KEY1 = value1,value2 KEY2 =代表两键的对象。每个键的名称包含六个字符,其中第一个和最后一个都是空格。价值的关键
" key1 "
也开始和结束与空间相关。
除了对文字阐明了上述限制,任何部分的对象可能包含一个换行符('\n'
),无论领域,重点,或价值,是否引用或非上市。换行符可以表示在引用值与序列\n
。
规则上的特殊字符和报价申请无论使用哪个构造函数进行对象。
为了避免不同厂商提供的MBean之间的碰撞,一个有用的公约开始域名与组织指定MBeans反向DNS名称,后跟一个句点和一个字符串的解释是由组织确定。例如,指定的example.com
MBeans会等领域的com.example.MyDomain
。这是本质上相同的公约作为java语言的软件包名称。
这个班的serialVersionUID是1081892073854801359L
。
Modifier and Type | Field and Description |
---|---|
static ObjectName |
WILDCARD
定义了通配符“*:*”对象。
|
Constructor and Description |
---|
ObjectName(String name)
从给定字符串中构造一个对象名称。
|
ObjectName(String domain, Hashtable<String,String> table)
构建从哈希表中的几个关键属性的对象的名字。
|
ObjectName(String domain, String key, String value)
用一个关键属性构造一个对象名称。
|
Modifier and Type | Method and Description |
---|---|
boolean |
apply(ObjectName name)
测试是否这个对象,它可以是一个模式,与另一个对象。
|
int |
compareTo(ObjectName name)
比较两个对象实例。
|
boolean |
equals(Object object)
将当前对象名称与另一个对象名称进行比较。
|
String |
getCanonicalKeyPropertyListString()
返回键属性列表的字符串表示形式,其中键属性按词法顺序进行排序。
|
String |
getCanonicalName()
返回名称的规范形式;也就是说,一个字符串表示的属性在词法顺序中进行排序。
|
String |
getDomain()
返回域部分。
|
static ObjectName |
getInstance(ObjectName name)
返回一个实例对象可以在任何地方使用给定的对象可以使用。
|
static ObjectName |
getInstance(String name)
返回对象的一个实例,可以使用在任何地方获得
new ObjectName(name) 对象可以使用。
|
static ObjectName |
getInstance(String domain, Hashtable<String,String> table)
返回对象的一个实例,可以使用在任何地方获得
new ObjectName(domain, table) 对象可以使用。
|
static ObjectName |
getInstance(String domain, String key, String value)
返回对象的一个实例,可以使用在任何地方获得
new ObjectName(domain, key, value) 对象可以使用。
|
String |
getKeyProperty(String property)
在一个关键属性中获得与密钥关联的值。
|
Hashtable<String,String> |
getKeyPropertyList()
作为一个Hashtable回报的关键特性。
|
String |
getKeyPropertyListString()
返回在创建时指定的键属性列表的字符串表示形式。
|
int |
hashCode()
返回此对象名称的哈希代码。
|
boolean |
isDomainPattern()
检查对象名称是否是域上的一个模式的一部分。
|
boolean |
isPattern()
检查对象名称是否是一个模式。
|
boolean |
isPropertyListPattern()
检查对象名称是否是关键属性列表上的模式。
|
boolean |
isPropertyPattern()
检查对象名称是否是关键属性上的图案。
|
boolean |
isPropertyValuePattern()
检查对象名称是否是至少一个关键属性的值的图案的图案。
|
boolean |
isPropertyValuePattern(String property)
检查一个键属性中是否与键关联的值是否为模式。
|
static String |
quote(String s)
返回给定字符串的引用形式,适合在一个对象包。
|
void |
setMBeanServer(MBeanServer mbs)
集的MBean服务器的查询被执行。
|
String |
toString()
返回对象名称的字符串表示形式。
|
static String |
unquote(String q)
返回给定字符串的引号的形式。
|
public static final ObjectName WILDCARD
public ObjectName(String name) throws MalformedObjectNameException
name
-对象名称的字符串表示形式。
MalformedObjectNameException
-作为一个参数没有正确的格式通过字符串。
NullPointerException
-
name
参数为空。
public ObjectName(String domain, String key, String value) throws MalformedObjectNameException
domain
-对象名称的域部分。
key
在对象名称的关键属性的属性。
value
在对象名称的关键属性的值。
MalformedObjectNameException
-
domain
,
key
,或
value
包含非法字符,或
value
不按照举证规则。
NullPointerException
-一个参数为空。
public ObjectName(String domain, Hashtable<String,String> table) throws MalformedObjectNameException
domain
-对象名称的域部分。
table
-包含一个或多个关键属性的哈希表。在表中的每个条目的键是对象名称中的一个键属性的键。在表中的相关联的值是对象名称中的关联的值。
MalformedObjectNameException
-
domain
包含非法字符,或一个键或值的
table
包含非法字符,或一个价值观的
table
不按照举证规则。
NullPointerException
-一个参数为空。
public static ObjectName getInstance(String name) throws MalformedObjectNameException, NullPointerException
返回对象的一个实例,可以使用在任何地方获得new ObjectName(name)
对象可以使用。返回的对象可能是一个子类的对象。调用此方法两次使用相同的参数可以返回相同的对象或两个相等的,但不相同的对象。
name
-对象名称的字符串表示形式。
MalformedObjectNameException
-作为一个参数没有正确的格式通过字符串。
NullPointerException
-
name
参数为空。
public static ObjectName getInstance(String domain, String key, String value) throws MalformedObjectNameException
返回对象的一个实例,可以使用在任何地方获得new ObjectName(domain, key, value)
对象可以使用。返回的对象可能是一个子类的对象。调用此方法两次使用相同的参数可以返回相同的对象或两个相等的,但不相同的对象。
domain
-对象名称的域部分。
key
在对象名称的关键属性的属性。
value
在对象名称的关键属性的值。
MalformedObjectNameException
-
domain
,
key
,或
value
包含非法字符,或
value
不按照举证规则。
NullPointerException
-一个参数为空。
public static ObjectName getInstance(String domain, Hashtable<String,String> table) throws MalformedObjectNameException
返回对象的一个实例,可以使用在任何地方获得new ObjectName(domain, table)
对象可以使用。返回的对象可能是一个子类的对象。调用此方法两次使用相同的参数可以返回相同的对象或两个相等的,但不相同的对象。
domain
-对象名称的域部分。
table
-包含一个或多个关键属性的哈希表。在表中的每个条目的键是对象名称中的一个键属性的键。在表中的相关联的值是对象名称中的关联的值。
MalformedObjectNameException
-
domain
包含非法字符,或一个键或值的
table
包含非法字符,或一个价值观的
table
不按照举证规则。
NullPointerException
-一个参数为空。
public static ObjectName getInstance(ObjectName name)
返回一个实例对象可以在任何地方使用给定的对象可以使用。返回的对象可能是一个子类的对象。如果name
是对对象的子类,它不能保证返回的对象是同一类的。
返回的值可能不相同,name
。调用此方法两次使用相同的参数可以返回相同的对象或两个相等的,但不相同的对象。
由于ObjectName是一成不变的,它通常是不可以复制一个对象的有用。该方法的主要用途是防范一个恶意的调用方可能通过一个实例的子类,令人惊讶的行为敏感的代码。这样的代码可以调用此方法获取一个对象,称没有奇怪的行为。
name
的对象类的一个实例或类
name
尊重对象的语义,然后返回的对象是平等的(虽然不一定是相同的)来
name
。
NullPointerException
-
name
是空的。
public boolean isPattern()
一个对象的名字是一个模式,如果域包含一个通配符或者对象名属性模式。
public boolean isDomainPattern()
public boolean isPropertyPattern()
一个对象名称是一个模式上的关键属性,如果它是一个模式的关键属性列表(例如:“D:K = V”)或属性值(例如:“D:K = *”)或两者(例如:“D”:K = *,*)。
public boolean isPropertyListPattern()
例如,“D:K = V,*”和“D:K = *”是关键的属性列表模式,而“D:K = *”不是。
public boolean isPropertyValuePattern()
例如,“D:K = *”和“D:K = *”是属性值模式,而“D:K = V”,不是。
public boolean isPropertyValuePattern(String property)
property
-其值要检查的属性。
NullPointerException
-如果
property
是空的。
IllegalArgumentException
-如果
property
不是此对象有效的关键属性。
public String getCanonicalName()
返回名称的规范形式;也就是说,一个字符串表示的属性在词法顺序中进行排序。
更准确地说,这个名字的典型形式是一个域的部分字符串,一个冒号(:
),典型的关键属性列表,和一个模式指示。
典型的关键属性列表的字符串作为描述getCanonicalKeyPropertyListString()
相同。
模式指示是:
,*
)为对象,是一个至少有一个关键的属性列表模式。public String getDomain()
public String getKeyProperty(String property)
property
-其值要取得的财产。
NullPointerException
-如果
property
是空的。
public Hashtable<String,String> getKeyPropertyList()
作为一个Hashtable回报的关键特性。返回值是一个哈希表中的每个关键在对象的关键属性列表中的一个关键,每个值是相关的价值。
返回的值可能是不可修改的。如果它是可改变的,改变它对这个对象没有影响。
public String getKeyPropertyListString()
返回在创建时指定的键属性列表的字符串表示形式。如果这个对象与构造函数ObjectName(String)
构造,在返回的字符串中的关键属性将在相同的顺序在构造函数的参数。
public String getCanonicalKeyPropertyListString()
String.compareTo(String)
。
public String toString()
返回对象名称的字符串表示形式。没有指定该字符串的格式,但用户可以期待两objectnames返回相同的字符串,只要他们是平等的。
public boolean equals(Object object)
getCanonicalName()
。
equals
方法重写,继承类
Object
object
-当前对象的名字是可以比较的对象名称。
object
是一个对象的规范格式等于该对象。
Object.hashCode()
,
HashMap
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public static String quote(String s)
返回给定字符串的引用形式,适合在一个对象包。返回值可作为一个对象一个键所关联的值。字符串可以包含任何字符s
。确保适当的引用返回值的对象是合法的。
返回值是一个引号(“”),一个字符序列对应于s
人物,和另一个引用。人物出现在s
不变的返回值除:
s
-被引用的字符串。
NullPointerException
-如果
s
是空的。
public static String unquote(String q)
返回给定字符串的引号的形式。如果q
是quote(s)
返回的字符串,然后unquote(q).equals(s)
。如果没有字符串s
,quote(s).equals(q)
,然后结束(Q)抛出时。
这些规则意味着有一对一的映射之间的上市和非上市的形式。
q
要加引号的字符串。
IllegalArgumentException
-如果
q
不能被
quote(java.lang.String)
方法返回,例如如果没有开始和结束与一个引号(“)。
NullPointerException
-如果
q
是空的。
public boolean apply(ObjectName name)
测试是否这个对象,它可以是一个模式,与另一个对象。如果name
是一个模式,结果是错误的。如果这个对象是一个模式,当且仅当name
匹配模式的结果是真的。如果没有这样的对象也不name
是一个模式,当且仅当这两个objectnames相等的方法和equals(Object)
方法的结果是真的。
apply
接口
QueryExp
name
- MBean的名字比较。
name
匹配对象。
NullPointerException
-如果
name
是空的。
public void setMBeanServer(MBeanServer mbs)
QueryExp
setMBeanServer
接口
QueryExp
mbs
的MBean服务器的查询被执行。
public int compareTo(ObjectName name)
比较两个对象实例。序关系是不完全的,ObjectNames是这样一个objectnames排序列表将出现在那一个人阅读方便订单。
特别是,如果两个对象实例有不同的域,然后他们以域的字典序。键属性列表的顺序仍然是未指定的。
例如,下面的对象实例:
可以订购如下:
compareTo
接口
Comparable<ObjectName>
name
的对象进行比较。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.