@Override protected Slot slotFromNonUnderscoredChar(char character) { if (!Character.isDigit(character)) { rule = Slot.RULE_INPUT_MOVES_INPUT | Slot.RULE_INPUT_REPLACE; final Slot hardcoded = PredefinedSlots.hardcodedSlot(character); return character == PLUS_SIGN ? hardcoded : hardcoded.withTags(Slot.TAG_DECORATION); } final Slot slot = new Slot(rule, character, SlotValidatorSet.setOf(new SlotValidators.DigitValidator())); rule = Slot.RULE_INPUT_MOVES_INPUT; return slot; } }
/** * Inserts slots at the and of the mask and mark newly inserted slot as 'extension' (extended * tail of non-terminated mask). 'Extended' slots will be removed when their values are cleared */ private void extendTail(int count) { if (terminated || count < 1) { return; } while (--count >= 0) { // create a copy of the last slot and make it the last one final Slot inserted = slots.insertSlotAt(slots.size(), slots.getLastSlot()); inserted.setValue(null); inserted.withTags(TAG_EXTENSION); } }
@Test public void toUnformattedString() { mask = new MaskImpl(new Slot[]{ PredefinedSlots.hardcodedSlot('+'), PredefinedSlots.any(), PredefinedSlots.hardcodedSlot('-').withTags(Slot.TAG_DECORATION), PredefinedSlots.any(), PredefinedSlots.any() }, true); assertEquals("+", mask.toUnformattedString()); mask.setHideHardcodedHead(true); assertEquals("", mask.toUnformattedString()); mask.setShowingEmptySlots(true); assertEquals("+___", mask.toUnformattedString()); mask.insertFront("123"); assertEquals("+123", mask.toUnformattedString()); }