/** * Copyright (C) 2010 BonitaSoft S.A. * BonitaSoft, 31 rue Gustave Eiffel - 38000 Grenoble * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2.0 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.bonitasoft.forms.server.api; import java.util.Date; import org.bonitasoft.console.common.server.preferences.properties.PropertiesFactory; import org.bonitasoft.forms.server.accessor.impl.util.FormCacheUtil; import org.bonitasoft.forms.server.accessor.impl.util.FormCacheUtilFactory; import org.bonitasoft.forms.server.api.impl.FormDefinitionAPIImpl; import org.bonitasoft.forms.server.api.impl.FormExpressionsAPIImpl; import org.bonitasoft.forms.server.api.impl.FormValidationAPIImpl; import org.bonitasoft.forms.server.api.impl.FormWorkflowAPIImpl; import org.bonitasoft.forms.server.exception.InvalidFormDefinitionException; import org.w3c.dom.Document; /** * @author Anthony Birembaut * */ public class FormAPIFactory { public static IFormExpressionsAPI getFormExpressionsAPI() { return new FormExpressionsAPIImpl(); } public static IFormWorkflowAPI getFormWorkflowAPI() { return new FormWorkflowAPIImpl(); } public static IFormValidationAPI getFormValidationAPI() { return new FormValidationAPIImpl(); } /** * @param tenantID * the tenant ID * @param document * the document * @param processDeployementDate * the process deployment date * @param locale * locale * @return the from definition API implementation * @throws InvalidFormDefinitionException */ public static IFormDefinitionAPI getFormDefinitionAPI(final long tenantID, final Document document, final Date processDeployementDate, final String locale) throws InvalidFormDefinitionException { long tenantToUse = tenantID; if (tenantID == -1) { final String tenantIDStr = PropertiesFactory.getPlatformTenantConfigProperties().getDefaultTenantId(); if (tenantIDStr != null) { tenantToUse = Long.parseLong(tenantIDStr); } } final FormCacheUtil formCacheUtil = FormCacheUtilFactory.getTenantFormCacheUtil(tenantID); return new FormDefinitionAPIImpl(tenantToUse, document, formCacheUtil, processDeployementDate, locale); } }