/**
* 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.
*/
package org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
import org.apache.hadoop.io.Text;
public class LazyObjectInspectorParametersImpl implements
LazyObjectInspectorParameters {
protected boolean escaped;
protected byte escapeChar;
protected boolean extendedBooleanLiteral;
protected List<String> timestampFormats;
protected byte[] separators;
protected Text nullSequence;
protected boolean lastColumnTakesRest;
public LazyObjectInspectorParametersImpl() {
this.escaped = false;
this.extendedBooleanLiteral = false;
this.timestampFormats = null;
}
public LazyObjectInspectorParametersImpl(boolean escaped, byte escapeChar,
boolean extendedBooleanLiteral, List<String> timestampFormats,
byte[] separators, Text nullSequence) {
super();
this.escaped = escaped;
this.escapeChar = escapeChar;
this.extendedBooleanLiteral = extendedBooleanLiteral;
this.timestampFormats = timestampFormats;
this.separators = separators;
this.nullSequence = nullSequence;
this.lastColumnTakesRest = false;
}
public LazyObjectInspectorParametersImpl(boolean escaped, byte escapeChar,
boolean extendedBooleanLiteral, List<String> timestampFormats,
byte[] separators, Text nullSequence, boolean lastColumnTakesRest) {
super();
this.escaped = escaped;
this.escapeChar = escapeChar;
this.extendedBooleanLiteral = extendedBooleanLiteral;
this.timestampFormats = timestampFormats;
this.separators = separators;
this.nullSequence = nullSequence;
this.lastColumnTakesRest = lastColumnTakesRest;
}
public LazyObjectInspectorParametersImpl(LazyObjectInspectorParameters lazyParams) {
this.escaped = lazyParams.isEscaped();
this.escapeChar = lazyParams.getEscapeChar();
this.extendedBooleanLiteral = lazyParams.isExtendedBooleanLiteral();
this.timestampFormats = lazyParams.getTimestampFormats();
this.separators = lazyParams.getSeparators();
this.nullSequence = lazyParams.getNullSequence();
this.lastColumnTakesRest = lazyParams.isLastColumnTakesRest();
}
@Override
public boolean isEscaped() {
return escaped;
}
@Override
public byte getEscapeChar() {
return escapeChar;
}
@Override
public boolean isExtendedBooleanLiteral() {
return extendedBooleanLiteral;
}
@Override
public List<String> getTimestampFormats() {
return timestampFormats;
}
@Override
public byte[] getSeparators() {
return separators;
}
@Override
public Text getNullSequence() {
return nullSequence;
}
@Override
public boolean isLastColumnTakesRest() {
return lastColumnTakesRest;
}
protected boolean equals(LazyObjectInspectorParametersImpl other) {
return this.escaped == other.escaped
&& this.escapeChar == other.escapeChar
&& this.extendedBooleanLiteral == other.extendedBooleanLiteral
&& this.lastColumnTakesRest == other.lastColumnTakesRest
&& ObjectUtils.equals(this.nullSequence, other.nullSequence)
&& Arrays.equals(this.separators, other.separators)
&& ObjectUtils.equals(this.timestampFormats, other.timestampFormats);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof LazyObjectInspectorParametersImpl)) {
return false;
}
return equals((LazyObjectInspectorParametersImpl) obj);
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(escaped).append(escapeChar)
.append(extendedBooleanLiteral).append(timestampFormats)
.append(lastColumnTakesRest).append(nullSequence).append(separators).toHashCode();
}
}