Skip to content

Commit fc49f7f

Browse files
committed
GH-1302: Follow vector transfer implementation style
Change-Id: If49bdef2c665414b786ea0f2b60d0336b3839b9b
1 parent afc2ca1 commit fc49f7f

2 files changed

Lines changed: 32 additions & 24 deletions

File tree

‎vector/src/main/java/org/apache/arrow/vector/VectorLoader.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ private void loadBuffers(
112112
}
113113
checkArgument(nodes.hasNext(), "no more field nodes for field %s and vector %s", field, vector);
114114
ArrowFieldNode fieldNode = nodes.next();
115-
// variadicBufferLayoutCount will be 0 for vectors of a type except BaseVariableWidthViewVector
115+
// Only view storage has variadic buffers.
116116
long variadicBufferLayoutCount = 0;
117117
if (storageVector instanceof BaseVariableWidthViewVector) {
118118
if (variadicBufferCounts.hasNext()) {

‎vector/src/main/java/org/apache/arrow/vector/extension/JsonVector.java‎

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -81,29 +81,7 @@ public TransferPair getTransferPair(
8181

8282
@Override
8383
public TransferPair makeTransferPair(ValueVector target) {
84-
JsonVector to = (JsonVector) target;
85-
TransferPair storagePair = getUnderlyingVector().makeTransferPair(to.getUnderlyingVector());
86-
return new TransferPair() {
87-
@Override
88-
public void transfer() {
89-
storagePair.transfer();
90-
}
91-
92-
@Override
93-
public void splitAndTransfer(int startIndex, int length) {
94-
storagePair.splitAndTransfer(startIndex, length);
95-
}
96-
97-
@Override
98-
public JsonVector getTo() {
99-
return to;
100-
}
101-
102-
@Override
103-
public void copyValueSafe(int fromIndex, int toIndex) {
104-
storagePair.copyValueSafe(fromIndex, toIndex);
105-
}
106-
};
84+
return new TransferImpl((JsonVector) target);
10785
}
10886

10987
@Override
@@ -115,4 +93,34 @@ public int hashCode(int index) {
11593
public int hashCode(int index, ArrowBufHasher hasher) {
11694
return getUnderlyingVector().hashCode(index, hasher);
11795
}
96+
97+
private class TransferImpl implements TransferPair {
98+
private final JsonVector to;
99+
private final TransferPair storagePair;
100+
101+
TransferImpl(JsonVector to) {
102+
this.to = to;
103+
this.storagePair = getUnderlyingVector().makeTransferPair(to.getUnderlyingVector());
104+
}
105+
106+
@Override
107+
public void transfer() {
108+
storagePair.transfer();
109+
}
110+
111+
@Override
112+
public void splitAndTransfer(int startIndex, int length) {
113+
storagePair.splitAndTransfer(startIndex, length);
114+
}
115+
116+
@Override
117+
public JsonVector getTo() {
118+
return to;
119+
}
120+
121+
@Override
122+
public void copyValueSafe(int fromIndex, int toIndex) {
123+
storagePair.copyValueSafe(fromIndex, toIndex);
124+
}
125+
}
118126
}

0 commit comments

Comments
 (0)