package org.insightech.er.db.impl.oracle;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.insightech.er.db.DBManagerBase;
import org.insightech.er.db.impl.oracle.tablespace.OracleTablespaceProperties;
import org.insightech.er.db.sqltype.SqlTypeManager;
import org.insightech.er.editor.model.ERDiagram;
import org.insightech.er.editor.model.dbexport.db.PreTableExportManager;
import org.insightech.er.editor.model.dbexport.ddl.DDLCreator;
import org.insightech.er.editor.model.dbimport.ImportFromDBManager;
import org.insightech.er.editor.model.dbimport.PreImportFromDBManager;
import org.insightech.er.editor.model.diagram_contents.element.node.table.ERTable;
import org.insightech.er.editor.model.diagram_contents.element.node.table.properties.TableProperties;
import org.insightech.er.editor.model.diagram_contents.not_element.tablespace.TablespaceProperties;
public class OracleDBManager extends DBManagerBase {
public static final String ID = "Oracle";
public String getId() {
return ID;
}
/**
* {@inheritDoc}
*/
@Override
public String getDriverClassName() {
return "oracle.jdbc.driver.OracleDriver";
}
/**
* {@inheritDoc}
*/
@Override
protected String getURL() {
return "jdbc:oracle:thin:@<SERVER NAME>:<PORT>:<DB NAME>";
}
public int getDefaultPort() {
return 1521;
}
public SqlTypeManager getSqlTypeManager() {
return new OracleSqlTypeManager();
}
public TableProperties createTableProperties(TableProperties tableProperties) {
if (tableProperties != null
&& tableProperties instanceof OracleTableProperties) {
return tableProperties;
}
return new OracleTableProperties();
}
public DDLCreator getDDLCreator(ERDiagram diagram, boolean semicolon) {
return new OracleDDLCreator(diagram, semicolon);
}
public List<String> getIndexTypeList(ERTable table) {
List<String> list = new ArrayList<String>();
list.add("BTREE");
return list;
}
@Override
protected int[] getSupportItems() {
return new int[] { SUPPORT_AUTO_INCREMENT, SUPPORT_SCHEMA,
SUPPORT_SEQUENCE };
}
public ImportFromDBManager getTableImportManager() {
return new OracleTableImportManager();
}
public PreImportFromDBManager getPreTableImportManager() {
return new OraclePreTableImportManager();
}
public PreTableExportManager getPreTableExportManager() {
return new OraclePreTableExportManager();
}
public TablespaceProperties createTablespaceProperties() {
return new OracleTablespaceProperties();
}
public TablespaceProperties checkTablespaceProperties(
TablespaceProperties tablespaceProperties) {
if (!(tablespaceProperties instanceof OracleTablespaceProperties)) {
return new OracleTablespaceProperties();
}
return tablespaceProperties;
}
public String[] getCurrentTimeValue() {
return new String[] { "SYSDATE" };
}
@Override
public List<String> getSystemSchemaList() {
List<String> list = new ArrayList<String>();
list.add("anonymous");
list.add("ctxsys");
list.add("dbsnmp");
list.add("dip");
list.add("flows_020100");
list.add("flows_files");
list.add("hr");
list.add("mdsys");
list.add("outln");
list.add("sys");
list.add("system");
list.add("tsmsys");
list.add("xdb");
return list;
}
public BigDecimal getSequenceMaxValue() {
return new BigDecimal("9999999999999999999999999999");
}
}