/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt ******************************************************************************/ package com.opendoorlogistics.core.api.impl.scripts; import java.io.Serializable; import java.util.ArrayList; import com.opendoorlogistics.api.ODLApi; import com.opendoorlogistics.api.components.ODLComponent; import com.opendoorlogistics.api.scripts.ScriptInputTables; import com.opendoorlogistics.api.scripts.ScriptTemplatesBuilder; import com.opendoorlogistics.api.tables.ODLDatastore; import com.opendoorlogistics.api.tables.ODLTableDefinition; import com.opendoorlogistics.core.components.ODLWizardTemplateConfig; import com.opendoorlogistics.core.scripts.elements.Script; import com.opendoorlogistics.core.scripts.io.ScriptIO; public class ScriptTemplatesImpl implements ScriptTemplatesBuilder { private final ArrayList<ODLWizardTemplateConfig> templates = new ArrayList<>(); private final ODLApi api ; public ScriptTemplatesImpl(ODLApi api) { this.api = api; } public static Iterable<ODLWizardTemplateConfig> getTemplates(ODLApi api,ODLComponent component){ ScriptTemplatesImpl stapi = new ScriptTemplatesImpl(api); component.registerScriptTemplates(stapi); return stapi.getTemplates(); } /** * This method is called by a component to register its script templates. * The script is then built automatically. */ @Override public void registerTemplate(String shortName, String name, String description,ODLDatastore<? extends ODLTableDefinition>expectedDatastore, Serializable config) { registerTemplate(shortName, name, description, expectedDatastore,config, ODLWizardTemplateConfig.STANDARD_FLAGS, ODLComponent.MODE_DEFAULT); } /** * This method is called by a component to register its script templates. * The script is then built automatically. */ @Override public void registerTemplate(String shortName, String name, String description, ODLDatastore<? extends ODLTableDefinition>expectedDatastore,Serializable config, long flags, int executionMode) { templates.add(new ODLWizardTemplateConfig( shortName, name, description,expectedDatastore, config, flags, executionMode,null)); } /** * This method is called by a component to register its script templates */ @Override public void registerTemplate(String shortName, String name, String description,ODLDatastore<? extends ODLTableDefinition>expectedDatastore, BuildScriptCallback buildScriptCB) { registerTemplate(shortName, name, description,expectedDatastore, buildScriptCB, ODLWizardTemplateConfig.STANDARD_FLAGS); } /** * This method is called by a component to register its script templates */ @Override public void registerTemplate(String shortName, String name, String description,ODLDatastore<? extends ODLTableDefinition>expectedDatastore,final BuildScriptCallback buildScriptCB, long flags) { templates.add(new ODLWizardTemplateConfig( shortName, name, description,expectedDatastore, null, flags, -1,buildScriptCB)); } public Iterable<ODLWizardTemplateConfig> getTemplates(){ return templates; } @Override public ODLApi getApi() { return api; } }