Skip to content

Commit 1ec1902

Browse files
author
chengyitian
committed
AJ-783: support new constructor for BasicIotAnyVector;
1 parent 65e38cb commit 1ec1902

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

src/com/xxdb/data/BasicIotAnyVector.java

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import java.util.HashMap;
66
import java.util.Map;
77
import java.util.Objects;
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
810
import com.xxdb.io.ExtendedDataInput;
911
import com.xxdb.io.ExtendedDataOutput;
1012
import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -15,17 +17,36 @@ public class BasicIotAnyVector extends AbstractVector {
1517
private BasicIntVector indexsDataType;
1618
private BasicIntVector indexs;
1719

18-
public BasicIotAnyVector(Entity[] array) {
20+
private static final Logger log = LoggerFactory.getLogger(BasicIotAnyVector.class);
21+
22+
23+
public BasicIotAnyVector(Scalar[] scalars) {
1924
super(DATA_FORM.DF_VECTOR);
25+
26+
if (Objects.isNull(scalars) || scalars.length == 0)
27+
throw new RuntimeException("The param 'scalars' cannot be null or empty.");
28+
2029
subVector = new HashMap<>();
2130
indexsDataType = new BasicIntVector(0);
2231
indexs = new BasicIntVector(0);
23-
for (int i = 0; i < array.length; i++) {
24-
subVector.put(array[i].getDataType().getValue(), array[i]);
25-
for (int j = 0; j < array[i].rows(); j++ ) {
26-
indexsDataType.add(array[i].getDataType().getValue());
27-
indexs.add(j);
32+
33+
try {
34+
for (Scalar scalar : scalars) {
35+
int curDataTypeValue = scalar.getDataType().getValue();
36+
37+
if (Objects.isNull(subVector.get(curDataTypeValue))) {
38+
Vector curVector = BasicEntityFactory.instance().createVectorWithDefaultValue(scalar.getDataType(), 0, -1);
39+
curVector.Append(scalar);
40+
subVector.put(curDataTypeValue, curVector);
41+
} else {
42+
((Vector) subVector.get(curDataTypeValue)).Append(scalar);
43+
}
44+
45+
indexsDataType.add(curDataTypeValue);
46+
indexs.add(subVector.get(curDataTypeValue).rows() - 1);
2847
}
48+
} catch (Exception e) {
49+
log.error(e.getMessage());
2950
}
3051
}
3152

0 commit comments

Comments
 (0)