/*******************************************************************************
* 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.components;
import java.io.Serializable;
import com.opendoorlogistics.api.scripts.ScriptInputTables;
import com.opendoorlogistics.api.scripts.ScriptTemplatesBuilder.BuildScriptCallback;
import com.opendoorlogistics.api.tables.ODLDatastore;
import com.opendoorlogistics.api.tables.ODLTableDefinition;
import com.opendoorlogistics.core.scripts.elements.Script;
public class ODLWizardTemplateConfig {
private final String shortName;
private final String name;
private final String description;
private final Serializable config;
private final long flags;
private final int executionMode;
private final ODLDatastore<? extends ODLTableDefinition> expectedIods;
private final BuildScriptCallback buildScriptCB;
//public static long FLAG_IO_DATASTORE_IS_FIXED = 1<<0;
public static long FLAG_OUTPUT_DATASTORE_IS_FIXED = 1<<1;
public static long STANDARD_FLAGS = FLAG_OUTPUT_DATASTORE_IS_FIXED;
// public ODLWizardTemplateConfig(String shortName, String name, String description, Serializable config) {
// this(shortName, name, description, config, STANDARD_FLAGS, ODLComponent.MODE_DEFAULT);
// }
public ODLWizardTemplateConfig(String shortName, String name, String description, ODLDatastore<? extends ODLTableDefinition> expectedIods, Serializable config, long flags, int executionMode, BuildScriptCallback buildScriptCB) {
this.shortName = shortName;
this.name = name;
this.description = description;
this.config = config;
this.flags = flags;
this.executionMode = executionMode;
this.expectedIods = expectedIods;
this.buildScriptCB = buildScriptCB;
}
public String getShortName() {
return shortName;
}
public boolean hasFlag(long flag){
return (flags & flag) == flag;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public Serializable getConfig() {
return config;
}
// /**
// * Override this to create your own template script
// * @param cb
// * @param selectedTables
// * @return
// */
// public Script createScript(ScriptInputTables inputTables){
// return null;
// }
public int getExecutionMode(){
return executionMode;
}
public ODLDatastore<? extends ODLTableDefinition> getExpectedIods() {
return expectedIods;
}
public BuildScriptCallback getBuildScriptCB() {
return buildScriptCB;
}
}