@Override
    public boolean hasSameRules(TimeZone other) {
        if (this == other) {
            return true;
        }
        // The super class implementation only check raw offset and
        // use of daylight saving time.
        if (!super.hasSameRules(other)) {
            return false;
        }

        if (!(other instanceof OlsonTimeZone)) {
            // We cannot reasonably compare rules in different types
            return false;
        }

        // Check final zone
        OlsonTimeZone o = (OlsonTimeZone)other;
        if (finalZone == null) {
            if (o.finalZone != null) {
                return false;
            }
        } else {
            if (o.finalZone == null
                    || finalStartYear != o.finalStartYear
                    || !(finalZone.hasSameRules(o.finalZone))) {
                return false;
            }
        }
        // Check transitions
        // Note: The code below actually fails to compare two equivalent rules in
        // different representation properly.
        if (transitionCount != o.transitionCount ||
                !Arrays.equals(transitionTimes64, o.transitionTimes64) ||
                typeCount != o.typeCount ||
                !Arrays.equals(typeMapData, o.typeMapData) ||
                !Arrays.equals(typeOffsets, o.typeOffsets)){
            return false;
        }
        return true;
    }
@ Override public boolean hasSameRules ( TimeZone other ) { if ( this == other ) { return true ; } if ( ! super . hasSameRules ( other ) ) { return false ; } if ( ! ( other instanceof OlsonTimeZone ) ) { return false ; } OlsonTimeZone o = ( OlsonTimeZone ) other ; if ( finalZone == null ) { if ( o . finalZone != null ) { return false ; } } else { if ( o . finalZone == null || finalStartYear != o . finalStartYear || ! ( finalZone . hasSameRules ( o . finalZone ) ) ) { return false ; } } if ( transitionCount != o . transitionCount || ! Arrays . equals ( transitionTimes64 , o . transitionTimes64 ) || typeCount != o . typeCount || ! Arrays . equals ( typeMapData , o . typeMapData ) || ! Arrays . equals ( typeOffsets , o . typeOffsets ) ) { return false ; } return true ; }
/* (non-Javadoc)
@see android.icu.util.TimeZone#hasSameRules(android.icu.util.TimeZone)