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

#ifndef __javax_xml_transform_dom_DOMLocator__
#define __javax_xml_transform_dom_DOMLocator__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace xml
    {
      namespace transform
      {
        namespace dom
        {
            class DOMLocator;
        }
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Node;
      }
    }
  }
}

class javax::xml::transform::dom::DOMLocator : public ::java::lang::Object
{

public:
  virtual ::org::w3c::dom::Node * getOriginatingNode() = 0;
  virtual ::java::lang::String * getPublicId() = 0;
  virtual ::java::lang::String * getSystemId() = 0;
  virtual jint getLineNumber() = 0;
  virtual jint getColumnNumber() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_xml_transform_dom_DOMLocator__
