/lib/src/org/apache/http/util/LangUtils.java

http://github.com/onedanshow/Screen-Courter · Java · 83 lines · 39 code · 10 blank · 34 comment · 16 complexity · e5935955c76178ce0daae7c0493bdf3e MD5 · raw file

  1. /*
  2. * ====================================================================
  3. * Licensed to the Apache Software Foundation (ASF) under one
  4. * or more contributor license agreements. See the NOTICE file
  5. * distributed with this work for additional information
  6. * regarding copyright ownership. The ASF licenses this file
  7. * to you under the Apache License, Version 2.0 (the
  8. * "License"); you may not use this file except in compliance
  9. * with the License. You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing,
  14. * software distributed under the License is distributed on an
  15. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16. * KIND, either express or implied. See the License for the
  17. * specific language governing permissions and limitations
  18. * under the License.
  19. * ====================================================================
  20. *
  21. * This software consists of voluntary contributions made by many
  22. * individuals on behalf of the Apache Software Foundation. For more
  23. * information on the Apache Software Foundation, please see
  24. * <http://www.apache.org/>.
  25. *
  26. */
  27. package org.apache.http.util;
  28. /**
  29. * A set of utility methods to help produce consistent
  30. * {@link Object#equals equals} and {@link Object#hashCode hashCode} methods.
  31. *
  32. *
  33. * @since 4.0
  34. */
  35. public final class LangUtils {
  36. public static final int HASH_SEED = 17;
  37. public static final int HASH_OFFSET = 37;
  38. /** Disabled default constructor. */
  39. private LangUtils() {
  40. }
  41. public static int hashCode(final int seed, final int hashcode) {
  42. return seed * HASH_OFFSET + hashcode;
  43. }
  44. public static int hashCode(final int seed, final boolean b) {
  45. return hashCode(seed, b ? 1 : 0);
  46. }
  47. public static int hashCode(final int seed, final Object obj) {
  48. return hashCode(seed, obj != null ? obj.hashCode() : 0);
  49. }
  50. public static boolean equals(final Object obj1, final Object obj2) {
  51. return obj1 == null ? obj2 == null : obj1.equals(obj2);
  52. }
  53. public static boolean equals(final Object[] a1, final Object[] a2) {
  54. if (a1 == null) {
  55. if (a2 == null) {
  56. return true;
  57. } else {
  58. return false;
  59. }
  60. } else {
  61. if (a2 != null && a1.length == a2.length) {
  62. for (int i = 0; i < a1.length; i++) {
  63. if (!equals(a1[i], a2[i])) {
  64. return false;
  65. }
  66. }
  67. return true;
  68. } else {
  69. return false;
  70. }
  71. }
  72. }
  73. }