001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019package org.apache.commons.weaver.normalizer.example;
020
021public abstract class ContrivedWrapper {
022    public final Object value;
023
024    protected ContrivedWrapper(Object value) {
025        this.value = value;
026    }
027
028    protected ContrivedWrapper(int value) {
029        this.value = Integer.valueOf(value);
030    }
031
032    @Override
033    public final boolean equals(Object obj) {
034        if (obj == this) {
035            return true;
036        }
037        if (!(obj instanceof ContrivedWrapper)) {
038            return false;
039        }
040        final ContrivedWrapper other = (ContrivedWrapper) obj;
041        return value.equals(other.value);
042    }
043
044    @Override
045    public int hashCode() {
046        return 41 << 4 | value.hashCode();
047    }
048
049}