//
//  Generated by the J2ObjC translator.  DO NOT EDIT!
//  source: /Users/antoniocortes/j2objcprj/relases/j2objc/xalan/third_party/android/platform/external/apache-xml/src/main/java/org/apache/xml/serializer/WriterChain.java
//

#include "../../../../J2ObjC_header.h"

#pragma push_macro("INCLUDE_ALL_OrgApacheXmlSerializerWriterChain")
#ifdef RESTRICT_OrgApacheXmlSerializerWriterChain
#define INCLUDE_ALL_OrgApacheXmlSerializerWriterChain 0
#else
#define INCLUDE_ALL_OrgApacheXmlSerializerWriterChain 1
#endif
#undef RESTRICT_OrgApacheXmlSerializerWriterChain

#pragma clang diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"

#if __has_feature(nullability)
#pragma clang diagnostic push
#pragma GCC diagnostic ignored "-Wnullability"
#pragma GCC diagnostic ignored "-Wnullability-completeness"
#endif

#if !defined (OrgApacheXmlSerializerWriterChain_) && (INCLUDE_ALL_OrgApacheXmlSerializerWriterChain || defined(INCLUDE_OrgApacheXmlSerializerWriterChain))
#define OrgApacheXmlSerializerWriterChain_

@class IOSCharArray;
@class JavaIoOutputStream;
@class JavaIoWriter;

/*!
 @brief It is unfortunate that java.io.Writer is a class rather than an interface.
 The serializer has a number of classes that extend java.io.Writer
  and which send their ouput to a yet another wrapped Writer or OutputStream. 
  The purpose of this interface is to force such classes to over-ride all of
  the important methods defined on the java.io.Writer class, namely these: 
 <code>
  write(int val)
  write(char[] chars)
  write(char[] chars, int start, int count)
  write(String chars)
  write(String chars, int start, int count)
  flush()
  close() 
 </code>
  In this manner nothing will accidentally go directly to 
  the base class rather than to the wrapped Writer or OutputStream.  
  The purpose of this class is to have a uniform way of chaining the output of one writer to
  the next writer in the chain. In addition there are methods to obtain the Writer or 
  OutputStream that this object sends its output to. 
  This interface is only for internal use withing the serializer.
 */
@protocol OrgApacheXmlSerializerWriterChain < JavaObject >

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)writeWithInt:(jint)val;

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)writeWithCharArray:(IOSCharArray *)chars;

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)writeWithCharArray:(IOSCharArray *)chars
                   withInt:(jint)start
                   withInt:(jint)count;

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)writeWithNSString:(NSString *)chars;

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)writeWithNSString:(NSString *)chars
                  withInt:(jint)start
                  withInt:(jint)count;

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)flush;

/*!
 @brief This method forces us to over-ride the method defined in java.io.Writer
 */
- (void)close;

/*!
 @brief If this method returns null, getOutputStream() must return non-null.
 Get the writer that this writer sends its output to. 
  It is possible that the Writer returned by this method does not
  implement the WriterChain interface.
 */
- (JavaIoWriter *)getWriter;

/*!
 @brief If this method returns null, getWriter() must return non-null.
 Get the OutputStream that this writer sends its output to.
 */
- (JavaIoOutputStream *)getOutputStream;

@end

J2OBJC_EMPTY_STATIC_INIT(OrgApacheXmlSerializerWriterChain)

J2OBJC_TYPE_LITERAL_HEADER(OrgApacheXmlSerializerWriterChain)

#endif


#if __has_feature(nullability)
#pragma clang diagnostic pop
#endif

#pragma clang diagnostic pop
#pragma pop_macro("INCLUDE_ALL_OrgApacheXmlSerializerWriterChain")
