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

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

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

A class useful for offloading synch for char instance variables.

[ Introduction to this package. ]


Field Summary
protected  char value_
           
 
Fields inherited from class EDU.oswego.cs.dl.util.concurrent.SynchronizedVariable
lock_
 
Constructor Summary
SynchronizedChar(char initialValue)
          Make a new SynchronizedChar with the given initial value, and using its own internal lock.
SynchronizedChar(char initialValue, java.lang.Object lock)
          Make a new SynchronizedChar with the given initial value, and using the supplied lock.
 
Method Summary
 char add(char amount)
          Add amount to value (i.e., set value += amount)
 boolean commit(char assumedValue, char newValue)
          Set value to newValue only if it is currently assumedValue.
 int compareTo(char other)
           
 int compareTo(java.lang.Object other)
           
 int compareTo(SynchronizedChar other)
           
 char divide(char factor)
          Divide value by factor (i.e., set value /= factor)
 boolean equals(java.lang.Object other)
           
 char get()
          Return the current value
 int hashCode()
           
 char multiply(char factor)
          Multiply value by factor (i.e., set value *= factor)
 char set(char newValue)
          Set to newValue.
 char subtract(char amount)
          Subtract amount from value (i.e., set value -= amount)
 char swap(SynchronizedChar other)
          Atomically swap values with another SynchronizedChar.
 java.lang.String toString()
           
 
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 char value_
Constructor Detail

SynchronizedChar

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


SynchronizedChar

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

Method Detail

get

public final char get()
Return the current value


set

public char set(char newValue)
Set to newValue.

Returns:
the old value

commit

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

Returns:
true if successful

swap

public char swap(SynchronizedChar other)
Atomically swap values with another SynchronizedChar. Uses identityHashCode to avoid deadlock when two SynchronizedChars 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

add

public char add(char amount)
Add amount to value (i.e., set value += amount)

Returns:
the new value

subtract

public char subtract(char amount)
Subtract amount from value (i.e., set value -= amount)

Returns:
the new value

multiply

public char multiply(char factor)
Multiply value by factor (i.e., set value *= factor)

Returns:
the new value

divide

public char divide(char factor)
Divide value by factor (i.e., set value /= factor)

Returns:
the new value

compareTo

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

compareTo

public int compareTo(SynchronizedChar 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