PageRenderTime 40ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/tags/release-0.1-rc2/hive/external/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java

#
Java | 62 lines | 18 code | 11 blank | 33 comment | 0 complexity | 967ed00ed34a1de896f88d4e076d5ea2 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, JSON, CPL-1.0
  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.hive.serde2.typeinfo;
  19. import java.io.Serializable;
  20. import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
  21. /**
  22. * Stores information about a type. Always use the TypeInfoFactory to create new
  23. * TypeInfo objects.
  24. *
  25. * We support 5 categories of types: 1. Primitive objects (String, Number, etc)
  26. * 2. List objects (a list of objects of a single type) 3. Map objects (a map
  27. * from objects of one type to objects of another type) 4. Struct objects (a
  28. * list of fields with names and their own types) 5. Union objects
  29. */
  30. public abstract class TypeInfo implements Serializable {
  31. private static final long serialVersionUID = 1L;
  32. protected TypeInfo() {
  33. }
  34. /**
  35. * The Category of this TypeInfo. Possible values are Primitive, List, Map,
  36. * Struct and Union, which corresponds to the 5 sub-classes of TypeInfo.
  37. */
  38. public abstract Category getCategory();
  39. /**
  40. * A String representation of the TypeInfo.
  41. */
  42. public abstract String getTypeName();
  43. @Override
  44. public String toString() {
  45. return getTypeName();
  46. }
  47. @Override
  48. public abstract boolean equals(Object o);
  49. @Override
  50. public abstract int hashCode();
  51. }