]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/java/vector/src/main/codegen/templates/ComplexReaders.java
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / java / vector / src / main / codegen / templates / ComplexReaders.java
CommitLineData
1d09f67e
TL
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18import java.lang.Override;
19import java.util.List;
20
21import org.apache.arrow.record.TransferPair;
22import org.apache.arrow.vector.complex.IndexHolder;
23import org.apache.arrow.vector.complex.writer.IntervalWriter;
24import org.apache.arrow.vector.complex.writer.BaseWriter.StructWriter;
25
26<@pp.dropOutputFile />
27<#list vv.types as type>
28<#list type.minor as minor>
29<#list [""] as mode>
30<#assign lowerName = minor.class?uncap_first />
31<#if lowerName == "int" ><#assign lowerName = "integer" /></#if>
32<#assign name = minor.class?cap_first />
33<#assign javaType = (minor.javaType!type.javaType) />
34<#assign friendlyType = (minor.friendlyType!minor.boxedType!type.boxedType) />
35<#assign safeType=friendlyType />
36<#if safeType=="byte[]"><#assign safeType="ByteArray" /></#if>
37
38<#assign hasFriendly = minor.friendlyType!"no" == "no" />
39
40<#list ["Nullable"] as nullMode>
41<#if mode == "" >
42<@pp.changeOutputFile name="/org/apache/arrow/vector/complex/impl/${name}ReaderImpl.java" />
43<#include "/@includes/license.ftl" />
44
45package org.apache.arrow.vector.complex.impl;
46
47<#include "/@includes/vv_imports.ftl" />
48
49/**
50 * Source code generated using FreeMarker template ${.template_name}
51 */
52@SuppressWarnings("unused")
53public class ${name}ReaderImpl extends AbstractFieldReader {
54
55 private final ${name}Vector vector;
56
57 public ${name}ReaderImpl(${name}Vector vector){
58 super();
59 this.vector = vector;
60 }
61
62 public MinorType getMinorType(){
63 return vector.getMinorType();
64 }
65
66 public Field getField(){
67 return vector.getField();
68 }
69
70 public boolean isSet(){
71 return !vector.isNull(idx());
72 }
73
74 public void copyAsValue(${minor.class?cap_first}Writer writer){
75 ${minor.class?cap_first}WriterImpl impl = (${minor.class?cap_first}WriterImpl) writer;
76 impl.vector.copyFromSafe(idx(), impl.idx(), vector);
77 }
78
79 public void copyAsField(String name, StructWriter writer){
80 ${minor.class?cap_first}WriterImpl impl = (${minor.class?cap_first}WriterImpl) writer.${lowerName}(name);
81 impl.vector.copyFromSafe(idx(), impl.idx(), vector);
82 }
83
84 <#if nullMode != "Nullable">
85 public void read(${minor.class?cap_first}Holder h){
86 vector.get(idx(), h);
87 }
88 </#if>
89
90 public void read(Nullable${minor.class?cap_first}Holder h){
91 vector.get(idx(), h);
92 }
93
94 public ${friendlyType} read${safeType}(){
95 return vector.getObject(idx());
96 }
97
98 <#if minor.class == "TimeStampSec" ||
99 minor.class == "TimeStampMilli" ||
100 minor.class == "TimeStampMicro" ||
101 minor.class == "TimeStampNano">
102 @Override
103 public ${minor.boxedType} read${minor.boxedType}(){
104 return vector.get(idx());
105 }
106 </#if>
107
108 public void copyValue(FieldWriter w){
109
110 }
111
112 public Object readObject(){
113 return (Object)vector.getObject(idx());
114 }
115}
116</#if>
117</#list>
118<@pp.changeOutputFile name="/org/apache/arrow/vector/complex/reader/${name}Reader.java" />
119<#include "/@includes/license.ftl" />
120
121package org.apache.arrow.vector.complex.reader;
122
123<#include "/@includes/vv_imports.ftl" />
124/**
125 * Source code generated using FreeMarker template ${.template_name}
126 */
127@SuppressWarnings("unused")
128public interface ${name}Reader extends BaseReader{
129
130 public void read(${minor.class?cap_first}Holder h);
131 public void read(Nullable${minor.class?cap_first}Holder h);
132 public Object readObject();
133 // read friendly type
134 public ${friendlyType} read${safeType}();
135 public boolean isSet();
136 public void copyAsValue(${minor.class}Writer writer);
137 public void copyAsField(String name, ${minor.class}Writer writer);
138
139}
140
141
142
143</#list>
144</#list>
145</#list>
146
147