hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From omal...@apache.org
Subject svn commit: r651052 - in /hadoop/core/trunk: CHANGES.txt src/java/org/apache/hadoop/io/ByteWritable.java src/java/org/apache/hadoop/io/DoubleWritable.java src/test/org/apache/hadoop/io/TestWritable.java
Date Wed, 23 Apr 2008 20:45:33 GMT
Author: omalley
Date: Wed Apr 23 13:45:25 2008
New Revision: 651052

URL: http://svn.apache.org/viewvc?rev=651052&view=rev
Log:
HADOOP-3061. Writable types for doubles and bytes. Contributed by Andrzej
Bialecki.

Added:
    hadoop/core/trunk/src/java/org/apache/hadoop/io/ByteWritable.java
    hadoop/core/trunk/src/java/org/apache/hadoop/io/DoubleWritable.java
Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/test/org/apache/hadoop/io/TestWritable.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=651052&r1=651051&r2=651052&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Wed Apr 23 13:45:25 2008
@@ -20,6 +20,9 @@
     HADOOP-2585. Name-node imports namespace data from a recent checkpoint
     accessible via a NFS mount. (shv)
 
+    HADOOP-3061. Writable types for doubles and bytes. (Andrzej
+    Bialecki via omalley)
+
   IMPROVEMENTS
    
     HADOOP-2928. Remove deprecated FileSystem.getContentLength().

Added: hadoop/core/trunk/src/java/org/apache/hadoop/io/ByteWritable.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/io/ByteWritable.java?rev=651052&view=auto
==============================================================================
--- hadoop/core/trunk/src/java/org/apache/hadoop/io/ByteWritable.java (added)
+++ hadoop/core/trunk/src/java/org/apache/hadoop/io/ByteWritable.java Wed Apr 23 13:45:25
2008
@@ -0,0 +1,87 @@
+/**
+ * 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.io;
+
+import java.io.*;
+
+/** A WritableComparable for a single byte. */
+public class ByteWritable implements WritableComparable {
+  private byte value;
+
+  public ByteWritable() {}
+
+  public ByteWritable(byte value) { set(value); }
+
+  /** Set the value of this ByteWritable. */
+  public void set(byte value) { this.value = value; }
+
+  /** Return the value of this ByteWritable. */
+  public byte get() { return value; }
+
+  public void readFields(DataInput in) throws IOException {
+    value = in.readByte();
+  }
+
+  public void write(DataOutput out) throws IOException {
+    out.writeByte(value);
+  }
+
+  /** Returns true iff <code>o</code> is a ByteWritable with the same value.
*/
+  public boolean equals(Object o) {
+    if (!(o instanceof ByteWritable)) {
+      return false;
+    }
+    ByteWritable other = (ByteWritable)o;
+    return this.value == other.value;
+  }
+
+  public int hashCode() {
+    return (int)value;
+  }
+
+  /** Compares two ByteWritables. */
+  public int compareTo(Object o) {
+    int thisValue = this.value;
+    int thatValue = ((ByteWritable)o).value;
+    return (thisValue < thatValue ? -1 : (thisValue == thatValue ? 0 : 1));
+  }
+
+  public String toString() {
+    return Byte.toString(value);
+  }
+
+  /** A Comparator optimized for ByteWritable. */ 
+  public static class Comparator extends WritableComparator {
+    public Comparator() {
+      super(ByteWritable.class);
+    }
+
+    public int compare(byte[] b1, int s1, int l1,
+                       byte[] b2, int s2, int l2) {
+      byte thisValue = b1[s1];
+      byte thatValue = b2[s2];
+      return (thisValue < thatValue ? -1 : (thisValue == thatValue ? 0 : 1));
+    }
+  }
+
+  static {                                        // register this comparator
+    WritableComparator.define(ByteWritable.class, new Comparator());
+  }
+}
+

Added: hadoop/core/trunk/src/java/org/apache/hadoop/io/DoubleWritable.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/io/DoubleWritable.java?rev=651052&view=auto
==============================================================================
--- hadoop/core/trunk/src/java/org/apache/hadoop/io/DoubleWritable.java (added)
+++ hadoop/core/trunk/src/java/org/apache/hadoop/io/DoubleWritable.java Wed Apr 23 13:45:25
2008
@@ -0,0 +1,95 @@
+/**
+ * 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.io;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+/**
+ * Writable for Double values.
+ */
+public class DoubleWritable implements WritableComparable {
+
+  private double value = 0.0;
+  
+  public DoubleWritable() {
+    
+  }
+  
+  public DoubleWritable(double value) {
+    set(value);
+  }
+  
+  public void readFields(DataInput in) throws IOException {
+    value = in.readDouble();
+  }
+
+  public void write(DataOutput out) throws IOException {
+    out.writeDouble(value);
+  }
+  
+  public void set(double value) { this.value = value; }
+  
+  public double get() { return value; }
+
+  /**
+   * Returns true iff <code>o</code> is a DoubleWritable with the same value.
+   */
+  public boolean equals(Object o) {
+    if (!(o instanceof DoubleWritable)) {
+      return false;
+    }
+    DoubleWritable other = (DoubleWritable)o;
+    return this.value == other.value;
+  }
+  
+  public int hashCode() {
+    return (int)Double.doubleToLongBits(value);
+  }
+  
+  public int compareTo(Object o) {
+    DoubleWritable other = (DoubleWritable)o;
+    return (value < other.value ? -1 : (value == other.value ? 0 : 1));
+  }
+  
+  public String toString() {
+    return Double.toString(value);
+  }
+
+  /** A Comparator optimized for DoubleWritable. */ 
+  public static class Comparator extends WritableComparator {
+    public Comparator() {
+      super(DoubleWritable.class);
+    }
+
+    public int compare(byte[] b1, int s1, int l1,
+                       byte[] b2, int s2, int l2) {
+      double thisValue = readDouble(b1, s1);
+      double thatValue = readDouble(b2, s2);
+      return (thisValue < thatValue ? -1 : (thisValue == thatValue ? 0 : 1));
+    }
+  }
+
+  static {                                        // register this comparator
+    WritableComparator.define(DoubleWritable.class, new Comparator());
+  }
+
+}
+

Modified: hadoop/core/trunk/src/test/org/apache/hadoop/io/TestWritable.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/org/apache/hadoop/io/TestWritable.java?rev=651052&r1=651051&r2=651052&view=diff
==============================================================================
--- hadoop/core/trunk/src/test/org/apache/hadoop/io/TestWritable.java (original)
+++ hadoop/core/trunk/src/test/org/apache/hadoop/io/TestWritable.java Wed Apr 23 13:45:25
2008
@@ -64,6 +64,14 @@
   public void testSimpleWritable() throws Exception {
     testWritable(new SimpleWritable());
   }
+  
+  public void testByteWritable() throws Exception {
+    testWritable(new ByteWritable((byte)128));
+  }
+
+  public void testDoubleWritable() throws Exception {
+    testWritable(new DoubleWritable(1.0));
+  }
 
   /** Utility method for testing writables. */
   public static Writable testWritable(Writable before) 



Mime
View raw message