All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jakarta.faces.convert.Converter Maven / Gradle / Ivy

There is a newer version: 11.0.0-M4
Show newest version
/*
 * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.faces.convert;

import jakarta.faces.component.StateHolder;
import jakarta.faces.component.UIComponent;
import jakarta.faces.context.FacesContext;

/**
 * 

* Converter is an interface * describing a Java class that can perform Object-to-String and String-to-Object conversions between model data objects * and a String representation of those objects that is suitable for rendering. *

* *

* {@link Converter} implementations must have a zero-arguments public constructor. In addition, if the * {@link Converter} class wishes to have configuration property values saved and restored with the component tree, the * implementation must also implement {@link StateHolder}. *

* *

* Starting with version 1.2 of the specification, an exception to the above zero-arguments constructor requirement has * been introduced. If a converter has a single argument constructor that takes a Class instance and the * Class of the data to be converted is known at converter instantiation time, this constructor must be * used to instantiate the converter instead of the zero-argument version. This enables the per-class conversion of Java * enumerated types. *

* *

* If any Converter implementation requires a java.util.Locale to perform its job, it must * obtain that Locale from the {@link jakarta.faces.component.UIViewRoot} of the current * {@link FacesContext}, unless the Converter maintains its own Locale as part of its state. *

* *

* If the class implementing Converter has a {@link jakarta.faces.application.ResourceDependency} * annotation, the action described in ResourceDependency must be taken when * {@link jakarta.faces.component.ValueHolder#setConverter} is called. If the class implementing Converter * has a {@link jakarta.faces.application.ResourceDependencies} annotation, the action described in * ResourceDependencies must be taken when {@link jakarta.faces.component.ValueHolder#setConverter} is * called. *

* * @param The generic type of object value to convert. */ public interface Converter { /** *

* Convert the specified string value, which is associated with the specified * {@link UIComponent}, into a model data object that is appropriate for being stored during the * Process Validations phase of the request processing lifecycle. *

* * @param context {@link FacesContext} for the request being processed * @param component {@link UIComponent} with which this model object value is associated * @param value String value to be converted (may be null) * @return null if the value to convert is null, otherwise the result of the conversion * @throws ConverterException if conversion cannot be successfully performed * @throws NullPointerException if context or component is null */ T getAsObject(FacesContext context, UIComponent component, String value); /** *

* Convert the specified model object value, which is associated with the specified {@link UIComponent}, into a String * that is suitable for being included in the response generated during the Render Response phase of the * request processing lifeycle. *

* * @param context {@link FacesContext} for the request being processed * @param component {@link UIComponent} with which this model object value is associated * @param value Model object value to be converted (may be null) * @return a zero-length String if value is null, otherwise the result of the conversion * @throws ConverterException if conversion cannot be successfully performed * @throws NullPointerException if context or component is null */ String getAsString(FacesContext context, UIComponent component, T value); /** *

* If this param is set, and calling toLowerCase().equals("true") on a String representation of its value returns true, * Application.createConverter() must guarantee that the default for the timezone of all * jakarta.faces.convert.DateTimeConverter instances must be equal to TimeZone.getDefault() instead of "GMT". *

* * @since 2.0 */ String DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE_PARAM_NAME = "jakarta.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE"; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy