FieldTypeInfo.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.record.meta;
  19. import java.io.IOException;
  20. import org.apache.hadoop.record.RecordOutput;
  21. /** 
  22.  * Represents a type information for a field, which is made up of its 
  23.  * ID (name) and its type (a TypeID object).
  24.  */
  25. public class FieldTypeInfo
  26. {
  27.   private String fieldID;
  28.   private TypeID typeID;
  29.   /**
  30.    * Construct a FiledTypeInfo with the given field name and the type
  31.    */
  32.   FieldTypeInfo(String fieldID, TypeID typeID) {
  33.     this.fieldID = fieldID;
  34.     this.typeID = typeID;
  35.   }
  36.   /**
  37.    * get the field's TypeID object
  38.    */
  39.   public TypeID getTypeID() {
  40.     return typeID;
  41.   }
  42.   
  43.   /**
  44.    * get the field's id (name)
  45.    */
  46.   public String getFieldID() {
  47.     return fieldID;
  48.   }
  49.   
  50.   void write(RecordOutput rout, String tag) throws IOException {
  51.     rout.writeString(fieldID, tag);
  52.     typeID.write(rout, tag);
  53.   }
  54.   
  55.   /**
  56.    * Two FieldTypeInfos are equal if ach of their fields matches
  57.    */
  58.   public boolean equals(Object o) {
  59.     if (this == o) 
  60.       return true;
  61.     if (!(o instanceof FieldTypeInfo))
  62.       return false;
  63.     FieldTypeInfo fti = (FieldTypeInfo) o;
  64.     // first check if fieldID matches
  65.     if (!this.fieldID.equals(fti.fieldID)) {
  66.       return false;
  67.     }
  68.     // now see if typeID matches
  69.     return (this.typeID.equals(fti.typeID));
  70.   }
  71.   
  72.   /**
  73.    * We use a basic hashcode implementation, since this class will likely not
  74.    * be used as a hashmap key 
  75.    */
  76.   public int hashCode() {
  77.     return 37*17+typeID.hashCode() + 37*17+fieldID.hashCode();
  78.   }
  79.   
  80.   public boolean equals(FieldTypeInfo ti) {
  81.     // first check if fieldID matches
  82.     if (!this.fieldID.equals(ti.fieldID)) {
  83.       return false;
  84.     }
  85.     // now see if typeID matches
  86.     return (this.typeID.equals(ti.typeID));
  87.   }
  88. }