class RadioGroupFieldProvider extends SelectorFieldProvider<RadioGroupBaseDefinition> {

    @Override
    public RadioGroupBaseDefinition createFieldByType(TypeInfo typeInfo) {
        if (isSupported(typeInfo)) {
            String className = typeInfo.getClassName();
            if (Byte.class.getName().equals(className) ||
                    byte.class.getName().equals(className) ||
                    Short.class.getName().equals(className) ||
                    short.class.getName().equals(className) ||
                    Integer.class.getName().equals(className) ||
                    int.class.getName().equals(className) ||
                    Long.class.getName().equals(className) ||
                    long.class.getName().equals(className) ||
                    BigInteger.class.getName().equals(className)) {
                return new IntegerRadioGroupFieldDefinition();
            }
            if (Float.class.getName().equals(className) ||
                    float.class.getName().equals(className) ||
                    Double.class.getName().equals(className) ||
                    double.class.getName().equals(className) ||
                    BigDecimal.class.getName().equals(className)) {
                return new DecimalRadioGroupFieldDefinition();
            }
            if (Character.class.getName().equals(className) ||
                    char.class.getName().equals(className)) {
                return new CharacterRadioGroupFieldDefinition();
            }
            return getDefaultField();
        }
        return null;
    }

}