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