Java 类org.springframework.beans.propertyeditors.CustomBooleanEditor 实例源码

项目:helium    文件:TascaTramitacioController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:strqlbuilder    文件:DefaultPojoFactory.java   
@Override
   public String getValueAsText(Object value) {
if (value == null) {
    return "";
}
if (value.getClass().isArray()) {
    Object[] arr = ((Object[]) value);
    if (arr.length == 0) {
    return "";
    }
    // Este caso se produce cuando intentamos obtener un objeto primitivo (String, Long...)
    // a partir de la segunda página en base de datos Oracle (arr[1] es numrow)
    value = arr[0];
}
String result;
if (clazz.isAssignableFrom(Boolean.class) && value != null) {
    CustomBooleanEditor editor = getBooleanEditor();
    editor.setAsText(String.valueOf(value));
    result = editor.getAsText();
} else {
    result = String.valueOf(value);
}

return result;
   }
项目:helium    文件:ExpedientConsultaInformeController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowNestedPaths(false);
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientInformeController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowNestedPaths(false);
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientDocumentController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientTokenV3Controller.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientInformacioController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientDadaController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientConsultaLlistatController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowNestedPaths(false);
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientMassivaController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            byte[].class,
            new ByteArrayMultipartFileEditor());
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
}
项目:helium    文件:TascaFormController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
项目:helium    文件:ExpedientIniciarPasFormController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
项目:helium    文件:ExpedientConsultaDissenyController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.setAutoGrowNestedPaths(false);
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(true));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:CommonRegistreController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
项目:helium    文件:ExpedientDadaModificarController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
项目:openmrs-module-legacyui    文件:ObsFormController.java   
/**
 * Allows for Integers to be used as values in input tags. Normally, only strings and lists are
 * expected
 *
 * @see org.springframework.web.servlet.mvc.BaseCommandController#initBinder(javax.servlet.http.HttpServletRequest,
 *      org.springframework.web.bind.ServletRequestDataBinder)
 */
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
    super.initBinder(request, binder);

    binder.registerCustomEditor(java.lang.Integer.class, new CustomNumberEditor(java.lang.Integer.class, true));
    binder.registerCustomEditor(java.util.Date.class, new CustomDateEditor(Context.getDateFormat(), true));
    binder.registerCustomEditor(java.util.Date.class, "valueDatetime", new CustomDateEditor(Context.getDateTimeFormat(),
            true));
    binder.registerCustomEditor(java.util.Date.class, "valueTime", new CustomDateEditor(Context.getTimeFormat(), true));
    binder.registerCustomEditor(Location.class, new LocationEditor());
    binder.registerCustomEditor(java.lang.Boolean.class, new CustomBooleanEditor(true)); //allow for an empty boolean value
    binder.registerCustomEditor(Person.class, new PersonEditor());
    binder.registerCustomEditor(Order.class, new OrderEditor());
    binder.registerCustomEditor(Concept.class, new ConceptEditor());
    binder.registerCustomEditor(Location.class, new LocationEditor());
    binder.registerCustomEditor(Encounter.class, new EncounterEditor());
    binder.registerCustomEditor(Drug.class, new DrugEditor());
}
项目:starter-kit-spring-maven    文件:AbstractDataTablesController.java   
/**
 * Annotation that identifies methods which initialize the {@link org.springframework.web.bind.WebDataBinder} which will be
 * used for populating command and form object arguments of annotated handler methods.
 * 
 * Registers custom editors
 * 
 * Handles the date format from the form, using the application date format from application settings.
 * 
 * @param binder
 * @param locale
 */
@InitBinder
public void initBinder(WebDataBinder binder, Locale locale) {

    binder.setIgnoreInvalidFields(true);
    binder.setIgnoreUnknownFields(true);

    String applicationDateFormatString = appSettings.getApplicationDateFormat();
    SimpleDateFormat dateFormat = new SimpleDateFormat(applicationDateFormatString);
    dateFormat.setLenient(false);

    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    binder.registerCustomEditor(Integer.class, new CustomNumberEditor(Integer.class, true));
    binder.registerCustomEditor(Boolean.class, new CustomBooleanEditor(true));
    binder.registerCustomEditor(XMLGregorianCalendar.class, new CustomXMLGregorianCalendarEditor(dateFormat, true));
    binder.registerCustomEditor(DateTime.class, new CustomDateTimeEditor(applicationDateFormatString, true));
    binder.registerCustomEditor(String.class, new CustomObjectEditor());

}
项目:helium    文件:ExpedientTerminiV3Controller.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            byte[].class,
            new ByteArrayMultipartFileEditor());
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:MassivaExpedientController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            byte[].class,
            new ByteArrayMultipartFileEditor());
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ExpedientInicioPasFormController.java   
@InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(
                Long.class,
                new CustomNumberEditor(Long.class, true));
        binder.registerCustomEditor(
                Double.class,
                new CustomNumberEditor(Double.class, true));
        binder.registerCustomEditor(
                BigDecimal.class,
                new CustomNumberEditor(
                        BigDecimal.class,
                        new DecimalFormat("#,##0.00"),
                        true));
        binder.registerCustomEditor(
                Boolean.class,
//              new CustomBooleanEditor(false));
                new CustomBooleanEditor(true));
        binder.registerCustomEditor(
                Date.class,
                new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
//      binder.registerCustomEditor(
//              TerminiDto.class,
//              new TerminiTypeEditorHelper());
        binder.registerCustomEditor(
                Object.class,
                new ObjectTypeEditorHelper());
    }
项目:helium    文件:ExpedientInicioPasTitolController.java   
@InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(
                Long.class,
                new CustomNumberEditor(Long.class, true));
        binder.registerCustomEditor(
                Double.class,
                new CustomNumberEditor(Double.class, true));
        binder.registerCustomEditor(
                BigDecimal.class,
                new CustomNumberEditor(
                        BigDecimal.class,
                        new DecimalFormat("#,##0.00"),
                        true));
        binder.registerCustomEditor(
                Boolean.class,
//              new CustomBooleanEditor(false));
                new CustomBooleanEditor(true));
        binder.registerCustomEditor(
                Date.class,
                new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
//      binder.registerCustomEditor(
//              TerminiDto.class,
//              new TerminiTypeEditorHelper());
        binder.registerCustomEditor(
                Object.class,
                new ObjectTypeEditorHelper());
    }
项目:helium    文件:ExpedientIniciController.java   
@InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(
                Long.class,
                new CustomNumberEditor(Long.class, true));
        binder.registerCustomEditor(
                Double.class,
                new CustomNumberEditor(Double.class, true));
        binder.registerCustomEditor(
                BigDecimal.class,
                new CustomNumberEditor(
                        BigDecimal.class,
                        new DecimalFormat("#,##0.00"),
                        true));
        binder.registerCustomEditor(
                Boolean.class,
//              new CustomBooleanEditor(false));
                new CustomBooleanEditor(true));
        binder.registerCustomEditor(
                Date.class,
                new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
//      binder.registerCustomEditor(
//              TerminiDto.class,
//              new TerminiTypeEditorHelper());
        binder.registerCustomEditor(
                Object.class,
                new ObjectTypeEditorHelper());
    }
项目:helium    文件:ExpedientV3Controller.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            byte[].class,
            new ByteArrayMultipartFileEditor());
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Long.class,
            new CustomNumberEditor(Long.class, true));
    binder.registerCustomEditor(
            Double.class,
            new CustomNumberEditor(Double.class, true));
    binder.registerCustomEditor(
            BigDecimal.class,
            new CustomNumberEditor(
                    BigDecimal.class,
                    new DecimalFormat("#,##0.00"),
                    true));
    binder.registerCustomEditor(
            Boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Object.class,
            new ObjectTypeEditorHelper());
}
项目:helium    文件:ReproController.java   
@InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(
                Long.class,
                new CustomNumberEditor(Long.class, true));
        binder.registerCustomEditor(
                Double.class,
                new CustomNumberEditor(Double.class, true));
        binder.registerCustomEditor(
                BigDecimal.class,
                new CustomNumberEditor(
                        BigDecimal.class,
                        new DecimalFormat("#,##0.00"),
                        true));
        binder.registerCustomEditor(
                Boolean.class,
//              new CustomBooleanEditor(false));
                new CustomBooleanEditor(true));
        binder.registerCustomEditor(
                Date.class,
                new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
//      binder.registerCustomEditor(
//              TerminiDto.class,
//              new TerminiTypeEditorHelper());
        binder.registerCustomEditor(
                Object.class,
                new ObjectTypeEditorHelper());
    }
项目:helium    文件:PerfilController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
项目:helium    文件:PermisController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Permis.class,
            new PermisTypeEditor());
}
项目:helium    文件:PersonaController.java   
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(
            boolean.class,
            new CustomBooleanEditor(false));
    binder.registerCustomEditor(
            Date.class,
            new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
    binder.registerCustomEditor(
            Permis.class,
            new PermisTypeEditor());
}
项目:herd    文件:StorageHelper.java   
/**
 * Gets attribute value by name from the storage entity and returns it as a boolean. Most types of boolean strings are supported (e.g. true/false, on/off,
 * yes/no, etc.).
 *
 * @param attributeName the attribute name (case insensitive)
 * @param storageEntity the storage entity
 * @param attributeRequired specifies whether the attribute is mandatory (i.e. whether it has a value or not).
 * @param attributeValueRequiredIfExists specifies whether the attribute value is mandatory (i.e. the attribute must exist and its value must also contain a
 * value).
 *
 * @return the attribute value from the attribute with the attribute name as a boolean. If no value is configured and the attribute isn't required, then
 *         false is returned.
 * @throws IllegalStateException if an invalid storage attribute boolean value was configured.
 */
public boolean getBooleanStorageAttributeValueByName(String attributeName, StorageEntity storageEntity, boolean attributeRequired,
    boolean attributeValueRequiredIfExists) throws IllegalStateException
{
    // Get the boolean string value.
    // The required flag is being passed so an exception will be thrown if it is required and isn't present.
    String booleanStringValue = getStorageAttributeValueByName(attributeName, storageEntity, attributeRequired, attributeValueRequiredIfExists);

    // If it isn't required, then treat a blank value as "false".
    if (StringUtils.isBlank(booleanStringValue))
    {
        return false;
    }

    // Use custom boolean editor without allowed empty strings to convert the value of the argument to a boolean value.
    CustomBooleanEditor customBooleanEditor = new CustomBooleanEditor(attributeRequired);
    try
    {
        customBooleanEditor.setAsText(booleanStringValue);
    }
    catch (IllegalArgumentException e)
    {
        // This will produce a 500 HTTP status code error. If storage attributes are able to be updated by a REST invocation in the future,
        // we might want to consider making this a 400 instead since the user has the ability to fix the issue on their own.
        throw new IllegalStateException(String
            .format("Attribute \"%s\" for \"%s\" storage has an invalid boolean value: \"%s\".", attributeName, storageEntity.getName(),
                booleanStringValue), e);
    }

    // Return the boolean value.
    return (Boolean) customBooleanEditor.getValue();
}
项目:herd    文件:ConfigurationHelper.java   
/**
 * Gets a property value as a boolean.
 *
 * @param configurationValue the boolean configuration value
 * @param environment the environment containing the property
 *
 * @return the boolean property value
 */
public Boolean getBooleanProperty(ConfigurationValue configurationValue, Environment environment)
{
    String booleanStringValue = getProperty(configurationValue, environment);

    // Use custom boolean editor without allowed empty strings to convert the value of the argument to a boolean value.
    CustomBooleanEditor customBooleanEditor = new CustomBooleanEditor(false);
    try
    {
        customBooleanEditor.setAsText(booleanStringValue);
    }
    catch (IllegalArgumentException e)
    {
        // Create an invalid state exception.
        IllegalStateException illegalStateException = new IllegalStateException(
            String.format("Configuration \"%s\" has an invalid boolean value: \"%s\".", configurationValue.getKey(), booleanStringValue), e);

        // Log the exception.
        LOGGER.error(illegalStateException.getMessage(), illegalStateException);

        // This will produce a 500 HTTP status code error.
        throw illegalStateException;
    }

    // Return the boolean value.
    return (Boolean) customBooleanEditor.getValue();
}
项目:herd    文件:ArgumentParser.java   
/**
 * Retrieves the argument value, if any, as a String object and converts it to a boolean value.
 *
 * @param option the option that we want to query for
 * @param defaultValue the default value to return if option is not set or missing an argument value
 *
 * @return the value of the argument converted to a boolean value or default value when the option is not set or missing an argument value
 * @throws ParseException if the value of the argument is an invalid boolean value
 */
@SuppressFBWarnings(value = "UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR", justification = "This is a false positive. A null check is present.")
public Boolean getStringValueAsBoolean(Option option, Boolean defaultValue) throws ParseException
{
    Boolean result;

    ensureCommandLineNotNull();
    String stringValue = getStringValue(option);

    if (StringUtils.isNotBlank(stringValue))
    {
        // Use custom boolean editor without allowed empty strings to convert the value of the argument to a boolean value.
        CustomBooleanEditor customBooleanEditor = new CustomBooleanEditor(false);
        try
        {
            customBooleanEditor.setAsText(stringValue);
        }
        catch (IllegalArgumentException e)
        {
            ParseException parseException = new ParseException(e.getMessage());
            parseException.initCause(e);
            throw parseException;
        }
        result = (Boolean) customBooleanEditor.getValue();
    }
    else
    {
        result = defaultValue;
    }

    return result;
}
项目:starter-kit-spring-maven    文件:CoreControllerAdvice.java   
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
    binder.setIgnoreInvalidFields(true);
    binder.setIgnoreUnknownFields(true);

    String applicationDateFormatString = appSettings.getApplicationDateFormat();
    SimpleDateFormat dateFormat = new SimpleDateFormat(applicationDateFormatString);
    dateFormat.setLenient(false);
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    binder.registerCustomEditor(Integer.class, new CustomNumberEditor(Integer.class, true));
    binder.registerCustomEditor(Boolean.class, new CustomBooleanEditor(true));
    binder.registerCustomEditor(XMLGregorianCalendar.class, new CustomXMLGregorianCalendarEditor(dateFormat, true));
    binder.registerCustomEditor(DateTime.class, new CustomDateTimeEditor(applicationDateFormatString, true));
    binder.registerCustomEditor(BigDecimal.class, new CustomBigDecimalEditor(2, true));
}
项目:starter-kit-spring-maven    文件:AbstractTriggerController.java   
@InitBinder
public void initBinder(WebDataBinder binder, Locale locale) {
    binder.setIgnoreInvalidFields(true);
    binder.setIgnoreUnknownFields(true);

    binder.registerCustomEditor(Double.class, new MyCustomNumberEditor(Double.class));
    binder.registerCustomEditor(Integer.class, new MyCustomNumberEditor(Integer.class));
    binder.registerCustomEditor(BigDecimal.class, new MyCustomNumberEditor(BigDecimal.class));
    binder.registerCustomEditor(Boolean.class, new CustomBooleanEditor(true));

    binder.registerCustomEditor(String.class, new CustomObjectEditor());
}
项目:webcurator    文件:TreeToolController.java   
@Override
  public void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
// Determine the necessary formats.
      NumberFormat nf = NumberFormat.getInstance(request.getLocale());

      // Register the binders.
      binder.registerCustomEditor(Long.class, new CustomNumberEditor(Long.class, nf, true));
      binder.registerCustomEditor(Boolean.class, "propagateDelete", new CustomBooleanEditor(true));

      // to actually be able to convert Multipart instance to byte[]
      // we have to register a custom editor (in this case the
      // ByteArrayMultipartEditor
      binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
      // now Spring knows how to handle multipart object and convert them
  }
项目:gen-sbconfigurator    文件:StringParser.java   
/**
 * Set the default <code>PropertyEditor</code> instances, which are used to
 * parse a string, even without any known type.
 */
protected void setDefaultEditors() {
    editors.put(Boolean.class, new CustomBooleanEditor(true));
    editors.put(Integer.class, new CustomNumberEditor(Integer.class, true));
    editors.put(Long.class, new CustomNumberEditor(Long.class, true));
    editors.put(Double.class, new CustomNumberEditor(Double.class, true));
    editors.put(BigInteger.class,
            new CustomNumberEditor(BigInteger.class, true));
    editors.put(BigDecimal.class,
            new CustomNumberEditor(BigDecimal.class, true));
    editors.put(Date.class, new CustomDateEditor(getDateFormat(), true));
}
项目:lams    文件:PropertyEditorRegistrySupport.java   
/**
 * Actually register the default editors for this registry instance.
 */
private void createDefaultEditors() {
    this.defaultEditors = new HashMap<Class<?>, PropertyEditor>(64);

    // Simple editors, without parameterization capabilities.
    // The JDK does not contain a default editor for any of these target types.
    this.defaultEditors.put(Charset.class, new CharsetEditor());
    this.defaultEditors.put(Class.class, new ClassEditor());
    this.defaultEditors.put(Class[].class, new ClassArrayEditor());
    this.defaultEditors.put(Currency.class, new CurrencyEditor());
    this.defaultEditors.put(File.class, new FileEditor());
    this.defaultEditors.put(InputStream.class, new InputStreamEditor());
    this.defaultEditors.put(InputSource.class, new InputSourceEditor());
    this.defaultEditors.put(Locale.class, new LocaleEditor());
    this.defaultEditors.put(Pattern.class, new PatternEditor());
    this.defaultEditors.put(Properties.class, new PropertiesEditor());
    this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor());
    this.defaultEditors.put(TimeZone.class, new TimeZoneEditor());
    this.defaultEditors.put(URI.class, new URIEditor());
    this.defaultEditors.put(URL.class, new URLEditor());
    this.defaultEditors.put(UUID.class, new UUIDEditor());
    if (zoneIdClass != null) {
        this.defaultEditors.put(zoneIdClass, new ZoneIdEditor());
    }

    // Default instances of collection editors.
    // Can be overridden by registering custom instances of those as custom editors.
    this.defaultEditors.put(Collection.class, new CustomCollectionEditor(Collection.class));
    this.defaultEditors.put(Set.class, new CustomCollectionEditor(Set.class));
    this.defaultEditors.put(SortedSet.class, new CustomCollectionEditor(SortedSet.class));
    this.defaultEditors.put(List.class, new CustomCollectionEditor(List.class));
    this.defaultEditors.put(SortedMap.class, new CustomMapEditor(SortedMap.class));

    // Default editors for primitive arrays.
    this.defaultEditors.put(byte[].class, new ByteArrayPropertyEditor());
    this.defaultEditors.put(char[].class, new CharArrayPropertyEditor());

    // The JDK does not contain a default editor for char!
    this.defaultEditors.put(char.class, new CharacterEditor(false));
    this.defaultEditors.put(Character.class, new CharacterEditor(true));

    // Spring's CustomBooleanEditor accepts more flag values than the JDK's default editor.
    this.defaultEditors.put(boolean.class, new CustomBooleanEditor(false));
    this.defaultEditors.put(Boolean.class, new CustomBooleanEditor(true));

    // The JDK does not contain default editors for number wrapper types!
    // Override JDK primitive number editors with our own CustomNumberEditor.
    this.defaultEditors.put(byte.class, new CustomNumberEditor(Byte.class, false));
    this.defaultEditors.put(Byte.class, new CustomNumberEditor(Byte.class, true));
    this.defaultEditors.put(short.class, new CustomNumberEditor(Short.class, false));
    this.defaultEditors.put(Short.class, new CustomNumberEditor(Short.class, true));
    this.defaultEditors.put(int.class, new CustomNumberEditor(Integer.class, false));
    this.defaultEditors.put(Integer.class, new CustomNumberEditor(Integer.class, true));
    this.defaultEditors.put(long.class, new CustomNumberEditor(Long.class, false));
    this.defaultEditors.put(Long.class, new CustomNumberEditor(Long.class, true));
    this.defaultEditors.put(float.class, new CustomNumberEditor(Float.class, false));
    this.defaultEditors.put(Float.class, new CustomNumberEditor(Float.class, true));
    this.defaultEditors.put(double.class, new CustomNumberEditor(Double.class, false));
    this.defaultEditors.put(Double.class, new CustomNumberEditor(Double.class, true));
    this.defaultEditors.put(BigDecimal.class, new CustomNumberEditor(BigDecimal.class, true));
    this.defaultEditors.put(BigInteger.class, new CustomNumberEditor(BigInteger.class, true));

    // Only register config value editors if explicitly requested.
    if (this.configValueEditorsActive) {
        StringArrayPropertyEditor sae = new StringArrayPropertyEditor();
        this.defaultEditors.put(String[].class, sae);
        this.defaultEditors.put(short[].class, sae);
        this.defaultEditors.put(int[].class, sae);
        this.defaultEditors.put(long[].class, sae);
    }
}
项目:spring4-understanding    文件:PropertyEditorRegistrySupport.java   
/**
 * Actually register the default editors for this registry instance.
 */
private void createDefaultEditors() {
    this.defaultEditors = new HashMap<Class<?>, PropertyEditor>(64);

    // Simple editors, without parameterization capabilities.
    // The JDK does not contain a default editor for any of these target types.
    this.defaultEditors.put(Charset.class, new CharsetEditor());
    this.defaultEditors.put(Class.class, new ClassEditor());
    this.defaultEditors.put(Class[].class, new ClassArrayEditor());
    this.defaultEditors.put(Currency.class, new CurrencyEditor());
    this.defaultEditors.put(File.class, new FileEditor());
    this.defaultEditors.put(InputStream.class, new InputStreamEditor());
    this.defaultEditors.put(InputSource.class, new InputSourceEditor());
    this.defaultEditors.put(Locale.class, new LocaleEditor());
    this.defaultEditors.put(Pattern.class, new PatternEditor());
    this.defaultEditors.put(Properties.class, new PropertiesEditor());
    this.defaultEditors.put(Reader.class, new ReaderEditor());
    this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor());
    this.defaultEditors.put(TimeZone.class, new TimeZoneEditor());
    this.defaultEditors.put(URI.class, new URIEditor());
    this.defaultEditors.put(URL.class, new URLEditor());
    this.defaultEditors.put(UUID.class, new UUIDEditor());
    if (zoneIdClass != null) {
        this.defaultEditors.put(zoneIdClass, new ZoneIdEditor());
    }

    // Default instances of collection editors.
    // Can be overridden by registering custom instances of those as custom editors.
    this.defaultEditors.put(Collection.class, new CustomCollectionEditor(Collection.class));
    this.defaultEditors.put(Set.class, new CustomCollectionEditor(Set.class));
    this.defaultEditors.put(SortedSet.class, new CustomCollectionEditor(SortedSet.class));
    this.defaultEditors.put(List.class, new CustomCollectionEditor(List.class));
    this.defaultEditors.put(SortedMap.class, new CustomMapEditor(SortedMap.class));

    // Default editors for primitive arrays.
    this.defaultEditors.put(byte[].class, new ByteArrayPropertyEditor());
    this.defaultEditors.put(char[].class, new CharArrayPropertyEditor());

    // The JDK does not contain a default editor for char!
    this.defaultEditors.put(char.class, new CharacterEditor(false));
    this.defaultEditors.put(Character.class, new CharacterEditor(true));

    // Spring's CustomBooleanEditor accepts more flag values than the JDK's default editor.
    this.defaultEditors.put(boolean.class, new CustomBooleanEditor(false));
    this.defaultEditors.put(Boolean.class, new CustomBooleanEditor(true));

    // The JDK does not contain default editors for number wrapper types!
    // Override JDK primitive number editors with our own CustomNumberEditor.
    this.defaultEditors.put(byte.class, new CustomNumberEditor(Byte.class, false));
    this.defaultEditors.put(Byte.class, new CustomNumberEditor(Byte.class, true));
    this.defaultEditors.put(short.class, new CustomNumberEditor(Short.class, false));
    this.defaultEditors.put(Short.class, new CustomNumberEditor(Short.class, true));
    this.defaultEditors.put(int.class, new CustomNumberEditor(Integer.class, false));
    this.defaultEditors.put(Integer.class, new CustomNumberEditor(Integer.class, true));
    this.defaultEditors.put(long.class, new CustomNumberEditor(Long.class, false));
    this.defaultEditors.put(Long.class, new CustomNumberEditor(Long.class, true));
    this.defaultEditors.put(float.class, new CustomNumberEditor(Float.class, false));
    this.defaultEditors.put(Float.class, new CustomNumberEditor(Float.class, true));
    this.defaultEditors.put(double.class, new CustomNumberEditor(Double.class, false));
    this.defaultEditors.put(Double.class, new CustomNumberEditor(Double.class, true));
    this.defaultEditors.put(BigDecimal.class, new CustomNumberEditor(BigDecimal.class, true));
    this.defaultEditors.put(BigInteger.class, new CustomNumberEditor(BigInteger.class, true));

    // Only register config value editors if explicitly requested.
    if (this.configValueEditorsActive) {
        StringArrayPropertyEditor sae = new StringArrayPropertyEditor();
        this.defaultEditors.put(String[].class, sae);
        this.defaultEditors.put(short[].class, sae);
        this.defaultEditors.put(int[].class, sae);
        this.defaultEditors.put(long[].class, sae);
    }
}
项目:leopard    文件:XParamUtil.java   
public static boolean isFalse(String value) {
    return CustomBooleanEditor.VALUE_FALSE.equalsIgnoreCase(value)//
            || CustomBooleanEditor.VALUE_NO.equalsIgnoreCase(value)//
            || CustomBooleanEditor.VALUE_0.equals(value)//
            || CustomBooleanEditor.VALUE_OFF.equalsIgnoreCase(value);
}
项目:leopard    文件:XParamUtil.java   
public static boolean isTrue(String value) {
    return CustomBooleanEditor.VALUE_TRUE.equalsIgnoreCase(value)//
            || CustomBooleanEditor.VALUE_YES.equalsIgnoreCase(value)//
            || CustomBooleanEditor.VALUE_1.equals(value)//
            || CustomBooleanEditor.VALUE_ON.equalsIgnoreCase(value);
}
项目:spring    文件:PropertyEditorRegistrySupport.java   
/**
 * Actually register the default editors for this registry instance.
 */
private void createDefaultEditors() {
    this.defaultEditors = new HashMap<Class<?>, PropertyEditor>(64);

    // Simple editors, without parameterization capabilities.
    // The JDK does not contain a default editor for any of these target types.
    this.defaultEditors.put(Charset.class, new CharsetEditor());
    this.defaultEditors.put(Class.class, new ClassEditor());
    this.defaultEditors.put(Class[].class, new ClassArrayEditor());
    this.defaultEditors.put(Currency.class, new CurrencyEditor());
    this.defaultEditors.put(File.class, new FileEditor());
    this.defaultEditors.put(InputStream.class, new InputStreamEditor());
    this.defaultEditors.put(InputSource.class, new InputSourceEditor());
    this.defaultEditors.put(Locale.class, new LocaleEditor());
    this.defaultEditors.put(Pattern.class, new PatternEditor());
    this.defaultEditors.put(Properties.class, new PropertiesEditor());
    this.defaultEditors.put(Reader.class, new ReaderEditor());
    this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor());
    this.defaultEditors.put(TimeZone.class, new TimeZoneEditor());
    this.defaultEditors.put(URI.class, new URIEditor());
    this.defaultEditors.put(URL.class, new URLEditor());
    this.defaultEditors.put(UUID.class, new UUIDEditor());
    if (zoneIdClass != null) {
        this.defaultEditors.put(zoneIdClass, new ZoneIdEditor());
    }

    // Default instances of collection editors.
    // Can be overridden by registering custom instances of those as custom editors.
    this.defaultEditors.put(Collection.class, new CustomCollectionEditor(Collection.class));
    this.defaultEditors.put(Set.class, new CustomCollectionEditor(Set.class));
    this.defaultEditors.put(SortedSet.class, new CustomCollectionEditor(SortedSet.class));
    this.defaultEditors.put(List.class, new CustomCollectionEditor(List.class));
    this.defaultEditors.put(SortedMap.class, new CustomMapEditor(SortedMap.class));

    // Default editors for primitive arrays.
    this.defaultEditors.put(byte[].class, new ByteArrayPropertyEditor());
    this.defaultEditors.put(char[].class, new CharArrayPropertyEditor());

    // The JDK does not contain a default editor for char!
    this.defaultEditors.put(char.class, new CharacterEditor(false));
    this.defaultEditors.put(Character.class, new CharacterEditor(true));

    // Spring's CustomBooleanEditor accepts more flag values than the JDK's default editor.
    this.defaultEditors.put(boolean.class, new CustomBooleanEditor(false));
    this.defaultEditors.put(Boolean.class, new CustomBooleanEditor(true));

    // The JDK does not contain default editors for number wrapper types!
    // Override JDK primitive number editors with our own CustomNumberEditor.
    this.defaultEditors.put(byte.class, new CustomNumberEditor(Byte.class, false));
    this.defaultEditors.put(Byte.class, new CustomNumberEditor(Byte.class, true));
    this.defaultEditors.put(short.class, new CustomNumberEditor(Short.class, false));
    this.defaultEditors.put(Short.class, new CustomNumberEditor(Short.class, true));
    this.defaultEditors.put(int.class, new CustomNumberEditor(Integer.class, false));
    this.defaultEditors.put(Integer.class, new CustomNumberEditor(Integer.class, true));
    this.defaultEditors.put(long.class, new CustomNumberEditor(Long.class, false));
    this.defaultEditors.put(Long.class, new CustomNumberEditor(Long.class, true));
    this.defaultEditors.put(float.class, new CustomNumberEditor(Float.class, false));
    this.defaultEditors.put(Float.class, new CustomNumberEditor(Float.class, true));
    this.defaultEditors.put(double.class, new CustomNumberEditor(Double.class, false));
    this.defaultEditors.put(Double.class, new CustomNumberEditor(Double.class, true));
    this.defaultEditors.put(BigDecimal.class, new CustomNumberEditor(BigDecimal.class, true));
    this.defaultEditors.put(BigInteger.class, new CustomNumberEditor(BigInteger.class, true));

    // Only register config value editors if explicitly requested.
    if (this.configValueEditorsActive) {
        StringArrayPropertyEditor sae = new StringArrayPropertyEditor();
        this.defaultEditors.put(String[].class, sae);
        this.defaultEditors.put(short[].class, sae);
        this.defaultEditors.put(int[].class, sae);
        this.defaultEditors.put(long[].class, sae);
    }
}
项目:class-guard    文件:PropertyEditorRegistrySupport.java   
/**
 * Actually register the default editors for this registry instance.
 */
private void createDefaultEditors() {
    this.defaultEditors = new HashMap<Class<?>, PropertyEditor>(64);

    // Simple editors, without parameterization capabilities.
    // The JDK does not contain a default editor for any of these target types.
    this.defaultEditors.put(Charset.class, new CharsetEditor());
    this.defaultEditors.put(Class.class, new ClassEditor());
    this.defaultEditors.put(Class[].class, new ClassArrayEditor());
    this.defaultEditors.put(Currency.class, new CurrencyEditor());
    this.defaultEditors.put(File.class, new FileEditor());
    this.defaultEditors.put(InputStream.class, new InputStreamEditor());
    this.defaultEditors.put(InputSource.class, new InputSourceEditor());
    this.defaultEditors.put(Locale.class, new LocaleEditor());
    this.defaultEditors.put(Pattern.class, new PatternEditor());
    this.defaultEditors.put(Properties.class, new PropertiesEditor());
    this.defaultEditors.put(Resource[].class, new ResourceArrayPropertyEditor());
    this.defaultEditors.put(TimeZone.class, new TimeZoneEditor());
    this.defaultEditors.put(URI.class, new URIEditor());
    this.defaultEditors.put(URL.class, new URLEditor());
    this.defaultEditors.put(UUID.class, new UUIDEditor());

    // Default instances of collection editors.
    // Can be overridden by registering custom instances of those as custom editors.
    this.defaultEditors.put(Collection.class, new CustomCollectionEditor(Collection.class));
    this.defaultEditors.put(Set.class, new CustomCollectionEditor(Set.class));
    this.defaultEditors.put(SortedSet.class, new CustomCollectionEditor(SortedSet.class));
    this.defaultEditors.put(List.class, new CustomCollectionEditor(List.class));
    this.defaultEditors.put(SortedMap.class, new CustomMapEditor(SortedMap.class));

    // Default editors for primitive arrays.
    this.defaultEditors.put(byte[].class, new ByteArrayPropertyEditor());
    this.defaultEditors.put(char[].class, new CharArrayPropertyEditor());

    // The JDK does not contain a default editor for char!
    this.defaultEditors.put(char.class, new CharacterEditor(false));
    this.defaultEditors.put(Character.class, new CharacterEditor(true));

    // Spring's CustomBooleanEditor accepts more flag values than the JDK's default editor.
    this.defaultEditors.put(boolean.class, new CustomBooleanEditor(false));
    this.defaultEditors.put(Boolean.class, new CustomBooleanEditor(true));

    // The JDK does not contain default editors for number wrapper types!
    // Override JDK primitive number editors with our own CustomNumberEditor.
    this.defaultEditors.put(byte.class, new CustomNumberEditor(Byte.class, false));
    this.defaultEditors.put(Byte.class, new CustomNumberEditor(Byte.class, true));
    this.defaultEditors.put(short.class, new CustomNumberEditor(Short.class, false));
    this.defaultEditors.put(Short.class, new CustomNumberEditor(Short.class, true));
    this.defaultEditors.put(int.class, new CustomNumberEditor(Integer.class, false));
    this.defaultEditors.put(Integer.class, new CustomNumberEditor(Integer.class, true));
    this.defaultEditors.put(long.class, new CustomNumberEditor(Long.class, false));
    this.defaultEditors.put(Long.class, new CustomNumberEditor(Long.class, true));
    this.defaultEditors.put(float.class, new CustomNumberEditor(Float.class, false));
    this.defaultEditors.put(Float.class, new CustomNumberEditor(Float.class, true));
    this.defaultEditors.put(double.class, new CustomNumberEditor(Double.class, false));
    this.defaultEditors.put(Double.class, new CustomNumberEditor(Double.class, true));
    this.defaultEditors.put(BigDecimal.class, new CustomNumberEditor(BigDecimal.class, true));
    this.defaultEditors.put(BigInteger.class, new CustomNumberEditor(BigInteger.class, true));

    // Only register config value editors if explicitly requested.
    if (this.configValueEditorsActive) {
        StringArrayPropertyEditor sae = new StringArrayPropertyEditor();
        this.defaultEditors.put(String[].class, sae);
        this.defaultEditors.put(short[].class, sae);
        this.defaultEditors.put(int[].class, sae);
        this.defaultEditors.put(long[].class, sae);
    }
}