package org.insightech.er.db.impl.hsqldb; import org.insightech.er.editor.model.ERDiagram; import org.insightech.er.editor.model.dbexport.ddl.DDLCreator; import org.insightech.er.editor.model.diagram_contents.not_element.sequence.Sequence; import org.insightech.er.editor.model.diagram_contents.not_element.tablespace.Tablespace; import org.insightech.er.util.Check; public class HSQLDBDDLCreator extends DDLCreator { public HSQLDBDDLCreator(ERDiagram diagram, boolean semicolon) { super(diagram, semicolon); } @Override protected String getDDL(Tablespace tablespace) { return null; } @Override public String getDDL(Sequence sequence) { StringBuilder ddl = new StringBuilder(); String description = sequence.getDescription(); if (this.semicolon && !Check.isEmpty(description) && this.ddlTarget.inlineTableComment) { ddl.append("-- "); ddl.append(description.replaceAll("\n", "\n-- ")); ddl.append("\r\n"); } ddl.append("CREATE "); ddl.append("SEQUENCE "); ddl.append(filter(this.getNameWithSchema(sequence.getSchema(), sequence .getName()))); if (!Check.isEmpty(sequence.getDataType())) { ddl.append(" AS "); String dataType = sequence.getDataType(); ddl.append(dataType); } if (sequence.getIncrement() != null) { ddl.append(" INCREMENT BY "); ddl.append(sequence.getIncrement()); } if (sequence.getMinValue() != null) { ddl.append(" MINVALUE "); ddl.append(sequence.getMinValue()); } if (sequence.getMaxValue() != null) { ddl.append(" MAXVALUE "); ddl.append(sequence.getMaxValue()); } if (sequence.getStart() != null) { ddl.append(" START WITH "); ddl.append(sequence.getStart()); } if (sequence.isCycle()) { ddl.append(" CYCLE"); } if (this.semicolon) { ddl.append(";"); } return ddl.toString(); } }