FileDocCategorySizeDatePackage
StringAlign.javaAPI DocExample2604Sun Feb 22 12:35:52 GMT 2004None

StringAlign

public class StringAlign extends Format
Bare-minimum String formatter (string aligner). XXX When 1.5 is common, change from ints to enum for alignment.

Fields Summary
public static final int
JUST_LEFT
public static final int
JUST_CENTRE
public static final int
JUST_CENTER
public static final int
JUST_RIGHT
Constant for right-justified Strings.
private int
just
Current justification
private int
maxChars
Current max length
Constructors Summary
public StringAlign(int maxChars, int just)
Construct a StringAlign formatter; length and alignment are passed to the Constructor instead of each format() call as the expected common use is in repetitive formatting e.g., page numbers.

param
nChars - the length of the output
param
just - one of JUST_LEFT, JUST_CENTRE or JUST_RIGHT


                                                       
	     
		switch(just) {
		case JUST_LEFT:
		case JUST_CENTRE:
		case JUST_RIGHT:
			this.just = just;
			break;
		default:
			throw new IllegalArgumentException("invalid justification arg.");
		}
		if (maxChars < 0) {
			throw new IllegalArgumentException("maxChars must be positive.");
		}
		this.maxChars = maxChars;
	
Methods Summary
public java.lang.StringBufferformat(java.lang.Object obj, java.lang.StringBuffer where, java.text.FieldPosition ignore)
Format a String.

param
input _ the string to be aligned.
parm
where - the StringBuffer to append it to.
param
ignore - a FieldPosition (may be null, not used but specified by the general contract of Format).


		String s = (String)obj;
		String wanted = s.substring(0, Math.min(s.length(), maxChars));

		// Get the spaces in the right place.
		switch (just) {
			case JUST_RIGHT:
				pad(where, maxChars - wanted.length());
				where.append(wanted);
				break;
			case JUST_CENTRE:
				int toAdd = maxChars - wanted.length();
				pad(where, toAdd/2);
				where.append(wanted);
				pad(where, toAdd - toAdd/2);
				break;
			case JUST_LEFT:
				where.append(wanted);
				pad(where, maxChars - wanted.length());
				break;
			}
		return where;
	
java.lang.Stringformat(java.lang.String s)
Convenience Routine

		return format(s, new StringBuffer(), null).toString();
	
protected final voidpad(java.lang.StringBuffer to, int howMany)

		for (int i=0; i<howMany; i++)
			to.append(' ");
	
public java.lang.ObjectparseObject(java.lang.String source, java.text.ParsePosition pos)
ParseObject is required, but not useful here.

		return source;