EDU.oswego.cs.dl.util.concurrent
Class SynchronizedBoolean

java.lang.Object
  extended by EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
      extended by EDU.oswego.cs.dl.util.concurrent.SynchronizedBoolean
All Implemented Interfaces:
Executor, java.lang.Cloneable, java.lang.Comparable
Direct Known Subclasses:
WaitableBoolean

public class SynchronizedBoolean
extends SynchronizedVariable
implements java.lang.Comparable, java.lang.Cloneable

A class useful for offloading synch for boolean instance variables.

[ Introduction to this package. ]


Field Summary
protected  boolean value_
           
 
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
 
Constructor Summary
SynchronizedBoolean(boolean initialValue)
          Make a new SynchronizedBoolean with the given initial value, and using its own internal lock.
SynchronizedBoolean(boolean initialValue, java.lang.Object lock)
          Make a new SynchronizedBoolean with the given initial value, and using the supplied lock.
 
Method Summary
 boolean and(boolean b)
          Set value to value & b.
 boolean commit(boolean assumedValue, boolean newValue)
          Set value to newValue only if it is currently assumedValue.
 int compareTo(boolean other)
           
 int compareTo(java.lang.Object other)
           
 int compareTo(SynchronizedBoolean other)
           
 boolean complement()
          Set the value to its complement
 boolean equals(java.lang.Object other)
           
 boolean get()
          Return the current value
 int hashCode()
           
 boolean or(boolean b)
          Set value to value | b.
 boolean set(boolean newValue)
          Set to newValue.
 boolean swap(SynchronizedBoolean other)
          Atomically swap values with another SynchronizedBoolean.
 java.lang.String toString()
           
 boolean xor(boolean b)
          Set value to value ^ b.
 
Methods inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
execute, getLock
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

value_

protected boolean value_
Constructor Detail

SynchronizedBoolean

public SynchronizedBoolean(boolean initialValue)
Make a new SynchronizedBoolean with the given initial value, and using its own internal lock.


SynchronizedBoolean

public SynchronizedBoolean(boolean initialValue,
                           java.lang.Object lock)
Make a new SynchronizedBoolean with the given initial value, and using the supplied lock.

Method Detail

get

public final boolean get()
Return the current value


set

public boolean set(boolean newValue)
Set to newValue.

Returns:
the old value

commit

public boolean commit(boolean assumedValue,
                      boolean newValue)
Set value to newValue only if it is currently assumedValue.

Returns:
true if successful

swap

public boolean swap(SynchronizedBoolean other)
Atomically swap values with another SynchronizedBoolean. Uses identityHashCode to avoid deadlock when two SynchronizedBooleans attempt to simultaneously swap with each other. (Note: Ordering via identyHashCode is not strictly guaranteed by the language specification to return unique, orderable values, but in practice JVMs rely on them being unique.)

Returns:
the new value

complement

public boolean complement()
Set the value to its complement

Returns:
the new value

and

public boolean and(boolean b)
Set value to value & b.

Returns:
the new value

or

public boolean or(boolean b)
Set value to value | b.

Returns:
the new value

xor

public boolean xor(boolean b)
Set value to value ^ b.

Returns:
the new value

compareTo

public int compareTo(boolean other)
Specified by:
compareTo in interface java.lang.Comparable

compareTo

public int compareTo(SynchronizedBoolean other)
Specified by:
compareTo in interface java.lang.Comparable

compareTo

public int compareTo(java.lang.Object other)
Specified by:
compareTo in interface java.lang.Comparable

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object