Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
NumericPrompt.java
Go to the documentation of this file.
1 package org.bukkit.conversations;
2 
3 import org.apache.commons.lang.math.NumberUtils;
4 
8 public abstract class NumericPrompt extends ValidatingPrompt{
9  public NumericPrompt() {
10  super();
11  }
12 
13  @Override
14  protected boolean isInputValid(ConversationContext context, String input) {
15  return NumberUtils.isNumber(input) && isNumberValid(context, NumberUtils.createNumber(input));
16  }
17 
25  protected boolean isNumberValid(ConversationContext context, Number input) {
26  return true;
27  }
28 
29  @Override
30  protected Prompt acceptValidatedInput(ConversationContext context, String input) {
31  try
32  {
33  return acceptValidatedInput(context, NumberUtils.createNumber(input));
34  } catch (NumberFormatException e) {
35  return acceptValidatedInput(context, NumberUtils.INTEGER_ZERO);
36  }
37  }
38 
45  protected abstract Prompt acceptValidatedInput(ConversationContext context, Number input);
46 
47  @Override
48  protected String getFailedValidationText(ConversationContext context, String invalidInput) {
49  if (NumberUtils.isNumber(invalidInput)) {
50  return getFailedValidationText(context, NumberUtils.createNumber(invalidInput));
51  } else {
52  return getInputNotNumericText(context, invalidInput);
53  }
54  }
55 
62  protected String getInputNotNumericText(ConversationContext context, String invalidInput) {
63  return null;
64  }
65 
72  protected String getFailedValidationText(ConversationContext context, Number invalidInput) {
73  return null;
74  }
75 }