1 package com.sharkysoft.printf;
2
3 import com.sharkysoft.printf.engine.NumberFormatter;
4
5 abstract class Formatter_Number extends Formatter_Field
6 {
7
8 final boolean mzVariablePrecision;
9
10 protected Formatter_Number(final FormatSpecifier ipPfs, final NumberFormatter ipNf)
11 {
12 super(ipPfs, ipNf);
13 mzVariablePrecision = ipPfs.mnPrecision == FormatSpecifier.PRECISION_ARGUMENT;
14 }
15
16 final int argsRequired()
17 {
18 return 1 + (mzVariablePrecision ? 1 : 0) + (mzVariableWidth ? 1 : 0);
19 }
20
21 Class[] argTypes() {
22 if (!mzVariableWidth) {
23 if (!mzVariablePrecision) {
24 return new Class[]{Number.class};
25 } else {
26 return new Class[]{Number.class, Number.class};
27 }
28 } else {
29 if (!mzVariablePrecision) {
30 return new Class[]{Number.class, Number.class};
31 } else {
32 return new Class[]{Number.class, Number.class, Number.class};
33 }
34 }
35 }
36
37 }
38