Class DefaultYFormFacade

  • All Implemented Interfaces:
    YFormFacade

    public class DefaultYFormFacade
    extends java.lang.Object
    implements YFormFacade
    Default Form Facade to handle yForm definitions and yForm data.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      YFormDataData createOrUpdateYFormData​(java.lang.String applicationId, java.lang.String formId, java.lang.String formDataId, YFormDataTypeEnum type, java.lang.String content)
      Create or Update YFormDataModel.
      YFormDataData createOrUpdateYFormData​(java.lang.String applicationId, java.lang.String formId, java.lang.String formDataId, YFormDataTypeEnum type, java.lang.String refId, java.lang.String content)
      Create or Update YFormDataModel.
      YFormDataData createYFormData​(java.lang.String applicationId, java.lang.String formId, java.lang.String formDataId, YFormDataTypeEnum type, java.lang.String refId, java.lang.String content)
      Create YFormData if no previous one exists.
      YFormDefinitionData createYFormDefinition​(java.lang.String applicationId, java.lang.String formId, java.lang.String content, java.lang.String documentId)
      Create a new YFormDefinition by the given parameters.
      java.lang.String getFormDataContent​(java.lang.String applicationId, java.lang.String formId, java.lang.String formDataId)
      For a given application id, form id and form data id an inline form definition is returned.
      The inline form definition can be injected in to a page instead of getting entire xform tagged between
      java.lang.String getFormDataContentTemplate​(java.lang.String applicationId, java.lang.String formId)
      For a given application id and form id a form data content template (an empty content generated from YFormDefinition with given form id) is returned.
      java.lang.String getInlineFormHtml​(java.lang.String applicationId, java.lang.String formId)
      For a given application id and form id an inline form definition is returned.
      The inline form definition can be injected in to a page instead of getting entire xform tagged between
      java.lang.String getInlineFormHtml​(java.lang.String applicationId, java.lang.String formId, YFormDataActionEnum action, java.lang.String formDataId)
      For a given application id, form id, form data id and action an inline form definition is returned.
      The inline form definition can be injected in to a page instead of getting entire xform tagged between
      java.lang.String getInlineFormHtml​(java.lang.String applicationId, java.lang.String formId, YFormDataActionEnum action, java.lang.String formDataId, YFormPreprocessorStrategy strategy)
      For a given application id, form id, form data id, action and strategy an inline form definition is returned.
      The inline form definition can be injected in to a page instead of getting entire xform tagged between
      java.lang.String getInlineFormHtml​(java.lang.String applicationId, java.lang.String formId, YFormDataActionEnum action, java.lang.String formDataId, YFormPreprocessorStrategy strategy, java.util.Map<java.lang.String,​java.lang.Object> params)
      For a given application id, form id, form data id, action and strategy (plus parameters) an inline form definition is returned.
      The inline form definition can be injected in to a page instead of getting entire xform tagged between
      java.lang.String getInlineFormHtml​(java.lang.String applicationId, java.lang.String formId, java.lang.String formDataId)
      For a given application id, form id and form data id an inline form definition is returned.
      The inline form definition can be injected in to a page instead of getting entire xform tagged between
      java.lang.String getNewFormDataId()
      Generates a new form Data id
      YFormDataData getYFormData​(java.lang.String formDataId)
      For a given id a form data is returned.
      YFormDataData getYFormData​(java.lang.String formDataId, YFormDataTypeEnum type)
      For a given id and type a form data is returned.
      YFormDataData getYFormData​(java.lang.String applicationId, java.lang.String formId, java.lang.String refId)
      For the given application id, form id and reference id a form data is returned.
      YFormDataData getYFormData​(java.lang.String applicationId, java.lang.String formId, java.lang.String refId, YFormDataTypeEnum type)
      For the given application id, form id, reference id and form type a form data is returned.
      protected Converter<YFormDataModel,​YFormDataData> getYFormDataConverter()  
      protected YFormDataModel getYFormDataModel​(java.lang.String formDataId)
      For a given id a form data is returned, if there is first a DRAFT document it will be return, else the DATA version of it
      YFormDefinitionData getYFormDefinition​(java.lang.String documentId)
      For a given document id a form definition is returned.
      YFormDefinitionData getYFormDefinition​(java.lang.String applicationId, java.lang.String formId)
      For a given application id and form id a form definition is returned.
      YFormDefinitionData getYFormDefinition​(java.lang.String applicationId, java.lang.String formId, int version)
      For a given application id, form id and version number a form definition is returned.
      protected Converter<YFormDefinitionModel,​YFormDefinitionData> getYFormDefinitionConverter()  
      protected YFormService getYFormService()  
      java.lang.String recreateYFormDefinitionCounterpart​(java.lang.String applicationId, java.lang.String formId, int version)
      Given an application id, form id and version number, the yForm Data counterpart is created.
      void setFormDefinitionStatus​(java.lang.String applicationId, java.lang.String formId, YFormDefinitionStatusEnum status)
      Changes the state of a form definition.
      void setProxyFacade​(ProxyFacade proxyFacade)  
      void setYFormService​(YFormService yformService)  
      YFormDataData updateYFormData​(java.lang.String formDataId, YFormDataTypeEnum type, java.lang.String content)
      Update YFormData by the given form data id.
      YFormDefinitionData updateYFormDefinition​(java.lang.String applicationId, java.lang.String formId, java.lang.String content, java.lang.String documentId)
      Update YFormDefinition if it exists in the database.
      boolean validate​(java.lang.String applicationId, java.lang.String formId, java.lang.String formDataId)
      /** Indicates if the given Form Data is valid or not.
      protected void validateFormDefinitionMetadata​(java.lang.String applicationId, java.lang.String formId, java.lang.String documentId)
      Checks if the metadata stored in the YFormData counterpart matches the given applicationId and formId
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ORBEON_APPLICATION_ID

        protected static final java.lang.String ORBEON_APPLICATION_ID
        See Also:
        Constant Field Values
      • TEMPLATE_FORM_ID

        protected static final java.lang.String TEMPLATE_FORM_ID
        See Also:
        Constant Field Values
    • Constructor Detail

      • DefaultYFormFacade

        public DefaultYFormFacade()
    • Method Detail

      • getNewFormDataId

        public java.lang.String getNewFormDataId()
        Generates a new form Data id
        Specified by:
        getNewFormDataId in interface YFormFacade
        Returns:
        generated form data id as string.
      • getYFormDefinition

        public YFormDefinitionData getYFormDefinition​(java.lang.String applicationId,
                                                      java.lang.String formId)
                                               throws YFormServiceException
        For a given application id and form id a form definition is returned.
        Specified by:
        getYFormDefinition in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        Returns:
        YFormDefinitionData
        Throws:
        YFormServiceException - if form definition cannot with specified parameters be resolved
      • getYFormDefinition

        public YFormDefinitionData getYFormDefinition​(java.lang.String applicationId,
                                                      java.lang.String formId,
                                                      int version)
                                               throws YFormServiceException
        For a given application id, form id and version number a form definition is returned.
        Specified by:
        getYFormDefinition in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        version - form definition version
        Returns:
        YFormDefinitionData
        Throws:
        YFormServiceException - if form definition cannot with specified parameters be resolved
      • validateFormDefinitionMetadata

        protected void validateFormDefinitionMetadata​(java.lang.String applicationId,
                                                      java.lang.String formId,
                                                      java.lang.String documentId)
                                               throws YFormServiceException
        Checks if the metadata stored in the YFormData counterpart matches the given applicationId and formId
        Parameters:
        applicationId -
        formId -
        documentId -
        Throws:
        YFormServiceException
      • updateYFormDefinition

        @Transactional(propagation=REQUIRED)
        public YFormDefinitionData updateYFormDefinition​(java.lang.String applicationId,
                                                         java.lang.String formId,
                                                         java.lang.String content,
                                                         java.lang.String documentId)
                                                  throws YFormServiceException
        Update YFormDefinition if it exists in the database.
        Specified by:
        updateYFormDefinition in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        content -
        documentId -
        Returns:
        YFormDefinitionData
        Throws:
        YFormServiceException
      • getYFormDataModel

        protected YFormDataModel getYFormDataModel​(java.lang.String formDataId)
                                            throws YFormServiceException
        For a given id a form data is returned, if there is first a DRAFT document it will be return, else the DATA version of it
        Parameters:
        formDataId -
        Returns:
        YFormDataData
        Throws:
        YFormServiceException
      • getYFormData

        public YFormDataData getYFormData​(java.lang.String applicationId,
                                          java.lang.String formId,
                                          java.lang.String refId)
                                   throws YFormServiceException
        For the given application id, form id and reference id a form data is returned.
        Specified by:
        getYFormData in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        refId -
        Returns:
        YFormDataData
        Throws:
        YFormServiceException
      • recreateYFormDefinitionCounterpart

        @Transactional(propagation=REQUIRED)
        public java.lang.String recreateYFormDefinitionCounterpart​(java.lang.String applicationId,
                                                                   java.lang.String formId,
                                                                   int version)
                                                            throws YFormServiceException
        Given an application id, form id and version number, the yForm Data counterpart is created.
        Specified by:
        recreateYFormDefinitionCounterpart in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        version -
        Returns:
        the form id of created form data
        Throws:
        YFormServiceException
      • createYFormData

        public YFormDataData createYFormData​(java.lang.String applicationId,
                                             java.lang.String formId,
                                             java.lang.String formDataId,
                                             YFormDataTypeEnum type,
                                             java.lang.String refId,
                                             java.lang.String content)
                                      throws YFormServiceException
        Create YFormData if no previous one exists. It assigns it to the corresponding YFormDefinition.
        Specified by:
        createYFormData in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        formDataId -
        type -
        refId -
        content -
        Returns:
        YFormDataData
        Throws:
        YFormServiceException - if form data cannot be created
      • createOrUpdateYFormData

        public YFormDataData createOrUpdateYFormData​(java.lang.String applicationId,
                                                     java.lang.String formId,
                                                     java.lang.String formDataId,
                                                     YFormDataTypeEnum type,
                                                     java.lang.String refId,
                                                     java.lang.String content)
                                              throws YFormServiceException
        Create or Update YFormDataModel.
        Specified by:
        createOrUpdateYFormData in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        formDataId -
        type -
        refId -
        content -
        Returns:
        YFormDataData
        Throws:
        YFormServiceException - if form data cannot be created or updated
      • getInlineFormHtml

        public java.lang.String getInlineFormHtml​(java.lang.String applicationId,
                                                  java.lang.String formId,
                                                  java.lang.String formDataId)
                                           throws YFormServiceException
        For a given application id, form id and form data id an inline form definition is returned.
        The inline form definition can be injected in to a page instead of getting entire xform tagged between
        Specified by:
        getInlineFormHtml in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        formDataId - the form data id of the definition
        Returns:
        String
        Throws:
        YFormServiceException - if inline definition cannot be returned
      • getInlineFormHtml

        public java.lang.String getInlineFormHtml​(java.lang.String applicationId,
                                                  java.lang.String formId)
                                           throws YFormServiceException
        For a given application id and form id an inline form definition is returned.
        The inline form definition can be injected in to a page instead of getting entire xform tagged between
        Specified by:
        getInlineFormHtml in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        Returns:
        the inline form definition as string
        Throws:
        YFormServiceException
      • getInlineFormHtml

        public java.lang.String getInlineFormHtml​(java.lang.String applicationId,
                                                  java.lang.String formId,
                                                  YFormDataActionEnum action,
                                                  java.lang.String formDataId)
                                           throws YFormServiceException
        For a given application id, form id, form data id and action an inline form definition is returned.
        The inline form definition can be injected in to a page instead of getting entire xform tagged between
        Specified by:
        getInlineFormHtml in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        action -
        formDataId -
        Returns:
        the inline form definition as string
        Throws:
        YFormServiceException
      • getInlineFormHtml

        public java.lang.String getInlineFormHtml​(java.lang.String applicationId,
                                                  java.lang.String formId,
                                                  YFormDataActionEnum action,
                                                  java.lang.String formDataId,
                                                  YFormPreprocessorStrategy strategy)
                                           throws YFormServiceException
        For a given application id, form id, form data id, action and strategy an inline form definition is returned.
        The inline form definition can be injected in to a page instead of getting entire xform tagged between
        Specified by:
        getInlineFormHtml in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        action -
        formDataId -
        strategy -
        Returns:
        the inline form definition as string
        Throws:
        YFormServiceException
      • getInlineFormHtml

        public java.lang.String getInlineFormHtml​(java.lang.String applicationId,
                                                  java.lang.String formId,
                                                  YFormDataActionEnum action,
                                                  java.lang.String formDataId,
                                                  YFormPreprocessorStrategy strategy,
                                                  java.util.Map<java.lang.String,​java.lang.Object> params)
                                           throws YFormServiceException
        For a given application id, form id, form data id, action and strategy (plus parameters) an inline form definition is returned.
        The inline form definition can be injected in to a page instead of getting entire xform tagged between
        Specified by:
        getInlineFormHtml in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        action -
        formDataId -
        strategy -
        params -
        Returns:
        the inline form definition as string
        Throws:
        YFormServiceException
      • getFormDataContent

        public java.lang.String getFormDataContent​(java.lang.String applicationId,
                                                   java.lang.String formId,
                                                   java.lang.String formDataId)
                                            throws YFormServiceException
        For a given application id, form id and form data id an inline form definition is returned.
        The inline form definition can be injected in to a page instead of getting entire xform tagged between
        Specified by:
        getFormDataContent in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        formDataId -
        Returns:
        the content of form data
        Throws:
        YFormServiceException
      • getFormDataContentTemplate

        public java.lang.String getFormDataContentTemplate​(java.lang.String applicationId,
                                                           java.lang.String formId)
                                                    throws YFormServiceException
        Description copied from interface: YFormFacade
        For a given application id and form id a form data content template (an empty content generated from YFormDefinition with given form id) is returned.
        Specified by:
        getFormDataContentTemplate in interface YFormFacade
        Parameters:
        applicationId - the application id of the form definition
        formId - the form id of the form definition
        Returns:
        form data content template for definition with specified parameters
        Throws:
        YFormServiceException - if there is no YFormDefinition with given applicationId and formId or YFormDefinition has wrong content
      • validate

        public boolean validate​(java.lang.String applicationId,
                                java.lang.String formId,
                                java.lang.String formDataId)
                         throws YFormServiceException
        /** Indicates if the given Form Data is valid or not.
        Specified by:
        validate in interface YFormFacade
        Parameters:
        applicationId -
        formId -
        formDataId -
        Returns:
        true if form data is valid, false otherwise
        Throws:
        YFormServiceException
      • setFormDefinitionStatus

        public void setFormDefinitionStatus​(java.lang.String applicationId,
                                            java.lang.String formId,
                                            YFormDefinitionStatusEnum status)
                                     throws YFormServiceException
        Changes the state of a form definition. This will include all related versions.
        Specified by:
        setFormDefinitionStatus in interface YFormFacade
        Parameters:
        status -
        applicationId - the application id of the form definition
        formId - the form id of the form definition
        Throws:
        YFormServiceException - if form definition cannot be found or updated
      • getYFormService

        protected YFormService getYFormService()
      • setYFormService

        public void setYFormService​(YFormService yformService)
      • setProxyFacade

        public void setProxyFacade​(ProxyFacade proxyFacade)