COP 2800 (Java Programming) Project #4

For this project, you will create a class called TextKit containing several utility methods that can be used in different applications. This class is not intended to be a complete application by itself! (It has no main method.) Your class will be put into a package called utils. The package will then be documented using the javadoc tool to create HTML documentation for your package. Finally, you will create a small stand-alone non-GUI Java program that tests the methods of your utils.TextKit class.

(Your next project will use this package, and you won't be allowed to make any changes to TextKit once submitted.)
Create a public Java class named “TextKit” in a package called “utils” that contains the following public static methods (at least):

This method will create and return a String containing a line of asterisks (or stars). This method must take a single parameter only, an int which says how many stars to draw. For example, the code:

System.out.println( utils.TextKit.lineOfStars(4) );
Should print a line that looks like:

The intent is that lineOfStars should be a generally useful method that given a single number returns a String of that many stars. (Such a method could easily be reused in another project someday.)

This method will format integers by adding spaces (called padding) to the left end, to make the resulting String a certain minimum length. (If the number contains more digits than the specified width, then no padding is added.) This method must take two int arguments, the first is the number to format, and the second is the desired minimum String length. The resulting String is returned. For example, the code:

int num = 17; System.out.println( "*" + utils.TextKit.pad(num, 4) + "*" );
Should print a line that looks like:

* 17*
(Notice there are two leading blanks added by pad, to make the field length 4.)
To facilitate such reuse, these methods must be public static methods of a public class called TextKit, which must be in a package called utils. (Someday you might add other text utility methods to this class or add other classes to this package.)

Be sure to add appropriate Java doc comments throughout your code!

For full credit, your methods must check for invalid arguments (for example, inappropriate negative numbers). If you detect invalid arguments passed to a method, the method must throw an appropriate java.lang.IllegalArgumentException.

Next, create a testing application. Your test program (containing just a main method) should not be in the utils package, but rather in the default, nameless package. You can name the class anything you like; something like TextKitApp is fine. This test program should invoke each method of the utils.TextKit class at least once, to verify those methods work. You can test the resulting Stringobject returned from each method, against the expected value. Or you can simply print a message that says something like “You should see five stars here: ”, followed by the output of the method call with (in this example) the argument 5. (Such a main method is sometimes referred to as a test driver.) A good test driver will have many test cases, to more thoroughly check the methods. Having failing cases (in a try...catch block of course) is also a good idea, but not required for this project.

Finally, you must use the javadoc tool to create HTML documentation for your package. This documentation should be placed in a directory called “docs”. (The docs directory should not be placed inside of the utils directory.) Note, only the code in the package needs to be documented with Java doc comments; your test driver only needs regular style comments.