private Comparator<T> generateComparator() { Rules rules = new Rules(this); BeanComparator[] ruleParts = rules.getRuleParts(); Comparator[] collators = new Comparator[ruleParts.length]; Comparator[] usingComparators = new Comparator[ruleParts.length];
public Rules(BeanComparator bc) { mRuleParts = reduceRules(bc); // Compute hashCode. int hash = 0; for (int i = mRuleParts.length - 1; i >= 0; i--) { bc = mRuleParts[i]; hash = 31 * hash; hash += bc.mFlags << 4; Object obj = bc.mBeanClass; if (obj != null) { hash += obj.hashCode(); } obj = bc.mOrderByName; if (obj != null) { hash += obj.hashCode(); } obj = bc.mUsingComparator; if (obj != null) { hash += obj.getClass().hashCode(); } obj = bc.mCollator; if (obj != null) { hash += obj.getClass().hashCode(); } } mHashCode = hash; }
BeanComparator[] ruleParts = rules.getRuleParts(); BeanComparator bc = ruleParts[0];
private Comparator<T> generateComparator() { Rules rules = new Rules(this); BeanComparator[] ruleParts = rules.getRuleParts(); Comparator[] collators = new Comparator[ruleParts.length]; Comparator[] usingComparators = new Comparator[ruleParts.length];
BeanComparator[] ruleParts1 = getRuleParts(); BeanComparator[] ruleParts2 = ((Rules)obj).getRuleParts();
public Rules(BeanComparator bc) { mRuleParts = reduceRules(bc); // Compute hashCode. int hash = 0; for (int i = mRuleParts.length - 1; i >= 0; i--) { bc = mRuleParts[i]; hash = 31 * hash; hash += bc.mFlags << 4; Object obj = bc.mBeanClass; if (obj != null) { hash += obj.hashCode(); } obj = bc.mOrderByName; if (obj != null) { hash += obj.hashCode(); } obj = bc.mUsingComparator; if (obj != null) { hash += obj.getClass().hashCode(); } obj = bc.mCollator; if (obj != null) { hash += obj.getClass().hashCode(); } } mHashCode = hash; }
private void setHashCode(Rules rules) { mHashCode = rules.hashCode(); mHasHashCode = true; }
public int hashCode() { if (!mHasHashCode) { setHashCode(new Rules(this)); } return mHashCode; }
BeanComparator[] ruleParts = rules.getRuleParts(); BeanComparator bc = ruleParts[0];
BeanComparator[] ruleParts1 = getRuleParts(); BeanComparator[] ruleParts2 = ((Rules)obj).getRuleParts();
public int hashCode() { if (!mHasHashCode) { setHashCode(new Rules(this)); } return mHashCode; }
private void setHashCode(Rules rules) { mHashCode = rules.hashCode(); mHasHashCode = true; }