/******************************************************************************* * Copyright 2017 Capital One Services, LLC and Bitwise, Inc. * 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 hydrograph.engine.cascading.tuplegenerator; import cascading.tuple.Fields; import java.io.Serializable; import java.lang.reflect.Type; import java.util.HashMap; public class GenerateDataEntity implements Serializable, Cloneable { /** * */ private static final long serialVersionUID = -8701171489412200765L; private HashMap<String, Object> parameters; private static final String RECORD_COUNT = "record_count"; private static final String IS_FILE_DELIMITED = "is_file_delimited"; private static final String FIELD_DEFAULT_VALUE = "field_default_value"; private static final String FIELD_TO_RANGE_VALUE = "field_to_value"; private static final String FIELD_FROM_RANGE_VALUE = "field_from_value"; private static final String FIELD_LENGTHS_KEY = "field_length"; private static final String FIELD_SCALE_KEY = "field_scale"; private static final String FIELD_FORMAT = "field_format"; private static final String FIELD_DATA_TYPE_KEY = "data_type"; private static final String INPUT_FIELDS_KEY = "input_fields"; public GenerateDataEntity() { this.parameters = new HashMap<String, Object>(); } public GenerateDataEntity(HashMap<String, Object> parameters) { this.parameters = parameters; } @SuppressWarnings("unchecked") public GenerateDataEntity clone() { return new GenerateDataEntity((HashMap<String, Object>) parameters.clone()); } public long getRecordCount() { return (Long) parameters.get(RECORD_COUNT); } public void setRecordCount(long recCount) { parameters.put(RECORD_COUNT, recCount); } public boolean isDelimitedFile() { return (Boolean) parameters.get(IS_FILE_DELIMITED); } public String[] getFieldDefaultValue() { return (String[]) parameters.get(FIELD_DEFAULT_VALUE); } public void setFieldDefaultValue(String[] defaultValue) { parameters.put(FIELD_DEFAULT_VALUE, defaultValue); } public String[] getFieldToRangeValue() { return (String[]) parameters.get(FIELD_TO_RANGE_VALUE); } public void setFieldToRangeValue(String[] toValues) { parameters.put(FIELD_TO_RANGE_VALUE, toValues); } public String[] getFieldFromRangeValue() { return (String[]) parameters.get(FIELD_FROM_RANGE_VALUE); } public void setFieldFromRangeValue(String[] fromValue) { parameters.put(FIELD_FROM_RANGE_VALUE, fromValue); } public String[] getFieldFormat() { return (String[]) parameters.get(FIELD_FORMAT); } public void setFieldFormat(String[] fieldFormat) { parameters.put(FIELD_FORMAT, fieldFormat); } public void setFieldLength(int[] fieldLength) { parameters.put(FIELD_LENGTHS_KEY, fieldLength); } public int[] getFieldLength() { return parameters.get(FIELD_LENGTHS_KEY) == null ? null : (int[]) parameters.get(FIELD_LENGTHS_KEY); } public void setFieldScale(int[] fieldScale) { parameters.put(FIELD_SCALE_KEY, fieldScale); } public int[] getFieldScale() { return (int[]) parameters.get(FIELD_SCALE_KEY); } public void setInputFields(Fields fieldsList) { parameters.put(INPUT_FIELDS_KEY, fieldsList); } public Fields getInputFields() { return (Fields) parameters.get(INPUT_FIELDS_KEY); } public void setDataTypes(Type[] datatype) { parameters.put(FIELD_DATA_TYPE_KEY, datatype); } public Type[] getDataTypes() { return parameters.get(FIELD_DATA_TYPE_KEY) == null ? null : (Type[]) parameters.get(FIELD_DATA_TYPE_KEY); } }