forked from apache/arrow-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBaseWriter.java
More file actions
173 lines (148 loc) · 5.27 KB
/
BaseWriter.java
File metadata and controls
173 lines (148 loc) · 5.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
<@pp.dropOutputFile />
<@pp.changeOutputFile name="/org/apache/arrow/vector/complex/writer/BaseWriter.java" />
<#include "/@includes/license.ftl" />
package org.apache.arrow.vector.complex.writer;
<#include "/@includes/vv_imports.ftl" />
/*
* File generated from ${.template_name} using FreeMarker.
*/
@SuppressWarnings("unused")
public interface BaseWriter extends AutoCloseable, Positionable {
int getValueCapacity();
void writeNull();
public interface StructWriter extends BaseWriter {
Field getField();
/**
* Whether this writer is a struct writer and is empty (has no children).
*
* <p>
* Intended only for use in determining whether to add dummy vector to
* avoid empty (zero-column) schema, as in JsonReader.
* </p>
* @return whether the struct is empty
*/
boolean isEmptyStruct();
<#list vv.types as type><#list type.minor as minor>
<#assign lowerName = minor.class?uncap_first />
<#if lowerName == "int" ><#assign lowerName = "integer" /></#if>
<#assign upperName = minor.class?upper_case />
<#assign capName = minor.class?cap_first />
<#if minor.typeParams?? >
${capName}Writer ${lowerName}(String name<#list minor.typeParams as typeParam>, ${typeParam.type} ${typeParam.name}</#list>);
</#if>
${capName}Writer ${lowerName}(String name);
</#list></#list>
void copyReaderToField(String name, FieldReader reader);
StructWriter struct(String name);
ExtensionWriter extension(String name, ArrowType arrowType);
ListWriter list(String name);
ListWriter listView(String name);
MapWriter map(String name);
MapWriter map(String name, boolean keysSorted);
void start();
void end();
}
public interface ListWriter extends BaseWriter {
void startList();
void endList();
void startListView();
void endListView();
StructWriter struct();
ListWriter list();
ListWriter listView();
MapWriter map();
MapWriter map(boolean keysSorted);
ExtensionWriter extension(ArrowType arrowType);
void copyReader(FieldReader reader);
<#list vv.types as type><#list type.minor as minor>
<#assign lowerName = minor.class?uncap_first />
<#if lowerName == "int" ><#assign lowerName = "integer" /></#if>
<#assign upperName = minor.class?upper_case />
<#assign capName = minor.class?cap_first />
${capName}Writer ${lowerName}();
</#list></#list>
}
public interface MapWriter extends ListWriter {
void startMap();
void endMap();
void startEntry();
void endEntry();
MapWriter key();
MapWriter value();
}
public interface ExtensionWriter extends BaseWriter {
/**
* Writes a null value.
*/
void writeNull();
/**
* Writes value from the given extension holder.
*
* @param holder the extension holder to write
*/
void write(ExtensionHolder holder);
/**
* Writes the given extension type value.
*
* @param value the extension type value to write
*/
void writeExtension(Object value);
/**
* Adds the given extension type factory. This factory allows configuring writer implementations for specific ExtensionTypeVector.
*
* @param factory the extension type factory to add
*/
void addExtensionTypeWriterFactory(ExtensionTypeWriterFactory factory);
}
public interface ScalarWriter extends
<#list vv.types as type><#list type.minor as minor><#assign name = minor.class?cap_first /> ${name}Writer, </#list></#list> BaseWriter {}
public interface ComplexWriter {
void allocate();
void clear();
void copyReader(FieldReader reader);
StructWriter rootAsStruct();
ListWriter rootAsList();
ListWriter rootAsListView();
MapWriter rootAsMap(boolean keysSorted);
void setPosition(int index);
void setValueCount(int count);
void reset();
}
public interface StructOrListWriter {
void start();
void end();
StructOrListWriter struct(String name);
/**
* @deprecated use {@link #listOfStruct()} instead.
*/
@Deprecated
StructOrListWriter listoftstruct(String name);
StructOrListWriter listOfStruct(String name);
StructOrListWriter list(String name);
boolean isStructWriter();
boolean isListWriter();
VarCharWriter varChar(String name);
IntWriter integer(String name);
BigIntWriter bigInt(String name);
Float4Writer float4(String name);
Float8Writer float8(String name);
BitWriter bit(String name);
VarBinaryWriter binary(String name);
}
}