MethodUtil { public static String determineAccessorName(@Nonnull final AccessorPrefix prefix, @Nonnull final String fieldName) { Check.notNull(prefix, "prefix"); Check.notEmpty(fieldName, "fieldName"); final Matcher m = PATTERN.matcher(fieldName); Check.stateIsTrue(m.find(), "passed field name '%s' is not applicable", fieldName); final String name = m.group(); return prefix.getPrefix() + name.substring(0, 1).toUpperCase() + name.substring(1); } private  MethodUtil(); static String determineAccessorName(@Nonnull final AccessorPrefix prefix, @Nonnull final String fieldName); static String determineMutatorName(@Nonnull final String fieldName);  }
@Test(expected = IllegalEmptyArgumentException.class) public void determineAccessorName_isEmpty() { MethodUtil.determineAccessorName(AccessorPrefix.GET, ""); }
@Test(expected = IllegalNullArgumentException.class) public void determineAccessorName_isNull() { MethodUtil.determineAccessorName(AccessorPrefix.GET, null); }
@Test public void determineAccessorName_successful() { assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "field")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "_field")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__field")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__-field")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__-??field")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__-08978field")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "_field_")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__field__")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__-field-__")); assertEquals("getField", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__-??field??-__")); assertEquals("getField123", MethodUtil.determineAccessorName(AccessorPrefix.GET, "__-08978field123-___")); }
@Test(expected = IllegalStateOfArgumentException.class) public void determineAccessorName_wrongFieldName() { MethodUtil.determineAccessorName(AccessorPrefix.GET, " "); }