/******************************************************************************* * 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.util.ArrayList; import java.util.List; import com.lowagie.text.Table; import com.opendoorlogistics.api.ODLApi; import com.opendoorlogistics.api.scripts.ScriptAdapter; import com.opendoorlogistics.api.scripts.ScriptAdapterTable; import com.opendoorlogistics.api.scripts.ScriptInputTables; import com.opendoorlogistics.api.tables.ODLColumnType; import com.opendoorlogistics.api.tables.ODLTableDefinition; import com.opendoorlogistics.core.api.impl.scripts.ScriptOptionImpl.FindMode; import com.opendoorlogistics.core.scripts.ScriptConstants; import com.opendoorlogistics.core.scripts.elements.AdaptedTableConfig; import com.opendoorlogistics.core.scripts.elements.AdapterColumnConfig; import com.opendoorlogistics.core.scripts.elements.AdapterConfig; import com.opendoorlogistics.core.scripts.elements.Option; import com.opendoorlogistics.core.scripts.wizard.TableLinkerWizard; import com.opendoorlogistics.core.utils.strings.Strings; public class ScriptAdapterImpl extends ScriptElementImpl implements ScriptAdapter{ private final AdapterConfig adapter; public ScriptAdapterImpl(ODLApi api, ScriptOptionImpl owner, AdapterConfig adapter) { super(api, owner, adapter); this.adapter = adapter; } @Override public List<ScriptAdapterTable> addSourcedTablesToAdapter(ScriptInputTables tables) { ArrayList<ScriptAdapterTable> ret = new ArrayList<>(); for(int i = 0 ; i< tables.size();i++){ ret.add(addSourcedTableToAdapter(tables.getSourceDatastoreId(i),tables.getSourceTable(i), tables.getTargetTable(i))); } return ret; } ScriptAdapterTable addAdaptedTable( AdaptedTableConfig newTableConfig) { adapter.getTables().add(newTableConfig); ScriptAdapterTableImpl ret = new ScriptAdapterTableImpl(newTableConfig); return ret; } @Override public ScriptAdapterTable addSourcedTableToAdapter(String datastoreId,ODLTableDefinition source, ODLTableDefinition destination) { AdaptedTableConfig table = TableLinkerWizard.createBestGuess(source, destination, TableLinkerWizard.FLAG_USE_ROWID_FOR_LOCATION_KEY); table.setName(destination.getName()); table.setFromDatastore(datastoreId); return addAdaptedTable( table); } @Override public ScriptAdapterTable addSourcelessTable(ODLTableDefinition table) { return addAdaptedTable(TableLinkerWizard.createBestGuess(null, table)); // WizardUtils.createAdaptedTableConfig(table, table.getName()) // ); } @Override public int getTableCount() { return adapter.getTableCount(); } @Override public String getAdapterId() { return adapter.getId(); } @Override public long getFlags() { return adapter.getFlags(); } @Override public void setFlags(long flags) { adapter.setFlags(flags); } @Override public ScriptAdapterTable addEmptyTable(String tableName) { AdaptedTableConfig table = new AdaptedTableConfig(); table.setName(tableName); return addAdaptedTable(table); } @Override public ScriptAdapterTable getTable(int i) { return new ScriptAdapterTableImpl(adapter.getTable(i)); } @Override public ScriptAdapterType getAdapterType() { return adapter.getAdapterType(); } @Override public void setAdapterType(ScriptAdapterType type) { adapter.setAdapterType(type); } }