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

#ifndef __javax_management_Query$MatchQueryExp__
#define __javax_management_Query$MatchQueryExp__

#pragma interface

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

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

public:
  Query$MatchQueryExp(::javax::management::AttributeValueExp *, ::java::lang::String *);
  jboolean apply(::javax::management::ObjectName *);
private:
  static const jlong serialVersionUID = -7156603696948215014LL;
  ::javax::management::AttributeValueExp * __attribute__((aligned(__alignof__( ::javax::management::QueryEval)))) exp;
  ::java::lang::String * pattern;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_Query$MatchQueryExp__
