
com.facebook.presto.orc.stream.MissingInputStreamSource Maven / Gradle / Ivy
/*
* Licensed 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.
*/
package com.facebook.presto.orc.stream;
import javax.annotation.Nullable;
import static java.util.Objects.requireNonNull;
public class MissingInputStreamSource>
implements InputStreamSource
{
private static final MissingInputStreamSource BOOLEAN_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(BooleanInputStream.class);
private static final MissingInputStreamSource BYTE_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(ByteInputStream.class);
private static final MissingInputStreamSource BYTE_ARRAY_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(ByteArrayInputStream.class);
private static final MissingInputStreamSource DECIMAL_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(DecimalInputStream.class);
private static final MissingInputStreamSource DOUBLE_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(DoubleInputStream.class);
private static final MissingInputStreamSource FLOAT_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(FloatInputStream.class);
private static final MissingInputStreamSource LONG_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(LongInputStream.class);
private static final MissingInputStreamSource ROW_GROUP_DICTIONARY_LENGTH_MISSING_STREAM_SOURCE = new MissingInputStreamSource<>(RowGroupDictionaryLengthInputStream.class);
private final Class streamType;
private MissingInputStreamSource(Class streamType)
{
this.streamType = requireNonNull(streamType, "streamType is null");
}
public static InputStreamSource getBooleanMissingStreamSource()
{
return BOOLEAN_MISSING_STREAM_SOURCE;
}
public static InputStreamSource getByteMissingStreamSource()
{
return BYTE_MISSING_STREAM_SOURCE;
}
public static MissingInputStreamSource getByteArrayMissingStreamSource()
{
return BYTE_ARRAY_MISSING_STREAM_SOURCE;
}
public static MissingInputStreamSource getDecimalMissingStreamSource()
{
return DECIMAL_MISSING_STREAM_SOURCE;
}
public static MissingInputStreamSource getDoubleMissingStreamSource()
{
return DOUBLE_MISSING_STREAM_SOURCE;
}
public static MissingInputStreamSource getFloatMissingStreamSource()
{
return FLOAT_MISSING_STREAM_SOURCE;
}
public static InputStreamSource getLongMissingStreamSource()
{
return LONG_MISSING_STREAM_SOURCE;
}
public static MissingInputStreamSource getRowGroupDictionaryLengthMissingStreamSource()
{
return ROW_GROUP_DICTIONARY_LENGTH_MISSING_STREAM_SOURCE;
}
public static > InputStreamSource missingStreamSource(Class streamType)
{
if (BOOLEAN_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) BOOLEAN_MISSING_STREAM_SOURCE;
}
if (LONG_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) LONG_MISSING_STREAM_SOURCE;
}
if (BYTE_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) BYTE_MISSING_STREAM_SOURCE;
}
if (BYTE_ARRAY_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) BYTE_ARRAY_MISSING_STREAM_SOURCE;
}
if (DECIMAL_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) DECIMAL_MISSING_STREAM_SOURCE;
}
if (DOUBLE_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) DOUBLE_MISSING_STREAM_SOURCE;
}
if (FLOAT_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) FLOAT_MISSING_STREAM_SOURCE;
}
if (ROW_GROUP_DICTIONARY_LENGTH_MISSING_STREAM_SOURCE.streamType.equals(streamType)) {
return (InputStreamSource) ROW_GROUP_DICTIONARY_LENGTH_MISSING_STREAM_SOURCE;
}
return new MissingInputStreamSource<>(streamType);
}
@Override
public Class getStreamType()
{
return streamType;
}
@Nullable
@Override
public S openStream()
{
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy