summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/ioutils/format/NumberDirective.java
blob: 28e61ea7b934d7ec38d1f5ebc73adb525b55b1fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package bjc.utils.ioutils.format;

import java.util.IllegalFormatConversionException;
import java.util.regex.Matcher;

import bjc.utils.esodata.Tape;

class NumberDirective extends GeneralNumberDirective {

	public NumberDirective(int argidx, int radix) {
		this.argidx = argidx;
		this.radix = radix;
	}

	private int	argidx;
	private int	radix;

	@Override
	public void format(StringBuffer sb, Object item, CLModifiers mods, CLParameters params, Tape<Object> tParams,
			Matcher dirMatcher, CLFormatter fmt) {
		CLFormatter.checkItem(item, 'B');

		if(!(item instanceof Number)) {
			throw new IllegalFormatConversionException('B', item.getClass());
		}

		long val = ((Number) item).longValue();

		handleNumberDirective(sb, mods, params, argidx, val, radix);

		tParams.right();
	}

}