Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


com.tangosol.net.partition
Class SimpleAssignmentStrategy.AnalysisContext.StrengthComparator

java.lang.Object
  extended by com.tangosol.net.partition.SimpleAssignmentStrategy.AnalysisContext.StrengthComparator

All Implemented Interfaces:
java.util.Comparator
Enclosing class:
SimpleAssignmentStrategy.AnalysisContext

public class SimpleAssignmentStrategy.AnalysisContext.StrengthComparator
extends java.lang.Object
implements java.util.Comparator

StrengthComparator is an Comparator that can be used to compare two Member objects based on their "distance" from a given set of members (as represented by an Ownership object). Member distances are expressed with the granularity of "machine", "rack", and "site".

A member is ordered "lower" than another member if it has a larger combined distance from the reference members (ownership) (i.e. it is "stronger"). Members with equivalent distances are ordered arbitrarily.

Note: This comparator does not define an ordering that is "consistent with equals". If used in a context requiring such a natural ordering, it should be chained with comparator that does provide a natural ordering.


Field Summary
protected  Ownership m_owners
          The ownership.

 

Constructor Summary
SimpleAssignmentStrategy.AnalysisContext.StrengthComparator(Ownership owners)
          Construct a StrengthComparator for the specified reference ownership.

 

Method Summary
 int compare(java.lang.Object o1, java.lang.Object o2)
          Compares its two arguments for order.
protected  int getDistance(Member member)
          Return the "distance" of the specified member from the reference ownership.
protected  int getDistance(Member member1, Member member2)
          Return the "distance" between the specified members.
 Ownership getOwnership()
          Return the ownership to use in comparing member strength.

 

Methods inherited from interface java.util.Comparator
equals

 

Field Detail

m_owners

protected Ownership m_owners
The ownership.

Constructor Detail

SimpleAssignmentStrategy.AnalysisContext.StrengthComparator

public SimpleAssignmentStrategy.AnalysisContext.StrengthComparator(Ownership owners)
Construct a StrengthComparator for the specified reference ownership.
Parameters:
owners - the ownership, from which to determine member strength

Method Detail

getOwnership

public Ownership getOwnership()
Return the ownership to use in comparing member strength.
Returns:
the ownership

compare

public int compare(java.lang.Object o1,
                   java.lang.Object o2)
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)

The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.

Finally, the implementer must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.

It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."

Specified by:
compare in interface java.util.Comparator
Parameters:
o1 - the first object to be compared.
o2 - the second object to be compared.
Returns:
a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

getDistance

protected int getDistance(Member member)
Return the "distance" of the specified member from the reference ownership. The distance reflects granularities of "machine", "rack" and "site", and in the case of multiple-backups, reflects combined distances to each backup.
Parameters:
member - the member to return the distance for
Returns:
the "distance"

getDistance

protected int getDistance(Member member1,
                          Member member2)
Return the "distance" between the specified members.
Parameters:
member1 - the first member
member2 - the second member
Returns:
the "distance" between the specified members

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.