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

#ifndef __javax_management_Query$OrQueryExp__
#define __javax_management_Query$OrQueryExp__

#pragma interface

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

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

public:
  Query$OrQueryExp(::javax::management::QueryExp *, ::javax::management::QueryExp *);
  jboolean apply(::javax::management::ObjectName *);
private:
  static const jlong serialVersionUID = 2962973084421716523LL;
  ::javax::management::QueryExp * __attribute__((aligned(__alignof__( ::javax::management::QueryEval)))) exp1;
  ::javax::management::QueryExp * exp2;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_Query$OrQueryExp__
