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

#ifndef __org_w3c_dom_ls_LSSerializer__
#define __org_w3c_dom_ls_LSSerializer__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class DOMConfiguration;
          class Node;
        namespace ls
        {
            class LSOutput;
            class LSSerializer;
            class LSSerializerFilter;
        }
      }
    }
  }
}

class org::w3c::dom::ls::LSSerializer : public ::java::lang::Object
{

public:
  virtual ::org::w3c::dom::DOMConfiguration * getDomConfig() = 0;
  virtual ::java::lang::String * getNewLine() = 0;
  virtual void setNewLine(::java::lang::String *) = 0;
  virtual ::org::w3c::dom::ls::LSSerializerFilter * getFilter() = 0;
  virtual void setFilter(::org::w3c::dom::ls::LSSerializerFilter *) = 0;
  virtual jboolean write(::org::w3c::dom::Node *, ::org::w3c::dom::ls::LSOutput *) = 0;
  virtual jboolean writeToURI(::org::w3c::dom::Node *, ::java::lang::String *) = 0;
  virtual ::java::lang::String * writeToString(::org::w3c::dom::Node *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __org_w3c_dom_ls_LSSerializer__
