Module java.management
Package javax.management

Class Query

java.lang.Object
javax.management.Query

public class Query extends Object

构造查询对象约束。

可以使用其queryNamesqueryMBeans方法查询满足特定条件的MBeans。方法的QueryExp参数可以是接口QueryExp的任何实现,但通常最好通过调用此类中的静态方法来获取QueryExp值。当查询远程MBean服务器时尤其如此:自定义的QueryExp接口实现可能不存在于远程MBean服务器中,但此类中的方法仅返回作为JMX实现的一部分的标准类。

例如,假设您想要查找所有Enabled属性为trueOwner属性为"Duke"的MBeans。以下是如何通过链接方法调用构造适当的QueryExp的示例:

 QueryExp query =
     Query.and(Query.eq(Query.attr("Enabled"), Query.value(true)),
               Query.eq(Query.attr("Owner"), Query.value("Duke")));
 
自版本:
1.5
  • Field Details

    • GT

      public static final int GT
      代表gt(javax.management.ValueExp, javax.management.ValueExp)查询的代码。这主要与查询的序列化形式有关。
      参见:
    • LT

      public static final int LT
      代表lt(javax.management.ValueExp, javax.management.ValueExp)查询的代码。这主要与查询的序列化形式有关。
      参见:
    • GE

      public static final int GE
      代表geq(javax.management.ValueExp, javax.management.ValueExp)查询的代码。这主要与查询的序列化形式有关。
      参见:
    • LE

      public static final int LE
      代表leq(javax.management.ValueExp, javax.management.ValueExp)查询的代码。这主要与查询的序列化形式有关。
      参见:
    • EQ

      public static final int EQ
      代表eq(javax.management.ValueExp, javax.management.ValueExp)查询的代码。这主要与查询的序列化形式有关。
      参见:
    • PLUS

      public static final int PLUS
      代表plus(javax.management.ValueExp, javax.management.ValueExp)表达式的代码。这主要与查询的序列化形式有关。
      参见:
    • MINUS

      public static final int MINUS
      代表minus(javax.management.ValueExp, javax.management.ValueExp)表达式的代码。这主要与查询的序列化形式有关。
      参见:
    • TIMES

      public static final int TIMES
      代表times(javax.management.ValueExp, javax.management.ValueExp)表达式的代码。这主要与查询的序列化形式有关。
      参见:
    • DIV

      public static final int DIV
      代表div(javax.management.ValueExp, javax.management.ValueExp)表达式的代码。这主要与查询的序列化形式有关。
      参见:
  • Constructor Details

    • Query

      public Query()
      基本构造函数。
  • Method Details

    • and

      public static QueryExp and(QueryExp q1, QueryExp q2)
      返回两个其他查询表达式的合取的查询表达式。
      参数:
      q1 - 一个查询表达式。
      q2 - 另一个查询表达式。
      返回:
      两个参数的合取。返回的对象将被序列化为非公共类的实例javax.management.AndQueryExp
    • or

      public static QueryExp or(QueryExp q1, QueryExp q2)
      返回两个其他查询表达式的析取的查询表达式。
      参数:
      q1 - 查询表达式。
      q2 - 另一个查询表达式。
      返回:
      两个参数的析取。返回的对象将被序列化为非公共类的实例 javax.management.OrQueryExp
    • gt

      public static QueryExp gt(ValueExp v1, ValueExp v2)
      返回一个表示两个值之间“大于”约束的查询表达式。
      参数:
      v1 - 一个值表达式。
      v2 - 另一个值表达式。
      返回:
      参数之间的“大于”约束。返回的对象将被序列化为非公共类的实例 javax.management.BinaryRelQueryExp,其中 relOp 等于 GT
    • geq

      public static QueryExp geq(ValueExp v1, ValueExp v2)
      返回一个表示两个值之间“大于或等于”约束的查询表达式。
      参数:
      v1 - 一个值表达式。
      v2 - 另一个值表达式。
      返回:
      参数之间的“大于或等于”约束。返回的对象将被序列化为非公共类的实例 javax.management.BinaryRelQueryExp,其中 relOp 等于 GE
    • leq

      public static QueryExp leq(ValueExp v1, ValueExp v2)
      返回一个表示两个值之间“小于或等于”约束的查询表达式。
      参数:
      v1 - 一个值表达式。
      v2 - 另一个值表达式。
      返回:
      参数之间的“小于或等于”约束。返回的对象将被序列化为非公共类的实例 javax.management.BinaryRelQueryExp,其中 relOp 等于 LE
    • lt

      public static QueryExp lt(ValueExp v1, ValueExp v2)
      返回一个表示两个值之间“小于”约束的查询表达式。
      参数:
      v1 - 一个值表达式。
      v2 - 另一个值表达式。
      返回:
      参数之间的“小于”约束。返回的对象将被序列化为非公共类的实例 javax.management.BinaryRelQueryExp,其中 relOp 等于 LT
    • eq

      public static QueryExp eq(ValueExp v1, ValueExp v2)
      返回一个表示两个值之间相等约束的查询表达式。
      参数:
      v1 - 一个值表达式。
      v2 - 另一个值表达式。
      返回:
      参数之间的“等于”约束。返回的对象将被序列化为非公共类的实例 javax.management.BinaryRelQueryExp,其中 relOp 等于 EQ
    • between

      public static QueryExp between(ValueExp v1, ValueExp v2, ValueExp v3)
      返回一个表示一个值位于另外两个值之间的约束的查询表达式。
      参数:
      v1 - 一个值表达式,位于 v2 和 v3 之间。
      v2 - 表示约束边界的值表达式。
      v3 - 表示约束边界的值表达式。
      返回:
      v1 位于 v2 和 v3 之间的约束。返回的对象将被序列化为非公共类的实例 javax.management.BetweenQueryExp
    • match

      public static QueryExp match(AttributeValueExp a, StringValueExp s)
      返回一个表示字符串参数上匹配约束的查询表达式。匹配语法与文件 globbing 一致:支持 "?", "*", "[", 每个都可以用 "\" 转义;字符类可以使用 "!" 进行否定和 "-" 进行范围。 (* 代表任意字符序列,? 代表单个任意字符,[...] 代表字符序列)。例如: a*b?c 将匹配以字符 a 开头,后跟任意数量的字符,然后是 b,任意单个字符,和 c
      参数:
      a - 一个属性表达式
      s - 表示匹配约束的字符串值表达式
      返回:
      表示字符串参数上匹配约束的查询表达式。返回的对象将被序列化为非公共类的实例 javax.management.MatchQueryExp
    • attr

      public static AttributeValueExp attr(String name)

      返回一个新的属性表达式。有关表达式语义的详细描述,请参见 AttributeValueExp

      对于给定的 objectName,评估此表达式包括执行 MBeanServer.getAttribute(objectName, name)

      参数:
      name - 属性的名称。
      返回:
      属性名为 name 的属性表达式。
    • attr

      public static AttributeValueExp attr(String className, String name)

      返回一个新的限定属性表达式。

      对于给定的 objectName,评估此表达式包括执行 MBeanServer.getObjectInstance(objectName)MBeanServer.getAttribute(objectName, name)

      参数:
      className - 拥有属性的类的名称。
      name - 属性的名称。
      返回:
      属性名为 name 的属性表达式。返回的对象将被序列化为非公共类的实例 javax.management.QualifiedAttributeValueExp
    • classattr

      public static AttributeValueExp classattr()

      返回一个可以在期望 ValueExp 的任何查询调用中使用的类属性表达式。

      对于给定的 objectName,评估此表达式包括执行 MBeanServer.getObjectInstance(objectName)

      返回:
      一个类属性表达式。返回的对象将被序列化为非公共类的实例 javax.management.ClassAttributeValueExp
    • not

      public static QueryExp not(QueryExp queryExp)
      返回其参数的否定约束。
      参数:
      queryExp - 要否定的约束。
      返回:
      一个否定的约束。返回的对象将被序列化为非公共类的实例 javax.management.NotQueryExp
    • in

      public static QueryExp in(ValueExp val, ValueExp[] valueList)
      返回一个将值约束为显式列表之一的表达式。
      参数:
      val - 要约束的值。
      valueList - 一个 ValueExps 数组。
      返回:
      表示约束的 QueryExp。返回的对象将被序列化为非公共类的实例 javax.management.InQueryExp
    • value

      public static StringValueExp value(String val)
      返回一个新的字符串表达式。
      参数:
      val - 字符串值。
      返回:
      包含字符串参数的 ValueExp 对象。
    • value

      public static ValueExp value(Number val)
      返回一个可以在期望 ValueExp 的任何查询调用中使用的数值值表达式。
      参数:
      val - Number 的实例。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类的实例 javax.management.NumericValueExp
    • value

      public static ValueExp value(int val)
      返回一个可以在期望 ValueExp 的任何查询调用中使用的数值值表达式。
      参数:
      val - 一个 int 值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类的实例 javax.management.NumericValueExp
    • value

      public static ValueExp value(long val)
      返回一个可以在期望 ValueExp 的任何查询调用中使用的数值值表达式。
      参数:
      val - 一个 long 值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类的实例 javax.management.NumericValueExp
    • value

      public static ValueExp value(float val)
      返回一个可以在期望 ValueExp 的任何查询调用中使用的数值值表达式。
      参数:
      val - 一个 float 值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类的实例 javax.management.NumericValueExp
    • value

      public static ValueExp value(double val)
      返回一个可以在期望 ValueExp 的任何查询调用中使用的数值值表达式。
      参数:
      val - 一个 double 值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类的实例 javax.management.NumericValueExp
    • value

      public static ValueExp value(boolean val)
      返回一个可以在期望 ValueExp 的任何查询调用中使用的布尔值表达式。
      参数:
      val - 一个布尔值。
      返回:
      包含参数的ValueExp对象。返回的对象将被序列化为一个非公共类的实例 javax.management.BooleanValueExp
    • plus

      public static ValueExp plus(ValueExp value1, ValueExp value2)
      返回一个表示两个数值之和或两个字符串值连接的二进制表达式。
      参数:
      value1 - 第一个'+' 操作数。
      value2 - 第二个'+' 操作数。
      返回:
      代表两个参数之和或连接的ValueExp。返回的对象将被序列化为一个非公共类的实例 javax.management.BinaryOpValueExp,其 op 等于 PLUS
    • times

      public static ValueExp times(ValueExp value1, ValueExp value2)
      返回一个表示两个数值之积的二进制表达式。
      参数:
      value1 - 第一个'*' 操作数。
      value2 - 第二个'*' 操作数。
      返回:
      代表乘积的ValueExp。返回的对象将被序列化为一个非公共类的实例 javax.management.BinaryOpValueExp,其 op 等于 TIMES
    • minus

      public static ValueExp minus(ValueExp value1, ValueExp value2)
      返回一个表示两个数值之差的二进制表达式。
      参数:
      value1 - 第一个'-' 操作数。
      value2 - 第二个'-' 操作数。
      返回:
      代表两个参数之差的ValueExp。返回的对象将被序列化为一个非公共类的实例 javax.management.BinaryOpValueExp,其 op 等于 MINUS
    • div

      public static ValueExp div(ValueExp value1, ValueExp value2)
      返回一个表示两个数值之商的二进制表达式。
      参数:
      value1 - 第一个'/' 操作数。
      value2 - 第二个'/' 操作数。
      返回:
      代表两个参数之商的ValueExp。返回的对象将被序列化为一个非公共类的实例 javax.management.BinaryOpValueExp,其 op 等于 DIV
    • initialSubString

      public static QueryExp initialSubString(AttributeValueExp a, StringValueExp s)
      返回一个查询表达式,表示对字符串参数的匹配约束。该值必须以给定的字面字符串值开头。
      参数:
      a - 一个属性表达式。
      s - 代表字符串值开头的字符串值表达式。
      返回:
      约束条件为 a 匹配 s。返回的对象将被序列化为一个非公共类的实例 javax.management.MatchQueryExp
    • anySubString

      public static QueryExp anySubString(AttributeValueExp a, StringValueExp s)
      返回一个查询表达式,表示对字符串参数的匹配约束。该值必须包含给定的字面字符串值。
      参数:
      a - 一个属性表达式。
      s - 代表子字符串的字符串值表达式。
      返回:
      约束条件为 a 匹配 s。返回的对象将被序列化为一个非公共类的实例 javax.management.MatchQueryExp
    • finalSubString

      public static QueryExp finalSubString(AttributeValueExp a, StringValueExp s)
      返回一个查询表达式,表示对字符串参数的匹配约束。该值必须以给定的字面字符串值结尾。
      参数:
      a - 一个属性表达式。
      s - 代表字符串值结尾的字符串值表达式。
      返回:
      约束条件为 a 匹配 s。返回的对象将被序列化为一个非公共类的实例 javax.management.MatchQueryExp
    • isInstanceOf

      public static QueryExp isInstanceOf(StringValueExp classNameValue)
      返回一个查询表达式,表示对MBean类的继承约束。

      示例:要查找是 NotificationBroadcaster 实例的MBean,使用 Query.isInstanceOf(Query.value(NotificationBroadcaster.class.getName()))

      对于给定的 objectName,评估此表达式包括执行 MBeanServer.isInstanceOf(objectName, ((StringValueExp)classNameValue.apply(objectName)).getValue()

      参数:
      classNameValue - 返回所选MBean应为其实例的类的名称的 StringValueExp
      返回:
      代表MBean类的继承约束的查询表达式。返回的对象将被序列化为一个非公共类的实例 javax.management.InstanceOfQueryExp
      自:
      1.6