tesl
Class ClockSet

java.lang.Object
  extended by tesl.ClockSet

public class ClockSet
extends java.lang.Object


Field Summary
private  java.util.List<ImplicationRelation> c_implications_
           
static java.lang.String ClockLogger
           
private  java.util.List<Clock<?>> clocks_
           
private  java.util.List<Tick<? extends java.lang.Comparable<?>>> floatingGhosts_
           
private  java.util.Map<Clock<?>,java.util.List<ImplicationRelation>> masters_
           
private  java.util.Map<Clock<?>,java.util.List<ImplicationRelation>> slaves_
           
private  java.util.List<TagRelation<?,?>> t_relations_
           
private  java.util.Map<Clock<? extends java.lang.Comparable<?>>,java.util.Set<Clock<? extends java.lang.Comparable<?>>>> time_islands_
           
 
Constructor Summary
ClockSet()
           
 
Method Summary
<T extends java.lang.Comparable<? super T>>
Clock<T>
addClock(Clock<T> c)
           
 ImplicationRelation addImplicationRelation(ImplicationRelation r)
           
 TagRelation<?,?> addTagRelation(TagRelation<?,?> t)
           
private  boolean alignFloatingTime()
           
protected
<T extends java.lang.Comparable<? super T>>
boolean
checkFirstTick(Clock<T> clk)
           
 boolean checkNoNow()
           
private  void cleanUpClocks()
           
private static
<T extends java.lang.Comparable<? super T>,U extends java.lang.Comparable<? super U>>
int
compareTags(Tag<T> t1, Tag<U> t2)
           
 boolean dependsOn(ImplicationRelation r1, ImplicationRelation r2)
           
protected  void doTopoSort()
           
private  void findTimeIslands()
           
 java.lang.Iterable<Clock<?>> getClocks()
           
 java.lang.Iterable<ImplicationRelation> getImplicationRelations()
           
 ClockSetMark getMark()
           
 java.lang.Iterable<TagRelation<?,?>> getTagRelations()
           
private static
<T extends java.lang.Comparable<? super T>>
Tick<T>
getTickWithTag(Clock<T> clk, Tag<? extends java.lang.Comparable<?>> tag)
           
private
<T extends java.lang.Comparable<? super T>>
void
mergeNullTick(Clock<T> clock)
           
protected  boolean mergeTicks()
           
 void printClocks(java.util.logging.Level level, java.lang.String message)
           
private static
<U extends java.lang.Comparable<? super U>,V extends java.lang.Comparable<? super V>>
Tag<V>
processConversion(TagRelation<U,V> rel, Tag<?> tag)
           
private static
<U extends java.lang.Comparable<? super U>,V extends java.lang.Comparable<? super V>>
Tag<U>
processRevConversion(TagRelation<U,V> rel, Tag<?> tag)
           
private static
<T extends java.lang.Comparable<? super T>>
void
removeTick(Clock<T> clk, Tick<? extends java.lang.Comparable<?>> tick)
           
 void resetClocks()
           
 void setMark(ClockSetMark mark)
           
private static
<T extends java.lang.Comparable<? super T>>
void
setTag(Tick<T> tick, Tag<? extends java.lang.Comparable<?>> tag)
           
 ClockSet solve()
           
<T extends java.lang.Comparable<T>>
ClockSet
solve(Tick<T> tick)
           
protected  boolean solveTags()
           
protected  boolean solveTicks()
           
private  java.util.Map<Clock<? extends java.lang.Comparable<?>>,Tag<? extends java.lang.Comparable<?>>> tagClosure(Clock<? extends java.lang.Comparable<?>> clock, Tag<? extends java.lang.Comparable<?>> tag)
           
 java.lang.String toString()
           
 java.lang.String toString(java.lang.String message)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ClockLogger

public static final java.lang.String ClockLogger
See Also:
Constant Field Values

clocks_

private java.util.List<Clock<?>> clocks_

c_implications_

private java.util.List<ImplicationRelation> c_implications_

t_relations_

private java.util.List<TagRelation<?,?>> t_relations_

masters_

private java.util.Map<Clock<?>,java.util.List<ImplicationRelation>> masters_

slaves_

private java.util.Map<Clock<?>,java.util.List<ImplicationRelation>> slaves_

floatingGhosts_

private java.util.List<Tick<? extends java.lang.Comparable<?>>> floatingGhosts_

time_islands_

private java.util.Map<Clock<? extends java.lang.Comparable<?>>,java.util.Set<Clock<? extends java.lang.Comparable<?>>>> time_islands_
Constructor Detail

ClockSet

public ClockSet()
Method Detail

addClock

public <T extends java.lang.Comparable<? super T>> Clock<T> addClock(Clock<T> c)

addImplicationRelation

public ImplicationRelation addImplicationRelation(ImplicationRelation r)

addTagRelation

public TagRelation<?,?> addTagRelation(TagRelation<?,?> t)

getClocks

public java.lang.Iterable<Clock<?>> getClocks()

resetClocks

public void resetClocks()

getImplicationRelations

public java.lang.Iterable<ImplicationRelation> getImplicationRelations()

getTagRelations

public java.lang.Iterable<TagRelation<?,?>> getTagRelations()

getMark

public ClockSetMark getMark()

setMark

public void setMark(ClockSetMark mark)

findTimeIslands

private void findTimeIslands()

solve

public ClockSet solve()
               throws java.lang.Exception
Throws:
java.lang.Exception

solve

public <T extends java.lang.Comparable<T>> ClockSet solve(Tick<T> tick)
               throws java.lang.Exception
Throws:
java.lang.Exception

cleanUpClocks

private void cleanUpClocks()

checkNoNow

public boolean checkNoNow()

checkFirstTick

protected <T extends java.lang.Comparable<? super T>> boolean checkFirstTick(Clock<T> clk)

dependsOn

public boolean dependsOn(ImplicationRelation r1,
                         ImplicationRelation r2)

doTopoSort

protected void doTopoSort()

solveTicks

protected boolean solveTicks()

solveTags

protected boolean solveTags()
                     throws java.lang.Exception
Throws:
java.lang.Exception

setTag

private static <T extends java.lang.Comparable<? super T>> void setTag(Tick<T> tick,
                                                                       Tag<? extends java.lang.Comparable<?>> tag)

removeTick

private static <T extends java.lang.Comparable<? super T>> void removeTick(Clock<T> clk,
                                                                           Tick<? extends java.lang.Comparable<?>> tick)

getTickWithTag

private static <T extends java.lang.Comparable<? super T>> Tick<T> getTickWithTag(Clock<T> clk,
                                                                                  Tag<? extends java.lang.Comparable<?>> tag)

tagClosure

private java.util.Map<Clock<? extends java.lang.Comparable<?>>,Tag<? extends java.lang.Comparable<?>>> tagClosure(Clock<? extends java.lang.Comparable<?>> clock,
                                                                                                                  Tag<? extends java.lang.Comparable<?>> tag)
                                                                                                           throws java.lang.Exception
Throws:
java.lang.Exception

mergeTicks

protected boolean mergeTicks()
                      throws java.lang.Exception
Throws:
java.lang.Exception

processConversion

private static <U extends java.lang.Comparable<? super U>,V extends java.lang.Comparable<? super V>> Tag<V> processConversion(TagRelation<U,V> rel,
                                                                                                                              Tag<?> tag)

processRevConversion

private static <U extends java.lang.Comparable<? super U>,V extends java.lang.Comparable<? super V>> Tag<U> processRevConversion(TagRelation<U,V> rel,
                                                                                                                                 Tag<?> tag)

compareTags

private static <T extends java.lang.Comparable<? super T>,U extends java.lang.Comparable<? super U>> int compareTags(Tag<T> t1,
                                                                                                                     Tag<U> t2)

mergeNullTick

private <T extends java.lang.Comparable<? super T>> void mergeNullTick(Clock<T> clock)

alignFloatingTime

private boolean alignFloatingTime()
                           throws java.lang.Exception
Throws:
java.lang.Exception

toString

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

toString

public java.lang.String toString(java.lang.String message)

printClocks

public void printClocks(java.util.logging.Level level,
                        java.lang.String message)