Skip to content

Commit 8d43fac

Browse files
committed
fixes #701
1 parent ab4054c commit 8d43fac

File tree

6 files changed

+35
-46
lines changed

6 files changed

+35
-46
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ Also I would like to know about needed examples or documentation stuff.
8282
* support for **VIEW** as object name
8383
* functions hold now multipart names
8484
* support for **DISABLE** as object name
85+
* API change in `ColumnDefinition.setColumnSpecStrings` to `ColumnDefinition.setColumnSpecs` to better allow the merge between `AlterExpression.ColumnDataType` and `ColumnDefinition`
8586

8687
## Extensions of JSqlParser releases
8788

src/main/java/net/sf/jsqlparser/statement/alter/AlterExpression.java

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
import java.util.ArrayList;
1313
import java.util.Arrays;
14-
import java.util.Collections;
1514
import java.util.List;
1615
import net.sf.jsqlparser.statement.create.table.ColDataType;
16+
import net.sf.jsqlparser.statement.create.table.ColumnDefinition;
1717
import net.sf.jsqlparser.statement.create.table.Index;
1818
import net.sf.jsqlparser.statement.select.PlainSelect;
1919

@@ -320,49 +320,21 @@ public String toString() {
320320
return b.toString();
321321
}
322322

323-
public static class ColumnDataType {
324-
325-
private final String columnName;
323+
public final static class ColumnDataType extends ColumnDefinition {
326324
private final boolean withType;
327-
private final ColDataType colDataType;
328-
private final List<String> columnSpecs;
329325

330326
public ColumnDataType(String columnName, boolean withType, ColDataType colDataType, List<String> columnSpecs) {
331-
this.columnName = columnName;
327+
super(columnName, colDataType, columnSpecs);
332328
this.withType = withType;
333-
this.colDataType = colDataType;
334-
this.columnSpecs = columnSpecs;
335-
}
336-
337-
public String getColumnName() {
338-
return columnName;
339-
}
340-
341-
public ColDataType getColDataType() {
342-
return colDataType;
343-
}
344-
345-
public List<String> getColumnSpecs() {
346-
if (columnSpecs == null) {
347-
return Collections.emptyList();
348-
}
349-
return Collections.unmodifiableList(columnSpecs);
350329
}
351330

352331
@Override
353332
public String toString() {
354-
return columnName + (withType ? " TYPE " : " ") + colDataType + parametersToString();
355-
}
356-
357-
private String parametersToString() {
358-
if (columnSpecs == null || columnSpecs.isEmpty()) {
359-
return "";
360-
}
361-
return " " + PlainSelect.getStringList(columnSpecs, false, false);
333+
return getColumnName() + (withType ? " TYPE " : " ") + toStringDataTypeAndSpec();
362334
}
363335
}
364336

365-
public static class ColumnDropNotNull {
337+
public final static class ColumnDropNotNull {
366338

367339
private final String columnName;
368340
private final boolean withNot;

src/main/java/net/sf/jsqlparser/statement/create/table/ColumnDefinition.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,30 @@
1313

1414
import net.sf.jsqlparser.statement.select.PlainSelect;
1515

16+
/**
17+
* Globally used definition class for columns.
18+
*/
1619
public class ColumnDefinition {
1720

1821
private String columnName;
1922
private ColDataType colDataType;
20-
private List<String> columnSpecStrings;
23+
private List<String> columnSpecs;
24+
25+
public ColumnDefinition() {
26+
}
2127

22-
public List<String> getColumnSpecStrings() {
23-
return columnSpecStrings;
28+
public ColumnDefinition(String columnName, ColDataType colDataType, List<String> columnSpecs) {
29+
this.columnName = columnName;
30+
this.colDataType = colDataType;
31+
this.columnSpecs = columnSpecs;
2432
}
2533

26-
public void setColumnSpecStrings(List<String> list) {
27-
columnSpecStrings = list;
34+
public List<String> getColumnSpecs() {
35+
return columnSpecs;
36+
}
37+
38+
public void setColumnSpecs(List<String> list) {
39+
columnSpecs = list;
2840
}
2941

3042
public ColDataType getColDataType() {
@@ -45,7 +57,11 @@ public void setColumnName(String string) {
4557

4658
@Override
4759
public String toString() {
48-
return columnName + " " + colDataType + (columnSpecStrings != null ? " " + PlainSelect.
49-
getStringList(columnSpecStrings, false, false) : "");
60+
return columnName + " " + toStringDataTypeAndSpec();
61+
}
62+
63+
public String toStringDataTypeAndSpec() {
64+
return colDataType + ((columnSpecs != null && !columnSpecs.isEmpty())? " " + PlainSelect.
65+
getStringList(columnSpecs, false, false) : "");
5066
}
5167
}

src/main/java/net/sf/jsqlparser/util/deparser/CreateTableDeParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ public void deParse(CreateTable createTable) {
6868
buffer.append(columnDefinition.getColumnName());
6969
buffer.append(" ");
7070
buffer.append(columnDefinition.getColDataType().toString());
71-
if (columnDefinition.getColumnSpecStrings() != null) {
72-
for (String s : columnDefinition.getColumnSpecStrings()) {
71+
if (columnDefinition.getColumnSpecs() != null) {
72+
for (String s : columnDefinition.getColumnSpecs()) {
7373
buffer.append(" ");
7474
buffer.append(s);
7575
}

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3675,7 +3675,7 @@ ColumnDefinition ColumnDefinition(): {
36753675
coldef.setColumnName(columnName);
36763676
coldef.setColDataType(colDataType);
36773677
if (columnSpecs.size() > 0)
3678-
coldef.setColumnSpecStrings(columnSpecs);
3678+
coldef.setColumnSpecs(columnSpecs);
36793679
return coldef;
36803680
}
36813681
}
@@ -3842,7 +3842,7 @@ CreateTable CreateTable():
38423842
coldef.setColumnName(columnName);
38433843
coldef.setColDataType(colDataType);
38443844
if (columnSpecs.size() > 0)
3845-
coldef.setColumnSpecStrings(columnSpecs);
3845+
coldef.setColumnSpecs(columnSpecs);
38463846
columnDefinitions.add(coldef);
38473847
} */
38483848
{ columnDefinitions.add(coldef); }

src/test/java/net/sf/jsqlparser/statement/create/CreateTableTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,8 @@ public void testRUBiSCreateList() throws Exception {
438438
}
439439

440440
if (!unique) {
441-
if (columnDefinition.getColumnSpecStrings() != null) {
442-
for (Iterator iterator = columnDefinition.getColumnSpecStrings().
441+
if (columnDefinition.getColumnSpecs() != null) {
442+
for (Iterator iterator = columnDefinition.getColumnSpecs().
443443
iterator(); iterator
444444
.hasNext();) {
445445
String par = (String) iterator.next();

0 commit comments

Comments
 (0)