
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_management_Query$BinaryRelQueryExp__
#define __javax_management_Query$BinaryRelQueryExp__

#pragma interface

#include <javax/management/QueryEval.h>
extern "Java"
{
  namespace javax
  {
    namespace management
    {
        class ObjectName;
        class Query$BinaryRelQueryExp;
        class ValueExp;
    }
  }
}

class javax::management::Query$BinaryRelQueryExp : public ::javax::management::QueryEval
{

public:
  Query$BinaryRelQueryExp(jint, ::javax::management::ValueExp *, ::javax::management::ValueExp *);
  jboolean apply(::javax::management::ObjectName *);
  ::java::lang::String * toString();
private:
  static const jlong serialVersionUID = -5690656271650491000LL;
  jint __attribute__((aligned(__alignof__( ::javax::management::QueryEval)))) relOp;
  ::javax::management::ValueExp * exp1;
  ::javax::management::ValueExp * exp2;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_Query$BinaryRelQueryExp__
