package com.dci.intellij.dbn.generator.action;
import com.dci.intellij.dbn.browser.DatabaseBrowserManager;
import com.dci.intellij.dbn.database.DatabaseCompatibilityInterface;
import com.dci.intellij.dbn.database.DatabaseFeature;
import com.dci.intellij.dbn.object.DBColumn;
import com.dci.intellij.dbn.object.DBDataset;
import com.dci.intellij.dbn.object.DBSchema;
import com.dci.intellij.dbn.object.DBTable;
import com.dci.intellij.dbn.object.common.DBObject;
import com.dci.intellij.dbn.object.common.DBSchemaObject;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import java.util.List;
public class GenerateStatementActionGroup extends DefaultActionGroup {
public GenerateStatementActionGroup(DBObject object) {
super("Extract SQL Statement", true);
if (object instanceof DBColumn || object instanceof DBDataset) {
List<DBObject> selectedObjects = DatabaseBrowserManager.getInstance(object.getProject()).getSelectedObjects();
add(new GenerateSelectStatementAction(selectedObjects));
}
if (object instanceof DBTable) {
DBTable table = (DBTable) object;
add(new GenerateInsertStatementAction(table));
}
DatabaseCompatibilityInterface compatibilityInterface = DatabaseCompatibilityInterface.getInstance(object);
if (object instanceof DBSchemaObject &&
object.getParentObject() instanceof DBSchema &&
compatibilityInterface.supportsFeature(DatabaseFeature.OBJECT_DDL_EXTRACTION)) {
if (getChildrenCount() > 1) {
addSeparator();
}
add(new GenerateDDLStatementAction(object));
}
}
}