org.metasyntactic.thread.concurrent
Class SynchronizedBoolean

java.lang.Object
  |
  +--org.metasyntactic.thread.concurrent.SynchronizedVariable
        |
        +--org.metasyntactic.thread.concurrent.SynchronizedBoolean
All Implemented Interfaces:
java.lang.Cloneable, Executor

public class SynchronizedBoolean
extends SynchronizedVariable
implements java.lang.Cloneable

A class useful for offloading synch for boolean instance variables.


Field Summary
protected  boolean value
           
 
Fields inherited from class org.metasyntactic.thread.concurrent.SynchronizedVariable
lock
 
Constructor Summary
SynchronizedBoolean()
          Creates a new SynchBoolean instantiated to the value 'false' just like a java boolean
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.
 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 org.metasyntactic.thread.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()
Creates a new SynchBoolean instantiated to the value 'false' just like a java boolean


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

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