BooleanWritable.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.io;
  19. import java.io.*;
  20. /** 
  21.  * A WritableComparable for booleans. 
  22.  */
  23. public class BooleanWritable implements WritableComparable {
  24.   private boolean value;
  25.   /** 
  26.    */
  27.   public BooleanWritable() {};
  28.   /** 
  29.    */
  30.   public BooleanWritable(boolean value) {
  31.     set(value);
  32.   }
  33.   /** 
  34.    * Set the value of the BooleanWritable
  35.    */    
  36.   public void set(boolean value) {
  37.     this.value = value;
  38.   }
  39.   /**
  40.    * Returns the value of the BooleanWritable
  41.    */
  42.   public boolean get() {
  43.     return value;
  44.   }
  45.   /**
  46.    */
  47.   public void readFields(DataInput in) throws IOException {
  48.     value = in.readBoolean();
  49.   }
  50.   /**
  51.    */
  52.   public void write(DataOutput out) throws IOException {
  53.     out.writeBoolean(value);
  54.   }
  55.   /**
  56.    */
  57.   public boolean equals(Object o) {
  58.     if (!(o instanceof BooleanWritable)) {
  59.       return false;
  60.     }
  61.     BooleanWritable other = (BooleanWritable) o;
  62.     return this.value == other.value;
  63.   }
  64.   public int hashCode() {
  65.     return value ? 0 : 1;
  66.   }
  67.   /**
  68.    */
  69.   public int compareTo(Object o) {
  70.     boolean a = this.value;
  71.     boolean b = ((BooleanWritable) o).value;
  72.     return ((a == b) ? 0 : (a == false) ? -1 : 1);
  73.   }
  74.   
  75.   public String toString() {
  76.     return Boolean.toString(get());
  77.   }
  78.   /** 
  79.    * A Comparator optimized for BooleanWritable. 
  80.    */ 
  81.   public static class Comparator extends WritableComparator {
  82.     public Comparator() {
  83.       super(BooleanWritable.class);
  84.     }
  85.     public int compare(byte[] b1, int s1, int l1,
  86.                        byte[] b2, int s2, int l2) {
  87.       boolean a = (readInt(b1, s1) == 1) ? true : false;
  88.       boolean b = (readInt(b2, s2) == 1) ? true : false;
  89.       return ((a == b) ? 0 : (a == false) ? -1 : 1);
  90.     }
  91.   }
  92.   static {
  93.     WritableComparator.define(BooleanWritable.class, new Comparator());
  94.   }
  95. }