Skip to content

Commit 65a76ae

Browse files
author
chengyitian
committed
Merge remote-tracking branch 'origin/dev'
2 parents 85a53c2 + 1e0dd1a commit 65a76ae

29 files changed

Lines changed: 4195 additions & 446 deletions

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>com.dolphindb</groupId>
44
<artifactId>dolphindb-javaapi</artifactId>
5-
<version>3.00.5.0</version>
5+
<version>3.00.5.1</version>
66
<packaging>jar</packaging>
77

88
<properties>
9-
<dolphindb.version>3.00.5.0</dolphindb.version>
9+
<dolphindb.version>3.00.5.1</dolphindb.version>
1010
</properties>
1111
<name>DolphinDB Java API</name>
1212
<description>The messaging and data conversion protocol between Java and DolphinDB server</description>
@@ -31,7 +31,7 @@
3131
<connection>scm:git:git@github.com:dolphindb/api-java.git</connection>
3232
<developerConnection>scm:git:git@github.com:dolphindb/api-java.git</developerConnection>
3333
<url>git@github.com:dolphindb/api-java.git</url>
34-
<tag>api-java-3.00.5.0</tag>
34+
<tag>api-java-3.00.5.1</tag>
3535
</scm>
3636
<dependencies>
3737
<dependency>

src/com/xxdb/data/BasicDateHourVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public BasicDateHourVector(int size, int capacity) {
2727
public BasicDateHourVector(List<Integer> list){
2828
super(list);
2929
}
30+
31+
public BasicDateHourVector(LocalDateTime[] array){
32+
this(Utils.dateHourVectorValues(array), false);
33+
}
34+
35+
public BasicDateHourVector(Calendar[] array){
36+
this(Utils.dateHourVectorValues(array), false);
37+
}
3038

3139
public BasicDateHourVector(int[] array){
3240
super(array);

src/com/xxdb/data/BasicDateTimeVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public BasicDateTimeVector(int size, int capacity) {
2727
public BasicDateTimeVector(List<Integer> list){
2828
super(list);
2929
}
30+
31+
public BasicDateTimeVector(LocalDateTime[] array){
32+
this(Utils.dateTimeVectorValues(array), false);
33+
}
34+
35+
public BasicDateTimeVector(Calendar[] array){
36+
this(Utils.dateTimeVectorValues(array), false);
37+
}
3038

3139
public BasicDateTimeVector(int[] array){
3240
super(array);

src/com/xxdb/data/BasicDateVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public BasicDateVector(int size, int capacity) {
2727
public BasicDateVector(List<Integer> list){
2828
super(list);
2929
}
30+
31+
public BasicDateVector(LocalDate[] array){
32+
this(Utils.dateVectorValues(array), false);
33+
}
34+
35+
public BasicDateVector(Calendar[] array){
36+
this(Utils.dateVectorValues(array), false);
37+
}
3038

3139
public BasicDateVector(int[] array){
3240
super(array);

src/com/xxdb/data/BasicMinuteVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ public BasicMinuteVector(int size, int capacity) {
2626
public BasicMinuteVector(List<Integer> list){
2727
super(list);
2828
}
29+
30+
public BasicMinuteVector(LocalTime[] array){
31+
this(Utils.minuteVectorValues(array), false);
32+
}
33+
34+
public BasicMinuteVector(Calendar[] array){
35+
this(Utils.minuteVectorValues(array), false);
36+
}
2937

3038
public BasicMinuteVector(int[] array){
3139
super(array);

src/com/xxdb/data/BasicMonthVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public BasicMonthVector(List<Integer> list) {
2727
super(list);
2828
}
2929

30+
public BasicMonthVector(YearMonth[] array) {
31+
this(Utils.monthVectorValues(array), false);
32+
}
33+
34+
public BasicMonthVector(Calendar[] array) {
35+
this(Utils.monthVectorValues(array), false);
36+
}
37+
3038
public BasicMonthVector(int[] array) {
3139
super(array);
3240
}

src/com/xxdb/data/BasicNanoTimeVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public BasicNanoTimeVector(List<Long> list){
2727
super(list);
2828
}
2929

30+
public BasicNanoTimeVector(LocalTime[] array){
31+
this(Utils.nanoTimeVectorValues(array), false);
32+
}
33+
34+
public BasicNanoTimeVector(LocalDateTime[] array){
35+
this(Utils.nanoTimeVectorValues(array), false);
36+
}
37+
3038
public BasicNanoTimeVector(long[] array){
3139
super(array);
3240
}

src/com/xxdb/data/BasicNanoTimestampVector.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ public BasicNanoTimestampVector(List<Long> list){
2626
super(list);
2727
}
2828

29+
public BasicNanoTimestampVector(LocalDateTime[] array){
30+
this(Utils.nanoTimestampVectorValues(array), false);
31+
}
32+
2933
public BasicNanoTimestampVector(long[] array){
3034
super(array);
3135
}

src/com/xxdb/data/BasicSecondVector.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ public BasicSecondVector(int size, int capacity) {
2626
public BasicSecondVector(List<Integer> list){
2727
super(list);
2828
}
29+
30+
public BasicSecondVector(LocalTime[] array){
31+
this(Utils.secondVectorValues(array), false);
32+
}
33+
34+
public BasicSecondVector(Calendar[] array){
35+
this(Utils.secondVectorValues(array), false);
36+
}
2937

3038
public BasicSecondVector(int[] array){
3139
super(array);

src/com/xxdb/data/BasicTable.java

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public class BasicTable extends AbstractEntity implements Table{
2222

2323
private static final Logger log = LoggerFactory.getLogger(BasicTable.class);
2424

25+
public BasicTable() {
26+
}
27+
2528
public BasicTable(ExtendedDataInput in) throws IOException{
2629
int rows = in.readInt();
2730
int cols = in.readInt();
@@ -71,20 +74,59 @@ public BasicTable(ExtendedDataInput in) throws IOException{
7174
}
7275

7376
public BasicTable(final List<String> colNames, final List<Vector> cols) {
77+
if (Objects.isNull(colNames))
78+
throw new RuntimeException("The param 'colNames' in table cannot be null.");
79+
if (Objects.isNull(cols))
80+
throw new RuntimeException("The param 'cols' in table cannot be null.");
81+
82+
Utils.validateColumnNames(colNames);
83+
7484
if(colNames.size() != cols.size()){
7585
throw new Error("The length of column name and column data is unequal.");
7686
}
7787

78-
int rowsCount = cols.get(0).rows();
88+
int rowsCount = -1;
7989
for (int i=0;i<cols.size();i++) {
8090
Vector v = cols.get(i);
81-
if(v.rows() != rowsCount)
91+
if (Objects.isNull(v))
92+
throw new RuntimeException("Column [" + colNames.get(i) + "] is null.");
93+
if(i == 0)
94+
rowsCount = v.rows();
95+
else if(v.rows() != rowsCount)
8296
throw new Error("The length of column " + colNames.get(i) + " must be the same as the first column length.");
8397
}
8498
this.setColName(colNames);
8599
this.setColumns(cols);
86100
}
87101

102+
/**
103+
* @param colNames
104+
* @param cols: only supports List input;
105+
*/
106+
public BasicTable(final List<String> colNames, final Collection<?> cols) {
107+
this(colNames, Utils.inferAndConvertJavaColumns(colNames, cols));
108+
}
109+
110+
public BasicTable(final List<String> colNames, final Object[] cols) {
111+
this(colNames, Utils.inferAndConvertJavaColumns(colNames, cols));
112+
}
113+
114+
public BasicTable(final List<String> colNames, final List<?> cols, final DATA_TYPE[] colTypes) {
115+
this(colNames, cols, colTypes, null);
116+
}
117+
118+
public BasicTable(final List<String> colNames, final List<?> cols, final DATA_TYPE[] colTypes, final int[] colExtraParams) {
119+
this(colNames, Utils.convertColumns(colNames, cols, colTypes, colExtraParams));
120+
}
121+
122+
public BasicTable(final List<String> colNames, final Object[] cols, final DATA_TYPE[] colTypes) {
123+
this(colNames, cols == null ? null : Arrays.asList(cols), colTypes);
124+
}
125+
126+
public BasicTable(final List<String> colNames, final Object[] cols, final DATA_TYPE[] colTypes, final int[] colExtraParams) {
127+
this(colNames, cols == null ? null : Arrays.asList(cols), colTypes, colExtraParams);
128+
}
129+
88130
public void setColumnCompressTypes(int[] colCompresses) {
89131
if (colCompresses!=null && colCompresses.length != columns.size()) {
90132
throw new RuntimeException("Compress type size must match column size "+ columns.size()+".");
@@ -121,6 +163,7 @@ public int[] getColumnCompressTypes() {
121163
* @param colNames
122164
*/
123165
public void setColName (final List<String> colNames) {
166+
Utils.validateColumnNames(colNames);
124167
this.colNames.clear();
125168
colNamesIndex.clear();
126169
for (String name : colNames){
@@ -184,6 +227,8 @@ public String getColumnName(int index){
184227
}
185228

186229
public String getString(){
230+
if(columns() == 0)
231+
return "";
187232
int rows = Math.min(Utils.DISPLAY_ROWS,rows());
188233
int strColMaxWidth = Utils.DISPLAY_WIDTH/Math.min(columns(),Utils.DISPLAY_COLS)+5;
189234
int length=0;
@@ -376,12 +421,30 @@ public void addColumn(String colName, Vector col) {
376421
if (colNames.contains(colName))
377422
throw new RuntimeException("The table already contains column '" + colName + "'.");
378423

379-
if (Objects.nonNull(this.columns) && Objects.nonNull(this.columns.get(0)) && this.getColumn(0).rows() != col.rows())
424+
if (Objects.nonNull(this.columns) && !this.columns.isEmpty() && Objects.nonNull(this.columns.get(0)) && this.getColumn(0).rows() != col.rows())
380425
throw new RuntimeException("The length of column " + colName + " must be the same as the first column length: " + this.getColumn(0).rows() +".");
381-
426+
382427
colNames.add(colName);
383428
colNamesIndex.put(colName, colNamesIndex.size());
384429
columns.add(col);
430+
if (colCompresses != null) {
431+
colCompresses = Arrays.copyOf(colCompresses, colCompresses.length + 1);
432+
colCompresses[colCompresses.length - 1] = Vector.COMPRESS_LZ4;
433+
}
434+
}
435+
436+
public void addColumn(String colName, List<?> col) {
437+
if (Objects.isNull(colName) || Objects.isNull(col))
438+
throw new RuntimeException("The param 'colName' or 'col' in table cannot be null.");
439+
440+
addColumn(colName, Utils.inferAndConvertJavaColumn(colName, col));
441+
}
442+
443+
public void addColumn(String colName, Object[] col) {
444+
if (Objects.isNull(colName) || Objects.isNull(col))
445+
throw new RuntimeException("The param 'colName' or 'col' in table cannot be null.");
446+
447+
addColumn(colName, Utils.inferAndConvertJavaColumn(colName, col));
385448
}
386449

387450
/**

0 commit comments

Comments
 (0)