package org.kvj.vimtouch.ext.impl.read; import org.kvj.vimtouch.ext.FieldReader; import org.kvj.vimtouch.ext.FieldReaderException; import org.kvj.vimtouch.ext.IncomingTransfer; import org.kvj.vimtouch.ext.Transferable.FieldType; public abstract class NumberFieldReader implements FieldReader<Number> { @Override public FieldType getType() { return FieldType.Number; } @Override public Number read(IncomingTransfer t) throws FieldReaderException { String value = t.nextPiece(); try { return Long.parseLong(value, 10); } catch (Exception e) { } throw new FieldReaderException("Invalid number: " + value); } }