<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">     1	// joi/5/shapes/Line.java
     2	//
     3	//
     4	// Copyright 2003 Bill Campbell and Ethan Bolker
     5	
     6	/**
     7	 * A Line has a length and a paintChar used to paint
     8	 * itself on a Screen. 
     9	 * 
    10	 * Subclasses of this abstract class specify the direction
    11	 * of the Line.
    12	 *
    13	 * @version 5
    14	 */
    15	
    16	public abstract class Line 
    17	{
    18	    protected int  length;      // length in (character) pixels.
    19	    protected char paintChar;   // character used for painting.
    20	
    21	    /**
    22	     * Construct a Line.
    23	     *
    24	     * @param length length in (character) pixels.
    25	     * @param paintChar character used for painting this Line.
    26	     */
    27	
    28	    protected Line( int length, char paintChar )
    29	    {
    30	        this.length    = length;
    31	        this.paintChar = paintChar;
    32	    }
    33	
    34	    /**
    35	     * Get the length of this line.
    36	     *
    37	     * @return the length in (character) pixels. 
    38	     */
    39	
    40	    public int getLength()
    41	    {
    42	        return length;
    43	    }
    44	
    45	    /**
    46	     * Set the length of this line.
    47	     *
    48	     * @param length the new length in (character) pixels.
    49	     */
    50	
    51	    public void setLength( int length )
    52	    {
    53	        this.length = length;
    54	    }
    55	
    56	    /**
    57	     * Get the paintChar of this Line.
    58	     *
    59	     * @return the paintChar.
    60	     */
    61	
    62	    public char getPaintChar()
    63	    {
    64	        return paintChar;
    65	    }
    66	
    67	    /**
    68	     * Set the paintChar of this Line.
    69	     *
    70	     * @param paintChar the new paintChar.
    71	     */
    72	
    73	    public void setPaintChar( char paintChar )
    74	    {
    75	        this.paintChar = paintChar;
    76	    }
    77	
    78	    /**
    79	     * Paint this Line on Screen s at position (x,y).
    80	     *
    81	     * @param s the Screen on which this Line is to be painted.
    82	     * @param x the x position for the line.
    83	     * @param y the y position for the line.
    84	     */
    85	
    86	    public abstract void paintOn( Screen s, int x, int y );
    87	
    88	    /**
    89	     * Paint this Line on Screen s at position (0,0).
    90	     *
    91	     * @param s the Screen on which this Line is to be painted.
    92	     */
    93	
    94	    public void paintOn( Screen s )
    95	    {
    96	        paintOn( s, 0, 0 );
    97	    }
    98	}
</pre></body></html>