public class Query extends Object
构造查询对象约束。
可以使用其queryNames
或queryMBeans
方法查询符合特定条件的MBean的MBean Server。 该QueryExp
参数的方法可以是接口的任何实现QueryExp
,但它通常是最好的获得QueryExp
通过调用这个类的静态方法的价值。 在查询远程MBean服务器时尤其如此:远程MBean服务器中可能不存在QueryExp
接口的自定义实现,但此类中的方法仅返回作为JMX实现的一部分的标准类。
举个例子,假设你想找到所有MBean,其中Enabled
属性为true
和Owner
属性是"Duke"
。 这里是你如何可以构建相应QueryExp
通过方法调用串联起来:
QueryExp query =
Query.and(Query.eq(Query.attr("Enabled"), Query.value(true)),
Query.eq(Query.attr("Owner"), Query.value("Duke")));
Modifier and Type | Field and Description |
---|---|
static int |
DIV
|
static int |
EQ
|
static int |
GE
|
static int |
GT
|
static int |
LE
|
static int |
LT
|
static int |
MINUS
|
static int |
PLUS
|
static int |
TIMES
|
Constructor and Description |
---|
Query()
基本构造函数
|
Modifier and Type | Method and Description |
---|---|
static QueryExp |
and(QueryExp q1, QueryExp q2)
返回一个查询表达式,它是两个其他查询表达式的连接。
|
static QueryExp |
anySubString(AttributeValueExp a, StringValueExp s)
返回一个表示字符串参数匹配约束的查询表达式。
|
static AttributeValueExp |
attr(String name)
返回一个新的属性表达式。
|
static AttributeValueExp |
attr(String className, String name)
返回一个新的限定属性表达式。
|
static QueryExp |
between(ValueExp v1, ValueExp v2, ValueExp v3)
返回一个表示一个值位于两个其他值之间的约束的查询表达式。
|
static AttributeValueExp |
classattr()
返回一个新的类属性表达式,可以在期望使用ValueExp的任何Query调用中使用。
|
static ValueExp |
div(ValueExp value1, ValueExp value2)
返回表示两个数值的商的二进制表达式。
|
static QueryExp |
eq(ValueExp v1, ValueExp v2)
返回一个表示两个值上的等式约束的查询表达式。
|
static QueryExp |
finalSubString(AttributeValueExp a, StringValueExp s)
返回一个表示字符串参数匹配约束的查询表达式。
|
static QueryExp |
geq(ValueExp v1, ValueExp v2)
返回一个在两个值上表示“大于或等于”约束的查询表达式。
|
static QueryExp |
gt(ValueExp v1, ValueExp v2)
返回一个对两个值表示“大于”约束的查询表达式。
|
static QueryExp |
in(ValueExp val, ValueExp[] valueList)
返回一个将值限制为显式列表的表达式。
|
static QueryExp |
initialSubString(AttributeValueExp a, StringValueExp s)
返回一个表示字符串参数匹配约束的查询表达式。
|
static QueryExp |
isInstanceOf(StringValueExp classNameValue)
返回一个表示MBean类继承约束的查询表达式。
|
static QueryExp |
leq(ValueExp v1, ValueExp v2)
返回一个对两个值表示“小于或等于”约束的查询表达式。
|
static QueryExp |
lt(ValueExp v1, ValueExp v2)
返回一个对两个值表示“小于”约束的查询表达式。
|
static QueryExp |
match(AttributeValueExp a, StringValueExp s)
返回一个表示字符串参数匹配约束的查询表达式。
|
static ValueExp |
minus(ValueExp value1, ValueExp value2)
返回表示两个数值之间的差异的二进制表达式。
|
static QueryExp |
not(QueryExp queryExp)
返回一个约束,它是其参数的否定。
|
static QueryExp |
or(QueryExp q1, QueryExp q2)
返回一个查询表达式,它是两个其他查询表达式的分离。
|
static ValueExp |
plus(ValueExp value1, ValueExp value2)
返回表示两个数值之和的二进制表达式,或两个字符串值的并置。
|
static ValueExp |
times(ValueExp value1, ValueExp value2)
返回表示两个数值的乘积的二进制表达式。
|
static ValueExp |
value(boolean val)
返回一个布尔值表达式,可以在任何期望ValueExp的Query调用中使用。
|
static ValueExp |
value(double val)
返回一个数值表达式,可以在任何期望使用ValueExp的Query调用中使用。
|
static ValueExp |
value(float val)
返回一个数值表达式,可以在任何期望使用ValueExp的Query调用中使用。
|
static ValueExp |
value(int val)
返回一个数值表达式,可以在任何期望使用ValueExp的Query调用中使用。
|
static ValueExp |
value(long val)
返回一个数值表达式,可以在任何期望使用ValueExp的Query调用中使用。
|
static ValueExp |
value(Number val)
返回一个数值表达式,可以在任何期望使用ValueExp的Query调用中使用。
|
static StringValueExp |
value(String val)
返回新的字符串表达式。
|
public static final int GT
gt(javax.management.ValueExp, javax.management.ValueExp)
查询的代码。
这主要是对序列化查询形式感兴趣的。
public static final int LT
lt(javax.management.ValueExp, javax.management.ValueExp)
查询的代码。
这主要是对序列化查询形式感兴趣的。
public static final int GE
geq(javax.management.ValueExp, javax.management.ValueExp)
查询的代码。
这主要是对序列化查询形式感兴趣的。
public static final int LE
leq(javax.management.ValueExp, javax.management.ValueExp)
查询的代码。
这主要是对序列化查询形式感兴趣的。
public static final int EQ
eq(javax.management.ValueExp, javax.management.ValueExp)
查询的代码。
这主要是对序列化查询形式感兴趣的。
public static final int PLUS
plus(javax.management.ValueExp, javax.management.ValueExp)
表达式的代码。
这主要是对序列化查询形式感兴趣的。
public static final int MINUS
minus(javax.management.ValueExp, javax.management.ValueExp)
表达式的代码。
这主要是对序列化查询形式感兴趣的。
public static final int TIMES
times(javax.management.ValueExp, javax.management.ValueExp)
表达式的代码。
这主要是对序列化查询形式感兴趣的。
public static final int DIV
div(javax.management.ValueExp, javax.management.ValueExp)
表达式的代码。
这主要是对序列化查询形式感兴趣的。
public static QueryExp and(QueryExp q1, QueryExp q2)
q1
- 查询表达式。
q2
- 另一个查询表达式。
public static QueryExp or(QueryExp q1, QueryExp q2)
q1
- 查询表达式。
q2
- 另一个查询表达式。
public static QueryExp gt(ValueExp v1, ValueExp v2)
v1
- 值表达式。
v2
- 另一个值表达式。
relOp
等于GT
。
public static QueryExp geq(ValueExp v1, ValueExp v2)
v1
- 值表达式。
v2
- 另一个值表达式。
relOp
等于GE
。
public static QueryExp leq(ValueExp v1, ValueExp v2)
v1
- 值表达式。
v2
- 另一个值表达式。
relOp
等于LE
。
public static QueryExp lt(ValueExp v1, ValueExp v2)
v1
- 值表达式。
v2
- 另一个值表达式。
relOp
等于LT
。
public static QueryExp eq(ValueExp v1, ValueExp v2)
v1
- 值表达式。
v2
- 另一个值表达式。
relOp
等于EQ
。
public static QueryExp between(ValueExp v1, ValueExp v2, ValueExp v3)
v1
- “v2”和v3之间的值表达式。
v2
- 表示约束边界的值表达式。
v3
- 表示约束边界的值表达式。
public static QueryExp match(AttributeValueExp a, StringValueExp s)
?
”,“ *
”,“ [
”,其中每一个可以用“ \
”进行转义;
字符类可以使用“ !
”作为否定,“ -
”表示范围。
( *
任意字符序列, ?
单个任意字符, [...]
用于字符序列)。
例如: a*b?c
将匹配一个字符串,以字符a a
,后跟任意数量的字符,后跟b
,任何单个字符,以及一个c
。
a
- 属性表达式
s
- 表示匹配约束的字符串值表达式
public static AttributeValueExp attr(String name)
返回一个新的属性表达式。 有关表达式的语义的详细描述,请参阅AttributeValueExp
。
对于给定的评估这个表达式objectName
包括执行MBeanServer.getAttribute(objectName, name)
。
name
- 属性的名称。
name
。
public static AttributeValueExp attr(String className, String name)
返回一个新的限定属性表达式。
评估给定objectName的该objectName
包括执行MBeanServer.getObjectInstance(objectName)
和MBeanServer.getAttribute(objectName, name)
。
className
- 拥有该属性的类的名称。
name
- 属性的名称。
public static AttributeValueExp classattr()
返回一个新的类属性表达式,可以在期望使用ValueExp的任何Query调用中使用。
对于给定的评估这个表达式objectName
包括执行MBeanServer.getObjectInstance(objectName)
。
public static QueryExp not(QueryExp queryExp)
queryExp
- 否定的约束。
public static QueryExp in(ValueExp val, ValueExp[] valueList)
val
- 要约束的值。
valueList
-
valueList
数组。
public static StringValueExp value(String val)
val
- 字符串值。
public static ValueExp value(Number val)
val
- 数字的一个实例。
public static ValueExp value(int val)
val
- 一个int值。
public static ValueExp value(long val)
val
- 一个长的价值。
public static ValueExp value(float val)
val
- 浮点值。
public static ValueExp value(double val)
val
- 一个双重值。
public static ValueExp value(boolean val)
val
- 一个布尔值。
public static ValueExp plus(ValueExp value1, ValueExp value2)
value1
- 第一个“+”操作数。
value2
- 第二个“+”操作数。
op
等于PLUS
。
public static ValueExp times(ValueExp value1, ValueExp value2)
value1
- 第一个'*'操作数。
value2
- 第二个'*'操作数。
op
等于TIMES
。
public static ValueExp minus(ValueExp value1, ValueExp value2)
value1
- 第一个“ - ”操作数。
value2
- 第二个“ - ”操作数。
op
等于MINUS
。
public static ValueExp div(ValueExp value1, ValueExp value2)
value1
- 第一个“/”操作数。
value2
- 第二个“/”操作数。
op
等于DIV
。
public static QueryExp initialSubString(AttributeValueExp a, StringValueExp s)
a
- 属性表达式。
s
- 表示字符串值开头的字符串值表达式。
public static QueryExp anySubString(AttributeValueExp a, StringValueExp s)
a
- 属性表达式。
s
- 表示子串的字符串值表达式。
public static QueryExp finalSubString(AttributeValueExp a, StringValueExp s)
a
- 属性表达式。
s
- 表示字符串值结尾的字符串值表达式。
public static QueryExp isInstanceOf(StringValueExp classNameValue)
示例:要查找NotificationBroadcaster
的实例的 MBean,请使用Query.isInstanceOf(Query.value(NotificationBroadcaster.class.getName()))
。
对于给定的评估这个表达式objectName
包括执行MBeanServer.isInstanceOf(objectName, ((StringValueExp)classNameValue.apply(objectName)).getValue()
。
classNameValue
- StringValueExp
返回所选MBean应该是实例的类的名称。