类 Query

java.lang.Object
javax.management.Query

public class Query extends Object

构造查询对象约束。

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

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

 QueryExp query =
   Query.and(Query.eq(Query.attr("Enabled"), Query.value(true)),
        Query.eq(Query.attr("Owner"), Query.value("Duke")));
 
自从:
1.5
  • 字段详细信息

  • 构造方法详细信息

    • Query

      public Query()
      基本构造方法。
  • 方法详情

    • 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 - ValueExp 数组。
      返回:
      表示约束的 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 - 长值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类 javax.management.NumericValueExp 的实例。
    • value

      public static ValueExp  value(float val)
      返回一个数值表达式,该表达式可用于任何需要 ValueExp 的查询调用。
      参数:
      val - 浮点值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类 javax.management.NumericValueExp 的实例。
    • value

      public static ValueExp  value(double val)
      返回一个数值表达式,该表达式可用于任何需要 ValueExp 的查询调用。
      参数:
      val - 双精度值。
      返回:
      包含参数的 ValueExp 对象。返回的对象将被序列化为非公共类 javax.management.NumericValueExp 的实例。
    • value

      public static ValueExp  value(boolean val)
      返回一个boolean表达式,可以在任何需要 ValueExp 的查询调用中使用。
      参数:
      val - 一个boolean。
      返回:
      包含参数的 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 - StringValueExp 返回所选 MBean 应作为实例的类的名称。
      返回:
      表示 MBean 类的继承约束的查询表达式。返回的对象将被序列化为非公共类 javax.management.InstanceOfQueryExp 的实例。
      自从:
      1.6