// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsFormContentUtil.java
// public static String getContentStringValue(CmsXmlContent content, CmsObject cms, String path, Locale locale) {
// 
//     return content.getStringValue(cms, getNestedPathPrefix(content, NODE_NESTED_FORM, locale) + path, locale);
// }
// 
// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsFormContentUtil.java
// public static I_CmsXmlContentValue getContentValue(CmsXmlContent content, String path, Locale locale) {
// 
//     return content.getValue(getNestedPathPrefix(content, NODE_NESTED_FORM, locale) + path, locale);
// }
// 
// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsFormContentUtil.java
// public static List<I_CmsXmlContentValue> getContentValues(CmsXmlContent content, String path, Locale locale) {
// 
//     return content.getValues(getNestedPathPrefix(content, NODE_NESTED_FORM, locale) + path, locale);
// }


import static com.alkacon.opencms.v8.formgenerator.CmsFormContentUtil.getContentStringValue;
import static com.alkacon.opencms.v8.formgenerator.CmsFormContentUtil.getContentValue;
import static com.alkacon.opencms.v8.formgenerator.CmsFormContentUtil.getContentValues;
import org.opencms.configuration.CmsConfigurationException;
import org.opencms.file.CmsFile;
import org.opencms.file.CmsObject;
import org.opencms.i18n.CmsMessages;
import org.opencms.jsp.CmsJspActionElement;
import org.opencms.main.OpenCms;
import org.opencms.util.CmsMacroResolver;
import org.opencms.util.CmsStringUtil;
import org.opencms.workplace.CmsWorkplace;
import org.opencms.xml.content.CmsXmlContent;
import org.opencms.xml.content.CmsXmlContentFactory;
import org.opencms.xml.types.CmsXmlHtmlValue;
import org.opencms.xml.types.I_CmsXmlContentValue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import org.apache.commons.fileupload.FileItem;

    /**
     * Initializes the form configuration and creates the necessary form field objects.<p>
     * 
     * @param jsp the initialized CmsJspActionElement to access the OpenCms API
     * @param messages the localized messages
     * @param initial if true, field values are filled with values specified in the XML configuration
     * @param formConfigUri URI of the form configuration file, if not provided, current URI is used for configuration
     * @param formAction the desired action submitted by the form
     * 
     * @throws Exception if parsing the configuration fails
     */
    public void init(CmsFormHandler jsp, CmsMessages messages, boolean initial, String formConfigUri, String formAction)
    throws Exception {

        init(jsp, messages, initial, formConfigUri, formAction, null);
    }

    /**
     * Initializes the form configuration and creates the necessary form field objects.<p>
     * 
     * @param jsp the initialized CmsJspActionElement to access the OpenCms API
     * @param messages the localized messages
     * @param initial if true, field values are filled with values specified in the XML configuration
     * @param formConfigUri URI of the form configuration file, if not provided, current URI is used for configuration
     * @param formAction the desired action submitted by the form
     * @param dynamicConfig map of configurations that can overwrite the configuration from the configuration file
     * 
     * @throws Exception if parsing the configuration fails
     */
    public void init(

// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsFormContentUtil.java
// public static String getContentStringValue(CmsXmlContent content, CmsObject cms, String path, Locale locale) {
// 
//     return content.getStringValue(cms, getNestedPathPrefix(content, NODE_NESTED_FORM, locale) + path, locale);
// }
// 
// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsFormContentUtil.java
// public static I_CmsXmlContentValue getContentValue(CmsXmlContent content, String path, Locale locale) {
// 
//     return content.getValue(getNestedPathPrefix(content, NODE_NESTED_FORM, locale) + path, locale);
// }
// 
// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsFormContentUtil.java
// public static List<I_CmsXmlContentValue> getContentValues(CmsXmlContent content, String path, Locale locale) {
// 
//     return content.getValues(getNestedPathPrefix(content, NODE_NESTED_FORM, locale) + path, locale);
// }


// Path: com.alkacon.opencms.v8.formgenerator/src/com/alkacon/opencms/v8/formgenerator/CmsForm.java
import static com.alkacon.opencms.v8.formgenerator.CmsFormContentUtil.getContentStringValue;
import static com.alkacon.opencms.v8.formgenerator.CmsFormContentUtil.getContentValue;
import static com.alkacon.opencms.v8.formgenerator.CmsFormContentUtil.getContentValues;
import org.opencms.configuration.CmsConfigurationException;
import org.opencms.file.CmsFile;
import org.opencms.file.CmsObject;
import org.opencms.i18n.CmsMessages;
import org.opencms.jsp.CmsJspActionElement;
import org.opencms.main.OpenCms;
import org.opencms.util.CmsMacroResolver;
import org.opencms.util.CmsStringUtil;
import org.opencms.workplace.CmsWorkplace;
import org.opencms.xml.content.CmsXmlContent;
import org.opencms.xml.content.CmsXmlContentFactory;
import org.opencms.xml.types.CmsXmlHtmlValue;
import org.opencms.xml.types.I_CmsXmlContentValue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import org.apache.commons.fileupload.FileItem;

    /**
     * Initializes the form configuration and creates the necessary form field objects.<p>
     * 
     * @param jsp the initialized CmsJspActionElement to access the OpenCms API
     * @param messages the localized messages
     * @param initial if true, field values are filled with values specified in the XML configuration
     * @param formConfigUri URI of the form configuration file, if not provided, current URI is used for configuration
     * @param formAction the desired action submitted by the form
     * 
     * @throws Exception if parsing the configuration fails
     */
    public void init(CmsFormHandler jsp, CmsMessages messages, boolean initial, String formConfigUri, String formAction)
    throws Exception {

        init(jsp, messages, initial, formConfigUri, formAction, null);
    }

    /**
     * Initializes the form configuration and creates the necessary form field objects.<p>
     * 
     * @param jsp the initialized CmsJspActionElement to access the OpenCms API
     * @param messages the localized messages
     * @param initial if true, field values are filled with values specified in the XML configuration
     * @param formConfigUri URI of the form configuration file, if not provided, current URI is used for configuration
     * @param formAction the desired action submitted by the form
     * @param dynamicConfig map of configurations that can overwrite the configuration from the configuration file
     * 
     * @throws Exception if parsing the configuration fails
     */
    public void init(

        CmsFormHandler jsp,
