13d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver/* 23d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * Copyright 2013, Google Inc. 33d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * All rights reserved. 43d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * 53d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * Redistribution and use in source and binary forms, with or without 63d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * modification, are permitted provided that the following conditions are 73d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * met: 83d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * 93d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * * Redistributions of source code must retain the above copyright 103d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * notice, this list of conditions and the following disclaimer. 113d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * * Redistributions in binary form must reproduce the above 123d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * copyright notice, this list of conditions and the following disclaimer 133d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * in the documentation and/or other materials provided with the 143d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * distribution. 153d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * * Neither the name of Google Inc. nor the names of its 163d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * contributors may be used to endorse or promote products derived from 173d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * this software without specific prior written permission. 183d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * 193d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 203d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 213d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 223d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 233d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 243d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 253d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 263d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 273d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 283d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 293d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 303d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver */ 313d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver 323d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruverpackage org.jf.util; 333d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver 343d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruverimport com.google.common.base.Function; 353d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruverimport com.google.common.base.Functions; 363d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruverimport com.google.common.collect.Lists; 373d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver 383d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruverimport java.util.List; 393d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver 403d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruverpublic class CharSequenceUtils { 413d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver private static final Function<Object, String> TO_STRING = Functions.toStringFunction(); 423d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver 433d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver public static int listHashCode(List<? extends CharSequence> list) { 443d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver return Lists.transform(list, TO_STRING).hashCode(); 453d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver } 463d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver 473d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver public static boolean listEquals(List<? extends CharSequence> list1, List<? extends CharSequence> list2) { 483d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver return Lists.transform(list1, TO_STRING).equals( 493d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver Lists.transform(list2, TO_STRING)); 503d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver } 513d5423ed2bfa6817f668b14795aa6ba882aef44dBen Gruver} 52