org.makumba.providers
Interface FormDataProvider

All Known Implementing Classes:
ListFormDataProvider

public interface FormDataProvider

This provider aims at providing the data necessary for the Makumba forms to compute its results.

Version:
$Id: FormDataProvider.java,v 1.1 21.09.2007 09:40:27 Manuel Exp $
Author:
Manuel Gay

Method Summary
 String computeBasePointer(MultipleKey tagKey, PageContext pageContext)
           
 DataDefinition getBasePointerType(AnalysableTag tag, PageCache pageCache, String baseObject)
          Gives the type corresponding to the base object of a tag, based on its name
 FieldDefinition getInputTypeAtAnalysis(AnalysableTag tag, DataDefinition dd, String fieldName, PageCache pageCache)
          Gets the type of an input tag
 MultipleKey getParentListKey(AnalysableTag tag)
           
 FieldDefinition getTypeOnEndAnalyze(MultipleKey tagKey, PageCache pageCache)
          Computes the type of the field based on the information collected at analysis.
 Object getValue(MultipleKey tagKey, PageContext pageContext, PageCache pageCache)
          Returns the value of the currently running tag, for Input and Option tags.
 FieldDefinition onBasicValueEndAnalyze(MultipleKey tagKey, PageCache pageCache)
          Computes data at the end of BasicValueTag analysis (InputTag, OptionTag)
 void onBasicValueStartAnalyze(AnalysableTag tag, boolean isNull, MultipleKey parentFormKey, PageCache pageCache, String ptrExpr)
          Computes data at the beginning of BasicValueTag analysis (InputTag, OptionTag)
 void onFormEndAnalyze(MultipleKey tagKey, PageCache pageCache)
          Computes data at the end of form analysis.
 void onFormEndTag(MultipleKey tagKey, PageCache pageCache, PageContext pageContext)
           
 void onFormStartAnalyze(AnalysableTag tag, PageCache pageCache, String ptrExpr)
          Computes data at the beginning of form analysis.
 void onFormStartTag(MultipleKey tagKey, PageCache pageCache, PageContext pageContext)
          Computes data at the beginning of form runtime.
 void onNonQueryStartAnalyze(AnalysableTag tag, boolean isNull, MultipleKey parentFormKey, PageCache pageCache, String expr)
          Computes data for analysis start in case of tags which aren't wrapped in a query context (of the kind mak:list).
 

Method Detail

onFormStartAnalyze

void onFormStartAnalyze(AnalysableTag tag,
                        PageCache pageCache,
                        String ptrExpr)
Computes data at the beginning of form analysis.

Parameters:
tag - the AnalysableTag for whom we do this
pageCache - the pageCache of the current page
ptrExpr - the base pointer expression

onBasicValueStartAnalyze

void onBasicValueStartAnalyze(AnalysableTag tag,
                              boolean isNull,
                              MultipleKey parentFormKey,
                              PageCache pageCache,
                              String ptrExpr)
Computes data at the beginning of BasicValueTag analysis (InputTag, OptionTag)

Parameters:
tag - the AnalysableTag for whom we do this
pageCache - the pageCache of the current page
ptrExpr - the expression of the base pointer

onNonQueryStartAnalyze

void onNonQueryStartAnalyze(AnalysableTag tag,
                            boolean isNull,
                            MultipleKey parentFormKey,
                            PageCache pageCache,
                            String expr)
Computes data for analysis start in case of tags which aren't wrapped in a query context (of the kind mak:list). This is the case of InputTag and OptionTag in particular contexts (e.g. a newForm, which does not depend itself on data but where these tags need to fetch e.g. set values from a specific location).

Parameters:
tag -
pageCache -
expr -

onFormEndAnalyze

void onFormEndAnalyze(MultipleKey tagKey,
                      PageCache pageCache)
Computes data at the end of form analysis.

Parameters:
tag - the AnalysableTag for whom we do this
pageCache - the pageCache of the current page

onBasicValueEndAnalyze

FieldDefinition onBasicValueEndAnalyze(MultipleKey tagKey,
                                       PageCache pageCache)
Computes data at the end of BasicValueTag analysis (InputTag, OptionTag)

Parameters:
tag - the AnalysableTag for whom we do this
pageCache - the pageCache of the current page
Returns:
the FieldDefinition corresponding to the object the tag is based on

onFormStartTag

void onFormStartTag(MultipleKey tagKey,
                    PageCache pageCache,
                    PageContext pageContext)
                    throws LogicException
Computes data at the beginning of form runtime.

Parameters:
tag - the FormTag that starts running
pageCache - the pageCache of the current page
pageContext - the pageContext in which the form is
Throws:
LogicException

onFormEndTag

void onFormEndTag(MultipleKey tagKey,
                  PageCache pageCache,
                  PageContext pageContext)

getTypeOnEndAnalyze

FieldDefinition getTypeOnEndAnalyze(MultipleKey tagKey,
                                    PageCache pageCache)
Computes the type of the field based on the information collected at analysis.

Parameters:
tag - the running tag
pageCache - the pageCache of the current page
Returns:
a FieldDefinition indicating the type of what we are interested in

getBasePointerType

DataDefinition getBasePointerType(AnalysableTag tag,
                                  PageCache pageCache,
                                  String baseObject)
Gives the type corresponding to the base object of a tag, based on its name

Parameters:
tag - the tag for which we need to discover the tag
pageCache - the page cache of the current page
baseObject - the label of the object we want to discover
Returns:
the DataDefinition corresponding to the type of the object

computeBasePointer

String computeBasePointer(MultipleKey tagKey,
                          PageContext pageContext)
                          throws LogicException
Throws:
LogicException

getValue

Object getValue(MultipleKey tagKey,
                PageContext pageContext,
                PageCache pageCache)
                throws LogicException
Returns the value of the currently running tag, for Input and Option tags.

Parameters:
tag - the AnalysableTag that is currently running
pageCache - the pageCache of the current page
Returns:
the value corresponding to the tag.
Throws:
LogicException

getInputTypeAtAnalysis

FieldDefinition getInputTypeAtAnalysis(AnalysableTag tag,
                                       DataDefinition dd,
                                       String fieldName,
                                       PageCache pageCache)
Gets the type of an input tag

Parameters:
tag - TODO
fieldName - the name of the field of which the type should be returned
pageCache - the page cache of the current page
base - TODO
Returns:
A FieldDefinition corresponding to the type of the input field

getParentListKey

MultipleKey getParentListKey(AnalysableTag tag)