// 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 { // 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 System.out.
Note: this class just prints one symbol, not an actual figure. Subclasses are expected to override this method to print more meaningful figures. */ 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,
> 0 if offset of this object > other offset, or
< 0 if offset of this object < 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 } }