/*
 *  Copyright 2001-2014 Stephen Colebourne
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package org.joda.time.chrono;

import org.joda.time.DateTimeZone;
import org.joda.time.Instant;

For internal usage in GJChronology only.
/** * For internal usage in GJChronology only. */
class GJCacheKey { private final DateTimeZone zone; private final Instant cutoverInstant; private final int minDaysInFirstWeek; GJCacheKey(DateTimeZone zone, Instant cutoverInstant, int minDaysInFirstWeek) { this.zone = zone; this.cutoverInstant = cutoverInstant; this.minDaysInFirstWeek = minDaysInFirstWeek; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((cutoverInstant == null) ? 0 : cutoverInstant.hashCode()); result = prime * result + minDaysInFirstWeek; result = prime * result + ((zone == null) ? 0 : zone.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof GJCacheKey)) { return false; } GJCacheKey other = (GJCacheKey) obj; if (cutoverInstant == null) { if (other.cutoverInstant != null) { return false; } } else if (!cutoverInstant.equals(other.cutoverInstant)) { return false; } if (minDaysInFirstWeek != other.minDaysInFirstWeek) { return false; } if (zone == null) { if (other.zone != null) { return false; } } else if (!zone.equals(other.zone)) { return false; } return true; } }