package keel.Algorithms.UnsupervisedLearning.AssociationRules.FuzzyRuleLearning.Fingrams;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
public class ThreadedStreamHandler extends Thread
{
InputStream inputStream;
String adminPassword;
OutputStream outputStream;
PrintWriter printWriter;
StringBuilder outputBuffer = new StringBuilder();
private boolean sudoIsRequested = false;
ThreadedStreamHandler(InputStream inputStream)
{
this.inputStream = inputStream;
}
ThreadedStreamHandler(InputStream inputStream, OutputStream outputStream, String adminPassword)
{
this.inputStream = inputStream;
this.outputStream = outputStream;
this.printWriter = new PrintWriter(outputStream);
this.adminPassword = adminPassword;
this.sudoIsRequested = true;
}
public void run()
{
if (sudoIsRequested)
{
printWriter.println(adminPassword);
printWriter.flush();
}
BufferedReader bufferedReader = null;
try
{
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = bufferedReader.readLine()) != null)
{
outputBuffer.append(line + "\n");
}
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
catch (Throwable t)
{
t.printStackTrace();
}
finally
{
try
{
bufferedReader.close();
}
catch (IOException e)
{
}
}
}
private void doSleep(long millis)
{
try
{
Thread.sleep(millis);
}
catch (InterruptedException e)
{
// ignore
}
}
public StringBuilder getOutputBuffer()
{
return outputBuffer;
}
}