org.wali.SerDeFactory Maven / Gradle / Ivy
The newest version!
/*
* 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.wali;
public interface SerDeFactory {
/**
* Returns a new SerDe
*
* @param encodingName the name of encoding that was used when writing the serialized data, or null
if
* the SerDe is to be used for serialization purposes
* @return a SerDe
*/
SerDe createSerDe(String encodingName);
/**
* Returns the unique ID for the given record
*
* @param record to obtain identifier for
* @return identifier of record
*/
Object getRecordIdentifier(T record);
/**
* Returns the UpdateType for the given record
*
* @param record to retrieve update type for
* @return update type
*/
UpdateType getUpdateType(T record);
/**
* Returns the external location of the given record; this is used when a
* record is moved away from WALI or is being re-introduced to WALI. For
* example, WALI can be updated with a record of type
* {@link UpdateType#SWAP_OUT} that indicates a Location of
* file://tmp/external1 and can then be re-introduced to WALI by updating
* WALI with a record of type {@link UpdateType#CREATE} that indicates a
* Location of file://tmp/external1
*
* @param record to get location of
* @return location
*/
String getLocation(T record);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy