org.extex.backend.documentWriter.postscript.converter
Class PsBasicConverter

java.lang.Object
  extended by org.extex.backend.documentWriter.postscript.converter.AbstractConverter
      extended by org.extex.backend.documentWriter.postscript.converter.PsBasicConverter
All Implemented Interfaces:
PsConverter, ColorAware, ResourceAware, NodeVisitor<java.lang.Object,java.io.PrintStream>

public class PsBasicConverter
extends AbstractConverter
implements NodeVisitor<java.lang.Object,java.io.PrintStream>, ColorAware

This class provides a converter to PostScript code.

Version:
$Revision: 6447 $
Author:
Gerd Neugebauer

Constructor Summary
PsBasicConverter()
          Creates a new object.
 
Method Summary
 void setColorConverter(ColorConverter converter)
          Setter for the color converter.
 byte[] toPostScript(Page page)
          Translate nodes into PostScript code.
 java.lang.Object visitAdjust(AdjustNode node, java.io.PrintStream out)
          This method is called when an AdjustNode has been encountered.
 java.lang.Object visitAfterMath(AfterMathNode node, java.io.PrintStream out)
          This method is called when an AfterMathNode has been encountered.
 java.lang.Object visitAlignedLeaders(AlignedLeadersNode node, java.io.PrintStream out)
          This method is called when an AlignedLeadersNode has been encountered.
 java.lang.Object visitBeforeMath(BeforeMathNode node, java.io.PrintStream out)
          This method is called when a BeforeMathNode has been encountered.
 java.lang.Object visitCenteredLeaders(CenteredLeadersNode node, java.io.PrintStream out)
          This method is called when a CenteredLeadersNode has been encountered.
 java.lang.Object visitChar(CharNode node, java.io.PrintStream out)
          This method is called when a CharNode has been encountered.
 java.lang.Object visitDiscretionary(DiscretionaryNode node, java.io.PrintStream out)
          This method is called when a DiscretionaryNode has been encountered.
 java.lang.Object visitExpandedLeaders(ExpandedLeadersNode node, java.io.PrintStream out)
          This method is called when an ExpandedLeadersNode has been encountered.
 java.lang.Object visitGlue(GlueNode node, java.io.PrintStream out)
          This method is called when a GlueNode has been encountered.
 java.lang.Object visitHorizontalList(HorizontalListNode node, java.io.PrintStream out)
          This method is called when a HorizontalListNode has been encountered.
 java.lang.Object visitInsertion(InsertionNode node, java.io.PrintStream out)
          This method is called when an InsertionNode has been encountered.
 java.lang.Object visitKern(KernNode node, java.io.PrintStream out)
          This method is called when a KernNode has been encountered.
 java.lang.Object visitLigature(LigatureNode node, java.io.PrintStream out)
          This method is called when a LigatureNode has been encountered.
 java.lang.Object visitMark(MarkNode node, java.io.PrintStream out)
          This method is called when a MarkNode has been encountered.
 java.lang.Object visitPenalty(PenaltyNode node, java.io.PrintStream out)
          This method is called when a PenaltyNode has been encountered.
 java.lang.Object visitRule(RuleNode node, java.io.PrintStream out)
          This method is called when a RuleNode has been encountered.
 java.lang.Object visitSpace(SpaceNode node, java.io.PrintStream out)
          This method is called when a SpaceNode has been encountered.
 java.lang.Object visitVerticalList(VerticalListNode node, java.io.PrintStream out)
          This method is called when a VerticalListNode has been encountered.
 java.lang.Object visitVirtualChar(VirtualCharNode node, java.io.PrintStream out)
          This method is called when a VirtualCharNode has been encountered.
 java.lang.Object visitWhatsIt(WhatsItNode node, java.io.PrintStream out)
          This method is called when a WhatsItNode has been encountered.
 void writeHeaders(java.io.PrintStream out)
          Write the header to the target stream.
 
Methods inherited from class org.extex.backend.documentWriter.postscript.converter.AbstractConverter
getFontManager, init, setResourceFinder, treatSpecial
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PsBasicConverter

public PsBasicConverter()
Creates a new object.

Method Detail

setColorConverter

public void setColorConverter(ColorConverter converter)
Setter for the color converter.

Specified by:
setColorConverter in interface ColorAware
Parameters:
converter - the color converter
See Also:
ColorAware.setColorConverter( org.extex.color.ColorConverter)

toPostScript

public byte[] toPostScript(Page page)
                    throws DocumentWriterException
Translate nodes into PostScript code.

Specified by:
toPostScript in interface PsConverter
Parameters:
page - the nodes to translate into PostScript code
Returns:
the bytes representing the current page
Throws:
DocumentWriterException - in case of an error
See Also:
PsConverter.toPostScript( org.extex.typesetter.type.page.Page)

visitAdjust

public java.lang.Object visitAdjust(AdjustNode node,
                                    java.io.PrintStream out)
                             throws GeneralException
This method is called when an AdjustNode has been encountered.

Specified by:
visitAdjust in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitAdjust( org.extex.typesetter.type.node.AdjustNode, java.lang.Object)

visitAfterMath

public java.lang.Object visitAfterMath(AfterMathNode node,
                                       java.io.PrintStream out)
                                throws GeneralException
This method is called when an AfterMathNode has been encountered.

Specified by:
visitAfterMath in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitAfterMath( org.extex.typesetter.type.node.AfterMathNode, java.lang.Object)

visitAlignedLeaders

public java.lang.Object visitAlignedLeaders(AlignedLeadersNode node,
                                            java.io.PrintStream out)
                                     throws GeneralException
This method is called when an AlignedLeadersNode has been encountered.

Specified by:
visitAlignedLeaders in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitAlignedLeaders( org.extex.typesetter.type.node.AlignedLeadersNode, java.lang.Object)

visitBeforeMath

public java.lang.Object visitBeforeMath(BeforeMathNode node,
                                        java.io.PrintStream out)
                                 throws GeneralException
This method is called when a BeforeMathNode has been encountered.

Specified by:
visitBeforeMath in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitBeforeMath( org.extex.typesetter.type.node.BeforeMathNode, java.lang.Object)

visitCenteredLeaders

public java.lang.Object visitCenteredLeaders(CenteredLeadersNode node,
                                             java.io.PrintStream out)
                                      throws GeneralException
This method is called when a CenteredLeadersNode has been encountered.

Specified by:
visitCenteredLeaders in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitCenteredLeaders( org.extex.typesetter.type.node.CenteredLeadersNode, java.lang.Object)

visitChar

public java.lang.Object visitChar(CharNode node,
                                  java.io.PrintStream out)
                           throws GeneralException
This method is called when a CharNode has been encountered.

Specified by:
visitChar in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitChar( org.extex.typesetter.type.node.CharNode, java.lang.Object)

visitDiscretionary

public java.lang.Object visitDiscretionary(DiscretionaryNode node,
                                           java.io.PrintStream out)
                                    throws GeneralException
This method is called when a DiscretionaryNode has been encountered.

Specified by:
visitDiscretionary in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitDiscretionary( org.extex.typesetter.type.node.DiscretionaryNode, java.lang.Object)

visitExpandedLeaders

public java.lang.Object visitExpandedLeaders(ExpandedLeadersNode node,
                                             java.io.PrintStream out)
                                      throws GeneralException
This method is called when an ExpandedLeadersNode has been encountered.

Specified by:
visitExpandedLeaders in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitExpandedLeaders( org.extex.typesetter.type.node.ExpandedLeadersNode, java.lang.Object)

visitGlue

public java.lang.Object visitGlue(GlueNode node,
                                  java.io.PrintStream out)
                           throws GeneralException
This method is called when a GlueNode has been encountered.

Specified by:
visitGlue in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitGlue( org.extex.typesetter.type.node.GlueNode, java.lang.Object)

visitHorizontalList

public java.lang.Object visitHorizontalList(HorizontalListNode node,
                                            java.io.PrintStream out)
                                     throws GeneralException
This method is called when a HorizontalListNode has been encountered.

Specified by:
visitHorizontalList in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitHorizontalList( org.extex.typesetter.type.node.HorizontalListNode, java.lang.Object)

visitInsertion

public java.lang.Object visitInsertion(InsertionNode node,
                                       java.io.PrintStream out)
                                throws GeneralException
This method is called when an InsertionNode has been encountered.

Specified by:
visitInsertion in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitInsertion( org.extex.typesetter.type.node.InsertionNode, java.lang.Object)

visitKern

public java.lang.Object visitKern(KernNode node,
                                  java.io.PrintStream out)
                           throws GeneralException
This method is called when a KernNode has been encountered.

Specified by:
visitKern in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitKern( org.extex.typesetter.type.node.KernNode, java.lang.Object)

visitLigature

public java.lang.Object visitLigature(LigatureNode node,
                                      java.io.PrintStream out)
                               throws GeneralException
This method is called when a LigatureNode has been encountered.

Specified by:
visitLigature in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitLigature( org.extex.typesetter.type.node.LigatureNode, java.lang.Object)

visitMark

public java.lang.Object visitMark(MarkNode node,
                                  java.io.PrintStream out)
                           throws GeneralException
This method is called when a MarkNode has been encountered.

Specified by:
visitMark in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitMark( org.extex.typesetter.type.node.MarkNode, java.lang.Object)

visitPenalty

public java.lang.Object visitPenalty(PenaltyNode node,
                                     java.io.PrintStream out)
                              throws GeneralException
This method is called when a PenaltyNode has been encountered.

Specified by:
visitPenalty in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitPenalty( org.extex.typesetter.type.node.PenaltyNode, java.lang.Object)

visitRule

public java.lang.Object visitRule(RuleNode node,
                                  java.io.PrintStream out)
                           throws GeneralException
This method is called when a RuleNode has been encountered.

Specified by:
visitRule in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitRule( org.extex.typesetter.type.node.RuleNode, java.lang.Object)

visitSpace

public java.lang.Object visitSpace(SpaceNode node,
                                   java.io.PrintStream out)
                            throws GeneralException
This method is called when a SpaceNode has been encountered.

Specified by:
visitSpace in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitSpace( org.extex.typesetter.type.node.SpaceNode, java.lang.Object)

visitVerticalList

public java.lang.Object visitVerticalList(VerticalListNode node,
                                          java.io.PrintStream out)
                                   throws GeneralException
This method is called when a VerticalListNode has been encountered.

Specified by:
visitVerticalList in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitVerticalList( org.extex.typesetter.type.node.VerticalListNode, java.lang.Object)

visitVirtualChar

public java.lang.Object visitVirtualChar(VirtualCharNode node,
                                         java.io.PrintStream out)
                                  throws GeneralException
This method is called when a VirtualCharNode has been encountered.

Specified by:
visitVirtualChar in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitVirtualChar( org.extex.typesetter.type.node.VirtualCharNode, java.lang.Object)

visitWhatsIt

public java.lang.Object visitWhatsIt(WhatsItNode node,
                                     java.io.PrintStream out)
                              throws GeneralException
This method is called when a WhatsItNode has been encountered.

Specified by:
visitWhatsIt in interface NodeVisitor<java.lang.Object,java.io.PrintStream>
Parameters:
node - the first parameter for the visitor is the node visited
out - the second parameter for the visitor
Returns:
the visitor specific value
Throws:
GeneralException - in case of an error
See Also:
NodeVisitor.visitWhatsIt( org.extex.typesetter.type.node.WhatsItNode, java.lang.Object)

writeHeaders

public void writeHeaders(java.io.PrintStream out)
                  throws java.io.IOException
Write the header to the target stream.

Specified by:
writeHeaders in interface PsConverter
Overrides:
writeHeaders in class AbstractConverter
Parameters:
out - the target stream
Throws:
java.io.IOException - in case of an I/O error
See Also:
AbstractConverter.writeHeaders( java.io.PrintStream)