package
org
.
pagecentric
.
util
;
import
java
.
io
.
PrintStream
;
public
class
printer
{
private
PrintStream
s
;
private
int
tabs
;
private
boolean
buffering
;
private
StringBuffer
buffer
;
public
printer
(
PrintStream
stream
)
{
this
.
tabs
=
0
;
this
.
buffering
=
false
;
this
.
s
=
stream
;
this
.
buffer
=
new
StringBuffer
(
)
;
}
public
void
println
(
String
aString
)
{
for
(
int
i
=
0
;
i
<
tabs
;
i
++
)
writeout
(
"\t"
)
;
writeout
(
aString
)
;
writeout
(
"\n"
)
;
}
private
void
writeout
(
String
aString
)
{
if
(
buffering
)
{
buffer
.
append
(
aString
)
;
}
else
{
s
.
print
(
aString
)
;
}
}
public
void
writeBuffer
(
)
{
s
.
print
(
buffer
.
toString
(
)
)
;
buffer
=
new
StringBuffer
(
)
;
buffering
=
false
;
}
public
void
indent
(
)
{
tabs
++
;
}
public
void
outdent
(
)
{
tabs
-
-
;
}
public
void
in
(
String
aString
)
{
inprint
(
aString
)
;
}
public
void
out
(
String
aString
)
{
outprint
(
aString
)
;
}
public
void
outprint
(
String
aString
)
{
outdent
(
)
;
println
(
aString
)
;
}
public
void
printf
(
String
aString
)
{
for
(
int
i
=
0
;
i
<
tabs
;
i
++
)
writeout
(
"\t"
)
;
writeout
(
aString
)
;
}
public
void
inprint
(
String
aString
)
{
println
(
aString
)
;
indent
(
)
;
}
}