/******************************************************************************* * 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.studio.scripts.editor.adapters; import com.opendoorlogistics.api.tables.ODLColumnType; import com.opendoorlogistics.api.tables.ODLDatastore; import com.opendoorlogistics.api.tables.ODLTableDefinition; import com.opendoorlogistics.core.tables.utils.TableUtils; import com.opendoorlogistics.core.utils.strings.Strings; /** * Query acting against a single datastore * @author Phil * */ public abstract class QueryAvailableDataImpl implements QueryAvailableData{ protected abstract ODLDatastore<? extends ODLTableDefinition> getDs(); protected abstract String getDsName(); @Override public String[] queryAvailableFields(String datastore, String tablename) { if (getDs()!= null && Strings.equalsStd(getDsName(), datastore)) { ODLTableDefinition table = TableUtils.findTable(getDs(), tablename, true); if (table != null) { return TableUtils.getColumnNames(table); } } return new String[] {}; } @Override public String[] queryAvailableTables(String datastore) { if (getDs() != null && Strings.equalsStd(getDsName(), datastore)) { return TableUtils.getAlphabeticallySortedTableNames(getDs()); } return new String[] {}; } @Override public String[] queryAvailableDatastores() { if(getDsName()!=null){ return new String[] { getDsName()}; } return new String[]{}; } @Override public String[] queryAvailableFormula(ODLColumnType columnType) { return new String[]{}; } @Override public ODLDatastore<? extends ODLTableDefinition> getDatastoreDefinition(String datastore){ if(Strings.equalsStd(getDsName(), datastore) ){ return getDs(); } return null; } @Override public ODLTableDefinition getTableDefinition(String datastore, String tablename){ ODLDatastore<? extends ODLTableDefinition> ds = getDatastoreDefinition(datastore); if(ds!=null){ return TableUtils.findTable(ds, tablename); } return null; } }