public final class org.apache.commons.io.monitor.FileAlterationMonitor extends java.lang.Object implements java.lang.Runnable
{
private static final org.apache.commons.io.monitor.FileAlterationObserver[] EMPTY_ARRAY;
private final long interval;
private final java.util.List observers;
private java.lang.Thread thread;
private java.util.concurrent.ThreadFactory threadFactory;
private volatile boolean running;
public void <init>()
{
org.apache.commons.io.monitor.FileAlterationMonitor v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
specialinvoke v.<org.apache.commons.io.monitor.FileAlterationMonitor: void <init>(long)>(10000L);
return;
}
public void <init>(long)
{
long v;
java.util.concurrent.CopyOnWriteArrayList v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: long;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers> = v;
v.<org.apache.commons.io.monitor.FileAlterationMonitor: long interval> = v;
return;
}
public void <init>(long, java.util.Collection)
{
java.lang.Object[] v;
java.util.Collection v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
long v;
java.util.List v;
org.apache.commons.io.monitor.FileAlterationObserver[] v;
java.util.Optional v;
java.lang.Object v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: long;
v := @parameter: java.util.Collection;
v = staticinvoke <java.util.Optional: java.util.Optional ofNullable(java.lang.Object)>(v);
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(v);
v = <org.apache.commons.io.monitor.FileAlterationMonitor: org.apache.commons.io.monitor.FileAlterationObserver[] EMPTY_ARRAY>;
v = interfaceinvoke v.<java.util.Collection: java.lang.Object[] toArray(java.lang.Object[])>(v);
specialinvoke v.<org.apache.commons.io.monitor.FileAlterationMonitor: void <init>(long,org.apache.commons.io.monitor.FileAlterationObserver[])>(v, v);
return;
}
public transient void <init>(long, org.apache.commons.io.monitor.FileAlterationObserver[])
{
org.apache.commons.io.monitor.FileAlterationObserver[] v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
org.apache.commons.io.monitor.FileAlterationObserver v;
int v, v;
long v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: long;
v := @parameter: org.apache.commons.io.monitor.FileAlterationObserver[];
specialinvoke v.<org.apache.commons.io.monitor.FileAlterationMonitor: void <init>(long)>(v);
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
virtualinvoke v.<org.apache.commons.io.monitor.FileAlterationMonitor: void addObserver(org.apache.commons.io.monitor.FileAlterationObserver)>(v);
v = v + 1;
goto label;
label:
return;
}
public long getInterval()
{
long v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: long interval>;
return v;
}
public synchronized void setThreadFactory(java.util.concurrent.ThreadFactory)
{
java.util.concurrent.ThreadFactory v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: java.util.concurrent.ThreadFactory;
v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.concurrent.ThreadFactory threadFactory> = v;
return;
}
public void addObserver(org.apache.commons.io.monitor.FileAlterationObserver)
{
java.util.List v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
org.apache.commons.io.monitor.FileAlterationObserver v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: org.apache.commons.io.monitor.FileAlterationObserver;
if v == null goto label;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return;
}
public void removeObserver(org.apache.commons.io.monitor.FileAlterationObserver)
{
java.util.List v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
org.apache.commons.io.monitor.FileAlterationObserver v;
boolean v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: org.apache.commons.io.monitor.FileAlterationObserver;
if v == null goto label;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers>;
v = interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
if v != 0 goto label;
label:
return;
}
public java.lang.Iterable getObservers()
{
java.util.List v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers>;
return v;
}
public synchronized void start() throws java.lang.Exception
{
java.lang.IllegalStateException v;
java.util.Iterator v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
java.util.List v;
java.lang.Thread v, v, v;
java.lang.Object v;
java.util.concurrent.ThreadFactory v, v;
boolean v, v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: boolean running>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Monitor is already running");
throw v;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.commons.io.monitor.FileAlterationObserver: void initialize()>();
goto label;
label:
v.<org.apache.commons.io.monitor.FileAlterationMonitor: boolean running> = 1;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.concurrent.ThreadFactory threadFactory>;
if v == null goto label;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.concurrent.ThreadFactory threadFactory>;
v = interfaceinvoke v.<java.util.concurrent.ThreadFactory: java.lang.Thread newThread(java.lang.Runnable)>(v);
v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.lang.Thread thread> = v;
goto label;
label:
v = new java.lang.Thread;
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.lang.Thread thread> = v;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.lang.Thread thread>;
virtualinvoke v.<java.lang.Thread: void start()>();
return;
}
public synchronized void stop() throws java.lang.Exception
{
long v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: long interval>;
virtualinvoke v.<org.apache.commons.io.monitor.FileAlterationMonitor: void stop(long)>(v);
return;
}
public synchronized void stop(long) throws java.lang.Exception
{
java.lang.IllegalStateException v;
java.util.Iterator v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
long v;
java.util.List v;
java.lang.InterruptedException v;
java.lang.Thread v, v, v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
v := @parameter: long;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: boolean running>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Monitor is not running");
throw v;
label:
v.<org.apache.commons.io.monitor.FileAlterationMonitor: boolean running> = 0;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.lang.Thread thread>;
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.lang.Thread thread>;
virtualinvoke v.<java.lang.Thread: void join(long)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.commons.io.monitor.FileAlterationObserver: void destroy()>();
goto label;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void run()
{
java.util.Iterator v;
org.apache.commons.io.monitor.FileAlterationMonitor v;
long v;
java.util.List v;
java.lang.InterruptedException v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.apache.commons.io.monitor.FileAlterationMonitor;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: boolean running>;
if v == 0 goto label;
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: java.util.List observers>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.commons.io.monitor.FileAlterationObserver: void checkAndNotify()>();
goto label;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: boolean running>;
if v == 0 goto label;
label:
v = v.<org.apache.commons.io.monitor.FileAlterationMonitor: long interval>;
staticinvoke <java.lang.Thread: void sleep(long)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
static void <clinit>()
{
org.apache.commons.io.monitor.FileAlterationObserver[] v;
v = newarray (org.apache.commons.io.monitor.FileAlterationObserver)[0];
<org.apache.commons.io.monitor.FileAlterationMonitor: org.apache.commons.io.monitor.FileAlterationObserver[] EMPTY_ARRAY> = v;
return;
}
}