// FigurePrinter.java
// YOUR NAME, AND DATE

/**
   Generic figure printer. Maintains a specific char to use for printing
   the figure, and an int number of spaces to offset the figure from the
   left margin.
*/
public class FigurePrinter implements Comparable<FigurePrinter> {

// DECLARE INSTANCE VARIABLES

    /**
       Constructor assigns character, and offset amount.
       @param symbol the character symbol to represent the figure.
       @param offset the offset (leading spaces) from the left margin.
    */
    public FigurePrinter(char symbol, int offset) {
//      IMPLEMENT
    }

    /**
       No-argument constructor sets symbol to '*' and offset to 0.
    */
    public FigurePrinter() {
//      IMPLEMENT
    }

    /**
       Accessor for the symbol this object uses to print figures.
       @return the character symbol.
    */
    public char getSymbol() {
//      IMPLEMENT
    }

    /**
       Sets the symbol this object uses to print figures.
       @param newSymbol the new character to use for printing.
    */
    public void setSymbol(char newSymbol) {
//      IMPLEMENT
    }

    /**
       Accessor for the offset this object uses to print figures.
       @return the offset amount.
    */
    public int getOffset() {
//      IMPLEMENT
    }
    
    /**
       Sets the offset - number of spaces from the left margin.
       @param newOffset the amount by which to offset the figure.
    */
    public void setOffset(int newOffset) {
//      IMPLEMENT
    }

    /**
       Prints the figure to <code>System.out</code>.<br>
       Note: this class just prints one symbol, not an actual figure.
       <em>Subclasses are expected to override this method to print more
       meaningful figures.</em>
    */
    public void print() {
//      IMPLEMENT
    }

    /**
       Prints the figure after a specified number of newlines.
       @param lines the number of lines to skip before printing.
    */
    public void printAt(int lines) {
//      IMPLEMENT
    }

    /**
      Checks if this object is identical to the other object.
      @param other the other object.
      @return true if the other object is a FigurePrinter
          and its symbol and offset both match this object's
          symbol and offset.
    */
    public boolean equals(Object other) {
//      IMPLEMENT
    }

    /**
      Compares this figure printer to other figure printer, in terms of offset.
      @param other another FigurePrinter object.
      @return 0 if offset of this object equals other offset,<br>
              &gt; 0 if offset of this object &gt; other offset, or<br>
              &lt; 0 if offset of this object &lt; other offset.
    */
    public int compareTo(FigurePrinter other) {
//      IMPLEMENT
    }

    /**
       Utility method prints the offset number of spaces, but does not
       print a newline character. Note this method is "protected" - it
       may be used by subclasses.
    */
    protected void shift() {
//      IMPLEMENT
    }

    /**
       Utility method prints a specified number of spaces, but not a
       newline character. Note this method is "protected" - it may be
       used by subclasses.
       @param n the number of spaces to print.
    */
    protected void spaces(int n) {
//      IMPLEMENT
    }
}