|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavax.faces.component.UIComponent
javax.faces.component.UIComponentBase
javax.faces.component.UIOutput
javax.faces.component.UIInput
public class UIInput
UIInput
is a UIComponent that represents a component that both
displays output to the user (like UIOutput components do) and
processes request parameters on the subsequent request that need to
be decoded. There are no restrictions on the data type of the local
value, or the object referenced by the value binding expression (if
any); however, individual Renderers will
generally impose restrictions on the type of data they know how to
display.
During the Apply Request Values phase
of the request processing lifecycle, the decoded value of this
component, usually but not necessarily a String, must be stored - but
not yet converted - using setSubmittedValue(). If the
component wishes to indicate that no particular value was submitted,
it can either do nothing, or set the submitted value to
null.
By default, during the Process Validators phase of the
request processing lifecycle, the submitted value will be converted
to a typesafe object, and, if validation succeeds, stored as a local
value using setValue(). However, if the
immediate property is set to true, this
processing will occur instead at the end of the Apply Request
Values phase.
During the Render Response phase of the request
processing lifecycle, conversion for output occurs as for UIOutput.
When the validate() method of this UIInput
detects that a value change has actually occurred, and that all
validations have been successfully passed, it will queue a ValueChangeEvent. Later on, the broadcast() method
will ensure that this event is broadcast to all interested listeners.
This event will be delivered by default in the Process
Validators phase, but can be delivered instead during Apply
Request Values if the immediate property is set to
true. If the validation
fails, the implementation must call FacesContext.validationFailed().
By default, the rendererType property must be set to
"Text". This value can be changed by calling the
setRendererType() method.
| Field Summary | |
|---|---|
static String |
COMPONENT_FAMILY
The standard component family for this component. |
static String |
COMPONENT_TYPE
The standard component type for this component. |
static String |
CONVERSION_MESSAGE_ID
The message identifier of the FacesMessage to be created if
a conversion error occurs, and neither the page author nor
the ConverterException provides a message. |
static String |
REQUIRED_MESSAGE_ID
The message identifier of the FacesMessage to be created if
a required check fails. |
static String |
UPDATE_MESSAGE_ID
The message identifier of the FacesMessage to be created if
a model update error occurs, and the thrown exception has
no message. |
static String |
VALIDATE_EMPTY_FIELDS_PARAM_NAME
The name of an application parameter that indicates how empty values should be handled with respect to validation. |
| Fields inherited from class javax.faces.component.UIComponent |
|---|
BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, VIEW_LOCATION_KEY |
| Constructor Summary | |
|---|---|
UIInput()
Create a new UIInput instance with default property
values. |
|
| Method Summary | |
|---|---|
void |
addValidator(Validator validator)
Add a Validator instance to the set associated with
this UIInput. |
void |
addValueChangeListener(ValueChangeListener listener)
Add a new ValueChangeListener to the set of listeners
interested in being notified when ValueChangeEvents occur. |
void |
clearInitialState()
For each of the attached objects on
this instance that implement |
protected boolean |
compareValues(Object previous,
Object value)
Return true if the new value is different from the
previous value. |
void |
decode(FacesContext context)
Decode any new state of this UIComponent from the
request contained in the specified FacesContext, and store
this state as needed. |
protected Object |
getConvertedValue(FacesContext context,
Object newSubmittedValue)
Convert the submitted value into a "local value" of the appropriate data type, if necessary. |
String |
getConverterMessage()
If there has been a call to setConverterMessage(java.lang.String) on this
instance, return the message. |
String |
getFamily()
Return the identifier of the component family to which this component belongs. |
String |
getRequiredMessage()
If there has been a call to setRequiredMessage(java.lang.String) on this
instance, return the message. |
Object |
getSubmittedValue()
Return the submittedValue value of this UIInput component. |
MethodBinding |
getValidator()
Deprecated. getValidators() should be used instead. |
String |
getValidatorMessage()
If there has been a call to setValidatorMessage(java.lang.String) on this
instance, return the message. |
Validator[] |
getValidators()
Return the set of registered Validators for this
UIInput instance. |
MethodBinding |
getValueChangeListener()
If EditableValueHolder.setValueChangeListener(javax.faces.el.MethodBinding) was not previously called
for this instance, this method must return null. |
ValueChangeListener[] |
getValueChangeListeners()
Return the set of registered ValueChangeListeners for this
UIInput instance. |
static boolean |
isEmpty(Object value)
|
boolean |
isImmediate()
Return the "immediate" state for this component. |
boolean |
isLocalValueSet()
Return the "local value set" state for this component. |
boolean |
isRequired()
Return the "required field" state for this component. |
boolean |
isValid()
Return a flag indicating whether the local value of this component is valid (no conversion error has occurred). |
void |
markInitialState()
In addition to the actions taken in UIOutput
when PartialStateHolder.markInitialState() is called,
check if any of the installed Validators are PartialStateHolders and
if so, call PartialStateHolder.markInitialState()
as appropriate. |
void |
processDecodes(FacesContext context)
Specialized decode behavior on top of that provided by the superclass. |
void |
processUpdates(FacesContext context)
In addition to the standard processUpdates behavior
inherited from UIComponentBase, calls
updateModel(). |
void |
processValidators(FacesContext context)
In addition to the standard processValidators behavior
inherited from UIComponentBase, calls validate()
if the immediate property is false (which is the
default); if the component is invalid afterwards, calls
FacesContext.renderResponse(). |
void |
removeValidator(Validator validator)
Remove a Validator instance from the set associated with
this UIInput, if it was previously associated. |
void |
removeValueChangeListener(ValueChangeListener listener)
Remove an existing ValueChangeListener (if any) from the
set of listeners interested in being notified when
ValueChangeEvents occur. |
void |
resetValue()
Convenience method to reset this component's value to the un-initialized state. |
void |
restoreState(FacesContext context,
Object state)
Perform any processing required to restore the state from the entries in the state Object. |
Object |
saveState(FacesContext context)
Gets the state of the instance as a Serializable Object. |
void |
setConverterMessage(String message)
Override any ValueExpression set for the "converterMessage"
with the literal argument provided to this method. |
void |
setImmediate(boolean immediate)
Set the "immediate" state for this component. |
void |
setLocalValueSet(boolean localValueSet)
Sets the "local value set" state for this component. |
void |
setRequired(boolean required)
Set the "required field" state for this component. |
void |
setRequiredMessage(String message)
Override any ValueExpression set for the "requiredMessage"
with the literal argument provided to this method. |
void |
setSubmittedValue(Object submittedValue)
Set the submittedValue value of this UIInput component. |
void |
setValid(boolean valid)
Set a flag indicating whether the local value of this component is valid (no conversion error has occurred). |
void |
setValidator(MethodBinding validatorBinding)
Deprecated. Use addValidator(javax.faces.validator.Validator) instead, obtaining the
argument Validator by creating an instance of MethodExpressionValidator. |
void |
setValidatorMessage(String message)
Override any ValueExpression set for the "validatorMessage"
with the literal argument provided to this method. |
void |
setValue(Object value)
Set the value of this UIComponent (if any). |
void |
setValueChangeListener(MethodBinding valueChangeListener)
Deprecated. Use addValueChangeListener(javax.faces.event.ValueChangeListener) instead, obtaining the
argument ValueChangeListener by creating an instance of MethodExpressionValueChangeListener. |
void |
updateModel(FacesContext context)
Perform the following algorithm to update the model data associated with this UIInput, if any, as appropriate. |
void |
validate(FacesContext context)
Perform the following algorithm to validate the local value of this UIInput. |
protected void |
validateValue(FacesContext context,
Object newValue)
Set the "valid" property according to the below algorithm. |
| Methods inherited from class javax.faces.component.UIOutput |
|---|
getConverter, getLocalValue, getValue, setConverter |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface javax.faces.component.ValueHolder |
|---|
getConverter, getLocalValue, getValue, setConverter |
| Field Detail |
|---|
public static final String COMPONENT_TYPE
The standard component type for this component.
public static final String COMPONENT_FAMILY
The standard component family for this component.
public static final String CONVERSION_MESSAGE_ID
The message identifier of the
FacesMessage to be created if
a conversion error occurs, and neither the page author nor
the ConverterException provides a message.
public static final String REQUIRED_MESSAGE_ID
The message identifier of the
FacesMessage to be created if
a required check fails.
public static final String UPDATE_MESSAGE_ID
The message identifier of the
FacesMessage to be created if
a model update error occurs, and the thrown exception has
no message.
public static final String VALIDATE_EMPTY_FIELDS_PARAM_NAME
The name of an application parameter
that indicates how empty values should be handled with respect to
validation. See validateValue(javax.faces.context.FacesContext, java.lang.Object) for the allowable values
and specification of how they should be interpreted.
| Constructor Detail |
|---|
public UIInput()
Create a new UIInput instance with default property
values.
| Method Detail |
|---|
public String getFamily()
UIComponentReturn the identifier of the component family to which this
component belongs. This identifier, in conjunction with the value
of the rendererType property, may be used to select
the appropriate Renderer for this component instance.
getFamily in class UIOutputpublic Object getSubmittedValue()
Return the submittedValue value of this UIInput component.
This method should only be used by the decode() and
validate() method of this component, or
its corresponding Renderer.
getSubmittedValue in interface EditableValueHolderpublic void setSubmittedValue(Object submittedValue)
Set the submittedValue value of this UIInput component.
This method should only be used by the decode() and
validate() method of this component, or
its corresponding Renderer.
setSubmittedValue in interface EditableValueHoldersubmittedValue - The new submitted valuepublic void setValue(Object value)
ValueHolderSet the value of this UIComponent (if any).
setValue in interface ValueHoldersetValue in class UIOutputvalue - The new local valuepublic void resetValue()
Convenience method to reset this component's value to the un-initialized state. This method does the following:
Call setValue(java.lang.Object) passing null.
Call setSubmittedValue(java.lang.Object) passing null.
Call setLocalValueSet(boolean) passing false.
Call setValid(boolean) passing true.
Upon return from this call if the instance had a
ValueBinding associated with it for the "value"
property, this binding is evaluated when UIOutput.getValue() is called. Otherwise, null is
returned from getValue().
resetValue in interface EditableValueHolderpublic boolean isLocalValueSet()
setValue() automatically reset
this property to true.
isLocalValueSet in interface EditableValueHolderpublic void setLocalValueSet(boolean localValueSet)
setLocalValueSet in interface EditableValueHolderpublic boolean isRequired()
Return the "required field" state for this component.
isRequired in interface EditableValueHolderpublic String getRequiredMessage()
If there has been a call to setRequiredMessage(java.lang.String) on this
instance, return the message. Otherwise, call UIComponent.getValueExpression(java.lang.String)
passing the key "requiredMessage", get the result of the expression, and return it.
Any ELExceptions thrown during the call to getValue()
must be wrapped in a FacesException and rethrown.
public void setRequiredMessage(String message)
Override any ValueExpression set for the "requiredMessage"
with the literal argument provided to this method. Subsequent calls
to getRequiredMessage() will return this value;
message - the literal message value to be displayed in the event
the user hasn't supplied a value and one is required.public String getConverterMessage()
If there has been a call to setConverterMessage(java.lang.String) on this
instance, return the message. Otherwise, call UIComponent.getValueExpression(java.lang.String)
passing the key "converterMessage", get the result of the expression, and return it.
Any ELExceptions thrown during the call to getValue()
must be wrapped in a FacesException and rethrown.
public void setConverterMessage(String message)
Override any ValueExpression set for the "converterMessage"
with the literal argument provided to this method. Subsequent calls
to getConverterMessage() will return this value;
message - the literal message value to be displayed in the event
conversion fails.public String getValidatorMessage()
If there has been a call to setValidatorMessage(java.lang.String) on this
instance, return the message. Otherwise, call UIComponent.getValueExpression(java.lang.String)
passing the key "validatorMessage", get the result of the expression, and return it.
Any ELExceptions thrown during the call to getValue()
must be wrapped in a FacesException and rethrown.
public void setValidatorMessage(String message)
Override any ValueExpression set for the "validatorMessage"
with the literal argument provided to this method. Subsequent calls
to getValidatorMessage() will return this value;
message - the literal message value to be displayed in the event
validation fails.public boolean isValid()
EditableValueHolderReturn a flag indicating whether the local value of this component is valid (no conversion error has occurred).
isValid in interface EditableValueHolderpublic void setValid(boolean valid)
EditableValueHolderSet a flag indicating whether the local value of this component is valid (no conversion error has occurred).
setValid in interface EditableValueHoldervalid - The new valid flagpublic void setRequired(boolean required)
Set the "required field" state for this component.
setRequired in interface EditableValueHolderrequired - The new "required field" statepublic boolean isImmediate()
EditableValueHolderReturn the "immediate" state for this component.
isImmediate in interface EditableValueHolderpublic void setImmediate(boolean immediate)
EditableValueHolderSet the "immediate" state for this component. When
set to true, the component's value will be converted
and validated immediately in the Apply Request Values
phase, and ValueChangeEvents will be delivered
in that phase as well. The default value for this
property must be false.
setImmediate in interface EditableValueHolderimmediate - The new "immediate" statepublic MethodBinding getValidator()
getValidators() should be used instead.
Return a MethodBinding pointing at a
method that will be called during Process Validations
phase of the request processing lifecycle, to validate the current
value of this component.
getValidator in interface EditableValueHolderpublic void setValidator(MethodBinding validatorBinding)
addValidator(javax.faces.validator.Validator) instead, obtaining the
argument Validator by creating an instance of MethodExpressionValidator.
Set a MethodBinding pointing at a
method that will be called during Process Validations
phase of the request processing lifecycle, to validate the current
value of this component.
Any method referenced by such an expression must be public, with
a return type of void, and accept parameters of type
FacesContext, UIComponent, and Object.
setValidator in interface EditableValueHoldervalidatorBinding - The new MethodBinding instancepublic MethodBinding getValueChangeListener()
EditableValueHolderIf EditableValueHolder.setValueChangeListener(javax.faces.el.MethodBinding) was not previously called
for this instance, this method must return null. If
it was called, this method must return the exact
MethodBinding instance that was passed to EditableValueHolder.setValueChangeListener(javax.faces.el.MethodBinding).
getValueChangeListener in interface EditableValueHolderpublic void setValueChangeListener(MethodBinding valueChangeListener)
addValueChangeListener(javax.faces.event.ValueChangeListener) instead, obtaining the
argument ValueChangeListener by creating an instance of MethodExpressionValueChangeListener.
Wrap the argument valueChangeMethod in an
implementation of ValueChangeListener
and store it in the internal data structure that backs the EditableValueHolder.getValueChangeListeners() method, taking care to over-write any
instance that was stored by a previous call to
setValueChangeListener.
This argument method will be called during the Process
Validations or Apply Request Values phases
(depending on the value of the immediate
property).
Any method referenced by such an expression must be public,
with a return type of void, and accept a parameter
of type ValueChangeEvent.
setValueChangeListener in interface EditableValueHoldervalueChangeListener - The new method binding instancepublic void markInitialState()
In addition to the actions taken in UIOutput
when PartialStateHolder.markInitialState() is called,
check if any of the installed Validators are PartialStateHolders and
if so, call PartialStateHolder.markInitialState()
as appropriate.
markInitialState in interface PartialStateHoldermarkInitialState in class UIOutputpublic void clearInitialState()
UIComponentBaseFor each of the attached objects on
this instance that implement PartialStateHolder, call
PartialStateHolder.clearInitialState() on the attached object.
clearInitialState in interface PartialStateHolderclearInitialState in class UIOutputpublic void processDecodes(FacesContext context)
Specialized decode behavior on top of that provided by the
superclass. In addition to the standard
processDecodes behavior inherited from UIComponentBase, calls validate() if the the
immediate property is true; if the component is
invalid afterwards or a RuntimeException is thrown,
calls FacesContext.renderResponse().
processDecodes in class UIComponentBasecontext - FacesContext for the request we are processing
NullPointerException - if context
is nullpublic void processValidators(FacesContext context)
In addition to the standard processValidators behavior
inherited from UIComponentBase, calls validate()
if the immediate property is false (which is the
default); if the component is invalid afterwards, calls
FacesContext.renderResponse().
If a RuntimeException is thrown during
validation processing, calls FacesContext.renderResponse()
and re-throw the exception.
processValidators in class UIComponentBasecontext - FacesContext for the request we are processing
NullPointerException - if context
is nullpublic void processUpdates(FacesContext context)
In addition to the standard processUpdates behavior
inherited from UIComponentBase, calls
updateModel().
If the component is invalid afterwards, calls
FacesContext.renderResponse().
If a RuntimeException is thrown during
update processing, calls FacesContext.renderResponse()
and re-throw the exception.
processUpdates in class UIComponentBasecontext - FacesContext for the request we are processing
NullPointerException - if context
is nullpublic void decode(FacesContext context)
UIComponentDecode any new state of this UIComponent from the
request contained in the specified FacesContext, and store
this state as needed.
During decoding, events may be enqueued for later processing
(by event listeners who have registered an interest), by calling
queueEvent().
decode in class UIComponentBasecontext - FacesContext for the request we are processing
NullPointerException - if context
is nullpublic void updateModel(FacesContext context)
Perform
the following algorithm to update the model data
associated with this UIInput, if any, as appropriate.
valid property of this component is
false, take no further action.localValueSet property of this component is
false, take no further action.ValueExpression for value exists,
take no further action.setValue() method of the ValueExpression
to update the value that the ValueExpression points at.setValue() method returns successfully:
setValue() method throws an Exception:
FacesMessage with the id UPDATE_MESSAGE_ID. Create a
UpdateModelException, passing the FacesMessage and
the caught exception to the constructor. Create an
ExceptionQueuedEventContext, passing the FacesContext,
the UpdateModelException, this component instance, and
PhaseId.UPDATE_MODEL_VALUES to its constructor. Call
FacesContext.getExceptionHandler() and then call
ExceptionHandler.processEvent(javax.faces.event.SystemEvent), passing the
ExceptionQueuedEventContext.
valid property of this UIInput
to false.
context - FacesContext for the request we are processing
NullPointerException - if context
is nullpublic void validate(FacesContext context)
Perform the
following algorithm to validate the local value of this UIInput.
getSubmittedValue().
If this returns null, exit without further
processing. (This indicates that no value was submitted for this
component.)javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
context parameter value is true (ignoring case), and
getSubmittedValue() returns a zero-length
String call setSubmittedValue(java.lang.Object),
passing null as the argument and continue processing
using null as the current submitted
value.getConvertedValue(javax.faces.context.FacesContext, java.lang.Object).validateValue(javax.faces.context.FacesContext, java.lang.Object).valid property of this component is still
true, retrieve the previous value of the component
(with getValue()), store the new local value using
setValue(), and reset the submitted value to
null. If the local value is different from
the previous value of this component, fire a
ValueChangeEvent to be broadcast to all interested
listeners.Application components implementing UIInput that wish to
perform validation with logic embedded in the component should perform
their own correctness checks, and then call the
super.validate() method to perform the standard
processing described above.
context - The FacesContext for the current request
NullPointerException - if context
is null
protected Object getConvertedValue(FacesContext context,
Object newSubmittedValue)
throws ConverterException
Convert the submitted value into a "local value" of the appropriate data type, if necessary. Employ the following algorithm to do so:
Renderer is present, call
getConvertedValue() to convert the submitted
value.Renderer is present, and the submitted
value is a String, locate a Converter as follows:
getConverter() returns a non-null Converter,
use that instance.value exists,
call getType() on it.
null, assume the output
type is String and perform no conversion.Application.createConverter(Class)
to locate any registered Converter capable of
converting data values of the specified type.Converter instance was located, call its
getAsObject() method to perform the conversion.
If conversion fails:
addMessage() method on the
FacesContext.valid property
on this component to false This method can be overridden by subclasses for more specific behavior.
ConverterException
protected void validateValue(FacesContext context,
Object newValue)
Set the "valid" property according to the below algorithm.
If the valid property on this component is
still true, and the required property
is also true, ensure that the local value is not
empty (where "empty" is defined as null or a
zero-length String). If the local value is empty:
Enqueue an appropriate error message by calling the
addMessage() method on the FacesContext
instance for the current request. If the getRequiredMessage() returns non-null, use the value
as the summary and detail in the FacesMessage that is enqueued on the FacesContext,
otherwise use the message for the REQUIRED_MESSAGE_ID.
valid property on this component
to false.If calling ValidatorException.getFacesMessages() returns
non-null, each message should be added to the
FacesContext. Otherwise the single message returned
from ValidatorException.getFacesMessage() should be
added.
Otherwise, if the
valid property on this component is still
true, take the following action to determine if
validation of this component should proceed.
If the value is not empty, validation should proceed.
If the value is empty, but the system has been directed to
validate empty fields, validation should proceed. The
implementation must obtain the init parameter Map
from the ExternalContext and inspect the value for
the key given by the value of the symbolic constant VALIDATE_EMPTY_FIELDS_PARAM_NAME. If there is no value under
that key, use the same key and look in the application map from
the ExternalContext. If the value is
null or equal to the string
“auto” (without the quotes) take
appropriate action to determine if Bean Validation is present in
the runtime environment. If not, validation should not proceed.
If so, validation should proceed. If the value is equal
(ignoring case) to “true” (without the
quotes) validation should proceed. Otherwise, validation should
not proceed.
If the above determination indicates that validation should
proceed, call the validate() method of each Validator registered for this UIInput, followed by the
method pointed at by the validatorBinding property
(if any). If any of these validators or the method throws a
ValidatorException, catch the exception, add its message
(if any) to the FacesContext, and set the
valid property of this component to false.
protected boolean compareValues(Object previous,
Object value)
Return true if the new value is different from the
previous value.
previous - old value of this component (if any)value - new value of this component (if any)public static boolean isEmpty(Object value)
public void addValidator(Validator validator)
Add a Validator instance to the set associated with
this UIInput.
addValidator in interface EditableValueHoldervalidator - The Validator to add
NullPointerException - if validator
is nullpublic Validator[] getValidators()
Return the set of registered Validators for this
UIInput instance. If there are no registered validators,
a zero-length array is returned.
getValidators in interface EditableValueHolderpublic void removeValidator(Validator validator)
Remove a Validator instance from the set associated with
this UIInput, if it was previously associated.
Otherwise, do nothing.
removeValidator in interface EditableValueHoldervalidator - The Validator to removepublic void addValueChangeListener(ValueChangeListener listener)
Add a new ValueChangeListener to the set of listeners
interested in being notified when ValueChangeEvents occur.
addValueChangeListener in interface EditableValueHolderlistener - The ValueChangeListener to be added
NullPointerException - if listener
is nullpublic ValueChangeListener[] getValueChangeListeners()
Return the set of registered ValueChangeListeners for this
UIInput instance. If there are no registered listeners,
a zero-length array is returned.
getValueChangeListeners in interface EditableValueHolderpublic void removeValueChangeListener(ValueChangeListener listener)
Remove an existing ValueChangeListener (if any) from the
set of listeners interested in being notified when
ValueChangeEvents occur.
removeValueChangeListener in interface EditableValueHolderlistener - The ValueChangeListener to be removed
NullPointerException - if listener
is nullpublic Object saveState(FacesContext context)
StateHolder Gets the state of the instance as a
Serializable Object.
If the class that implements this interface has references to
instances that implement StateHolder (such as a
UIComponent with event handlers, validators, etc.)
this method must call the StateHolder.saveState(javax.faces.context.FacesContext) method on all those
instances as well. This method must not save the state
of children and facets. That is done via the StateManager
This method must not alter the state of the implementing object. In other words, after executing this code:
Object state = component.saveState(facesContext);
component should be the same as before executing
it.
The return from this method must be Serializable
saveState in interface StateHoldersaveState in class UIOutput
public void restoreState(FacesContext context,
Object state)
StateHolderPerform any processing required to restore the state from the entries in the state Object.
If the class that implements this interface has references to
instances that also implement StateHolder (such as a
UIComponent with event handlers, validators, etc.)
this method must call the StateHolder.restoreState(javax.faces.context.FacesContext, java.lang.Object) method on all those
instances as well.
restoreState in interface StateHolderrestoreState in class UIOutput
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||