001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019 package org.apache.hadoop.record;
020
021 import java.io.IOException;
022 import java.util.TreeMap;
023 import java.util.ArrayList;
024
025 import org.apache.hadoop.classification.InterfaceAudience;
026 import org.apache.hadoop.classification.InterfaceStability;
027
028 /**
029 * Interface that all the serializers have to implement.
030 *
031 * @deprecated Replaced by <a href="https://hadoop.apache.org/avro/">Avro</a>.
032 */
033 @Deprecated
034 @InterfaceAudience.Public
035 @InterfaceStability.Stable
036 public interface RecordOutput {
037 /**
038 * Write a byte to serialized record.
039 * @param b Byte to be serialized
040 * @param tag Used by tagged serialization formats (such as XML)
041 * @throws IOException Indicates error in serialization
042 */
043 public void writeByte(byte b, String tag) throws IOException;
044
045 /**
046 * Write a boolean to serialized record.
047 * @param b Boolean to be serialized
048 * @param tag Used by tagged serialization formats (such as XML)
049 * @throws IOException Indicates error in serialization
050 */
051 public void writeBool(boolean b, String tag) throws IOException;
052
053 /**
054 * Write an integer to serialized record.
055 * @param i Integer to be serialized
056 * @param tag Used by tagged serialization formats (such as XML)
057 * @throws IOException Indicates error in serialization
058 */
059 public void writeInt(int i, String tag) throws IOException;
060
061 /**
062 * Write a long integer to serialized record.
063 * @param l Long to be serialized
064 * @param tag Used by tagged serialization formats (such as XML)
065 * @throws IOException Indicates error in serialization
066 */
067 public void writeLong(long l, String tag) throws IOException;
068
069 /**
070 * Write a single-precision float to serialized record.
071 * @param f Float to be serialized
072 * @param tag Used by tagged serialization formats (such as XML)
073 * @throws IOException Indicates error in serialization
074 */
075 public void writeFloat(float f, String tag) throws IOException;
076
077 /**
078 * Write a double precision floating point number to serialized record.
079 * @param d Double to be serialized
080 * @param tag Used by tagged serialization formats (such as XML)
081 * @throws IOException Indicates error in serialization
082 */
083 public void writeDouble(double d, String tag) throws IOException;
084
085 /**
086 * Write a unicode string to serialized record.
087 * @param s String to be serialized
088 * @param tag Used by tagged serialization formats (such as XML)
089 * @throws IOException Indicates error in serialization
090 */
091 public void writeString(String s, String tag) throws IOException;
092
093 /**
094 * Write a buffer to serialized record.
095 * @param buf Buffer to be serialized
096 * @param tag Used by tagged serialization formats (such as XML)
097 * @throws IOException Indicates error in serialization
098 */
099 public void writeBuffer(Buffer buf, String tag)
100 throws IOException;
101
102 /**
103 * Mark the start of a record to be serialized.
104 * @param r Record to be serialized
105 * @param tag Used by tagged serialization formats (such as XML)
106 * @throws IOException Indicates error in serialization
107 */
108 public void startRecord(Record r, String tag) throws IOException;
109
110 /**
111 * Mark the end of a serialized record.
112 * @param r Record to be serialized
113 * @param tag Used by tagged serialization formats (such as XML)
114 * @throws IOException Indicates error in serialization
115 */
116 public void endRecord(Record r, String tag) throws IOException;
117
118 /**
119 * Mark the start of a vector to be serialized.
120 * @param v Vector to be serialized
121 * @param tag Used by tagged serialization formats (such as XML)
122 * @throws IOException Indicates error in serialization
123 */
124 public void startVector(ArrayList v, String tag) throws IOException;
125
126 /**
127 * Mark the end of a serialized vector.
128 * @param v Vector to be serialized
129 * @param tag Used by tagged serialization formats (such as XML)
130 * @throws IOException Indicates error in serialization
131 */
132 public void endVector(ArrayList v, String tag) throws IOException;
133
134 /**
135 * Mark the start of a map to be serialized.
136 * @param m Map to be serialized
137 * @param tag Used by tagged serialization formats (such as XML)
138 * @throws IOException Indicates error in serialization
139 */
140 public void startMap(TreeMap m, String tag) throws IOException;
141
142 /**
143 * Mark the end of a serialized map.
144 * @param m Map to be serialized
145 * @param tag Used by tagged serialization formats (such as XML)
146 * @throws IOException Indicates error in serialization
147 */
148 public void endMap(TreeMap m, String tag) throws IOException;
149 }