package tarau.jinni;
import java.io.Writer;
import java.io.FileOutputStream;
import java.io.IOException;

/**
  Writer
*/
class CharWriter extends Sink {
  protected Writer writer;

  CharWriter(String f,Prog p) {
    super(p);
    this.writer=IO.toFileWriter(f);
  }
  
  CharWriter(Prog p) {
    super(p);
    this.writer=IO.output;
  }

  public int putElement(Term t) {
    if(null==writer) return 0;
    try {
      char c=(char)((Int)t).intValue();
      writer.write(c);
    }
    catch(IOException e) {
      return 0;
    }
    return 1;
  }
  
  public void stop() {
    if(null!=writer && IO.output!=writer) {
      try {
       writer.close();
      }
      catch(IOException e) {}
      writer=null;
    }
  }
}
