changing project structure

This commit is contained in:
2013-12-02 20:43:28 +00:00
parent 1b005c69f5
commit 82b66ba73e
168 changed files with 23737 additions and 387 deletions

View File

@@ -2,10 +2,10 @@
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry exported="true" kind="src" path="/base"/>
<classpathentry exported="true" kind="src" path="/itunescontroller"/>
<classpathentry exported="true" kind="src" path="/wiigee"/>
<classpathentry exported="true" kind="src" path="/wiiusej"/>
<classpathentry kind="lib" path="libs/jxinput.jar"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="con" path="org.springsource.ide.eclipse.gradle.classpathcontainer"/>
<classpathentry kind="output" path="bin"/>

View File

@@ -1,6 +1,7 @@
def mainClass = 'mimis.Main'
dependencies {
compile project(':base')
compile project(':itunescontroller')
compile project(':wiiusej')
compile project(':wiigee')
@@ -10,7 +11,7 @@ dependencies {
compile 'commons-collections:commons-collections:3.+'
compile 'org.slf4j:slf4j-api:1.+'
compile 'org.slf4j:slf4j-log4j12:1.7.5'
compile 'org.slf4j:slf4j-log4j12:1.+'
compile 'com.melloware:jintellitype:1.+'
}
@@ -24,4 +25,17 @@ jar {
it.isDirectory() ? it : zipTree(it)
}
}
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://server:8081/artifactory/test-local") {
authentication(userName: System.getenv("UPLOAD_USERNAME"), password: System.getenv("UPLOAD_PASSWORD"))
}
pom.groupId = 'testgroup'
pom.artifactId = 'bla'
pom.version = '5.6'
}
}
}

Binary file not shown.

View File

@@ -1,4 +1,4 @@
package mimis.worker;
package base.worker;
import mimis.input.Button;
import mimis.input.Feedback;

View File

@@ -1,6 +1,6 @@
package mimis;
import mimis.exception.worker.ActivateException;
import base.exception.worker.ActivateException;
import mimis.router.GlobalRouter;
import mimis.util.swing.Dialog;

View File

@@ -8,12 +8,12 @@ import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import mimis.exception.worker.ActivateException;
import base.exception.worker.ActivateException;
import base.worker.Component;
import mimis.input.Feedback;
import mimis.input.Input;
import mimis.manager.ButtonManager;
import mimis.util.Swing;
import mimis.worker.Component;
public class Gui extends Component {
public static final String ICON = "M.png";

View File

@@ -5,13 +5,13 @@ import java.util.ServiceLoader;
import javax.swing.UIManager;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import mimis.input.Task;
import mimis.manager.ButtonManager;
import mimis.manager.CurrentButtonManager;
import mimis.value.Action;
import mimis.worker.Component;
public class Main extends Mimis {
protected CurrentButtonManager applicationManager;

View File

@@ -1,7 +1,8 @@
package mimis;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import mimis.input.Feedback;
import mimis.input.Task;
import mimis.manager.Manager;
@@ -10,7 +11,6 @@ import mimis.router.Router;
import mimis.util.ArrayCycle;
import mimis.value.Action;
import mimis.value.Target;
import mimis.worker.Component;
public abstract class Mimis extends Component {
protected Component[] currentArray;

View File

@@ -3,12 +3,12 @@ package mimis.application.cmd;
import java.io.IOException;
import java.util.Map;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import mimis.application.Application;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.util.Native;
import mimis.value.Registry;
import mimis.worker.Component;
public abstract class CMDApplication extends Component implements Application {
protected final static Registry REGISTRY = Registry.LOCAL_MACHINE;

View File

@@ -1,8 +1,8 @@
package mimis.application.cmd.windows;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import mimis.application.cmd.CMDApplication;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.util.Native;
import mimis.value.Command;
import mimis.value.Key;

View File

@@ -1,11 +1,11 @@
package mimis.application.cmd.windows.gomplayer;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.application.cmd.windows.WindowsApplication;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.value.Action;
import mimis.value.Amount;
import mimis.worker.Worker;
public class GomPlayerApplication extends WindowsApplication {
protected final static String PROGRAM = "GOM.exe";

View File

@@ -1,11 +1,11 @@
package mimis.application.cmd.windows.photoviewer;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.application.cmd.windows.WindowsApplication;
import mimis.exception.worker.DeactivateException;
import mimis.value.Action;
import mimis.value.Key;
import mimis.value.Type;
import mimis.worker.Worker;
public class PhotoViewerApplication extends WindowsApplication {
protected final static String TITLE = "Photo Viewer";

View File

@@ -1,10 +1,10 @@
package mimis.application.cmd.windows.winamp;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.application.cmd.windows.WindowsApplication;
import mimis.exception.worker.DeactivateException;
import mimis.value.Action;
import mimis.value.Command;
import mimis.worker.Worker;
public class WinampApplication extends WindowsApplication {
protected final static String PROGRAM = "winamp.exe";

View File

@@ -1,8 +1,8 @@
package mimis.application.cmd.windows.wmp;
import base.worker.Worker;
import mimis.application.cmd.windows.WindowsApplication;
import mimis.value.Action;
import mimis.worker.Worker;
public class WMPApplication extends WindowsApplication {
protected final static String PROGRAM = "wmplayer.exe";

View File

@@ -1,11 +1,11 @@
package mimis.application.itunes;
import mimis.application.Application;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.value.Action;
import mimis.worker.Component;
import mimis.worker.Worker;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import base.worker.Worker;
import com.dt.iTunesController.ITCOMDisabledReason;
import com.dt.iTunesController.ITTrack;

View File

@@ -1,12 +1,12 @@
package mimis.application.lirc;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import mimis.application.Application;
import mimis.device.lirc.LircButton;
import mimis.device.lirc.LircService;
import mimis.device.lirc.remote.WC02IPOButton;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.worker.Component;
public class LircApplication extends Component implements Application {
protected LircService lircService;

View File

@@ -1,11 +1,11 @@
package mimis.application.lirc.ipod;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.application.lirc.LircApplication;
import mimis.device.lirc.remote.WC02IPOButton;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.value.Action;
import mimis.worker.Worker;
public class iPodApplication extends LircApplication {
protected static final String TITLE = "iPod";

View File

@@ -1,8 +1,8 @@
package mimis.application.mpc;
import base.worker.Worker;
import mimis.application.cmd.windows.WindowsApplication;
import mimis.value.Action;
import mimis.worker.Worker;
public class MPCApplication extends WindowsApplication {
protected final static String PROGRAM = "mpc-hc.exe";

View File

@@ -3,9 +3,9 @@ package mimis.application.robot;
import java.awt.AWTException;
import java.awt.Robot;
import mimis.exception.worker.ActivateException;
import base.exception.worker.ActivateException;
import base.worker.Component;
import mimis.value.Key;
import mimis.worker.Component;
public class RobotApplication extends Component {
protected Robot robot;

View File

@@ -7,14 +7,14 @@ import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.application.cmd.CMDApplication;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.util.Native;
import mimis.value.Action;
import mimis.value.Amount;
import mimis.value.Registry;
import mimis.worker.Worker;
public class VLCApplication extends CMDApplication {
protected final static Registry REGISTRY = Registry.CLASSES_ROOT;

View File

@@ -1,16 +1,16 @@
package mimis.device.javainput;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import mimis.device.Device;
import mimis.exception.ButtonException;
import mimis.exception.button.UnknownButtonException;
import mimis.exception.button.UnknownDirectionException;
import mimis.exception.device.DeviceNotFoundException;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.Button;
import mimis.input.state.Press;
import mimis.input.state.Release;
import mimis.worker.Component;
import de.hardcode.jxinput.JXInputDevice;
import de.hardcode.jxinput.JXInputManager;
import de.hardcode.jxinput.event.JXInputAxisEvent;

View File

@@ -3,8 +3,8 @@ package mimis.device.javainput;
import java.util.LinkedList;
import java.util.Queue;
import base.worker.Worker;
import mimis.exception.ButtonException;
import mimis.worker.Worker;
import de.hardcode.jxinput.Button;
import de.hardcode.jxinput.Directional;
import de.hardcode.jxinput.JXInputDevice;

View File

@@ -1,10 +1,10 @@
package mimis.device.javainput.extreme3d;
import base.exception.worker.ActivateException;
import mimis.device.javainput.DirectionButton;
import mimis.device.javainput.JavaInputDevice;
import mimis.exception.button.UnknownButtonException;
import mimis.exception.button.UnknownDirectionException;
import mimis.exception.worker.ActivateException;
import mimis.input.Button;
import mimis.value.Action;
import de.hardcode.jxinput.event.JXInputButtonEvent;

View File

@@ -1,10 +1,10 @@
package mimis.device.javainput.rumblepad;
import base.exception.worker.ActivateException;
import mimis.device.javainput.DirectionButton;
import mimis.device.javainput.JavaInputDevice;
import mimis.exception.button.UnknownButtonException;
import mimis.exception.button.UnknownDirectionException;
import mimis.exception.worker.ActivateException;
import mimis.input.Button;
import mimis.value.Action;
import de.hardcode.jxinput.event.JXInputButtonEvent;

View File

@@ -4,12 +4,12 @@ import java.util.ArrayList;
import mimis.device.Device;
import mimis.exception.button.UnknownButtonException;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.state.Press;
import mimis.input.state.Release;
import mimis.value.Action;
import mimis.worker.Component;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.IntellitypeListener;

View File

@@ -1,12 +1,12 @@
package mimis.device.lirc;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import mimis.application.cmd.CMDApplication;
import mimis.device.Device;
import mimis.device.lirc.remote.DenonRC176Button;
import mimis.device.lirc.remote.PhiliphsRCLE011Button;
import mimis.device.lirc.remote.SamsungBN5901015AButton;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.Button;
import mimis.input.button.ColorButton;
import mimis.input.button.NumberButton;

View File

@@ -15,12 +15,12 @@ import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import java.util.Scanner;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.exception.button.UnknownButtonException;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.util.Native;
import mimis.value.Registry;
import mimis.worker.Worker;
public class LircService extends Worker {
public static final String IP = "localhost";

View File

@@ -9,16 +9,16 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ConcurrentLinkedQueue;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import base.worker.Worker;
import mimis.device.Device;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.Feedback;
import mimis.input.Input;
import mimis.input.Task;
import mimis.value.Action;
import mimis.value.Target;
import mimis.worker.Component;
import mimis.worker.Worker;
public class NetworkDevice extends Component implements Device {
protected static final String TITLE = "Network";

View File

@@ -1,12 +1,12 @@
package mimis.device.panel;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import mimis.device.Device;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.state.Press;
import mimis.input.state.Release;
import mimis.value.Action;
import mimis.worker.Component;
public class PanelDevice extends Component implements Device {
protected static final String TITLE = "Panel";

View File

@@ -1,14 +1,10 @@
package mimis.device.wiimote;
import java.io.IOException;
import mimis.device.Device;
import mimis.device.wiimote.gesture.GestureDevice;
import mimis.device.wiimote.motion.MotionDevice;
import mimis.exception.button.UnknownButtonException;
import mimis.exception.device.DeviceNotFoundException;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.Button;
import mimis.input.Feedback;
import mimis.input.state.Press;
@@ -16,8 +12,6 @@ import mimis.input.state.Release;
import mimis.util.ArrayCycle;
import mimis.value.Action;
import mimis.value.Signal;
import mimis.worker.Component;
import mimis.worker.Worker;
import org.wiigee.event.GestureEvent;
import org.wiigee.event.GestureListener;
@@ -27,6 +21,10 @@ import wiiusej.Wiimote;
import wiiusej.wiiusejevents.physicalevents.IREvent;
import wiiusej.wiiusejevents.physicalevents.MotionSensingEvent;
import wiiusej.wiiusejevents.physicalevents.WiimoteButtonsEvent;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import base.worker.Worker;
public class WiimoteDevice extends Component implements Device, GestureListener {
protected static final String TITLE = "Wiimote";

View File

@@ -3,10 +3,10 @@ package mimis.device.wiimote;
import java.io.IOException;
import java.util.Scanner;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.exception.device.DeviceNotFoundException;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.worker.Worker;
public class WiimoteDiscovery extends Worker {
protected static final String WIISCAN = "wiiscan";

View File

@@ -8,18 +8,18 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Component;
import base.worker.Worker;
import mimis.device.lirc.LircButton;
import mimis.device.lirc.remote.PhiliphsRCLE011Button;
import mimis.device.wiimote.WiimoteDevice;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import mimis.input.Button;
import mimis.input.button.ColorButton;
import mimis.input.button.NumberButton;
import mimis.input.state.State;
import mimis.value.Action;
import mimis.worker.Component;
import mimis.worker.Worker;
import wiiusej.wiiusejevents.physicalevents.MotionSensingEvent;
public class MotionDevice extends Component {

View File

@@ -1,5 +0,0 @@
package mimis.exception;
public class WorkerException extends Exception {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class ActivateException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class AlreadyActiveException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class AlreadyRunningException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class DeactivateException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class NotActiveException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class NotRunningException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,7 +0,0 @@
package mimis.exception.worker;
import mimis.exception.WorkerException;
public class StartException extends WorkerException {
protected static final long serialVersionUID = 1L;
}

View File

@@ -1,9 +1,9 @@
package mimis.input.state;
import base.worker.Component;
import mimis.input.Button;
import mimis.input.Input;
import mimis.input.state.State;
import mimis.worker.Component;
public abstract class State implements Input {
protected static final long serialVersionUID = 1L;

View File

@@ -9,7 +9,7 @@ import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.border.TitledBorder;
import mimis.worker.Worker;
import base.worker.Worker;
public class ButtonManager extends Manager {
protected static final String TITLE = "Workers";

View File

@@ -13,14 +13,14 @@ import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.TitledBorder;
import base.worker.Component;
import base.worker.Worker;
import mimis.input.Task;
import mimis.router.Router;
import mimis.util.ArrayCycle;
import mimis.value.Action;
import mimis.value.Signal;
import mimis.value.Target;
import mimis.worker.Component;
import mimis.worker.Worker;
public class CurrentButtonManager extends ButtonManager implements ActionListener {
protected Router router;

View File

@@ -3,9 +3,9 @@ package mimis.manager;
import java.util.ArrayList;
import java.util.Arrays;
import mimis.exception.worker.DeactivateException;
import mimis.worker.IntervalWorker;
import mimis.worker.Worker;
import base.exception.worker.DeactivateException;
import base.worker.IntervalWorker;
import base.worker.Worker;
public class Manager extends IntervalWorker {
protected static final int INTERVAL = 1000;

View File

@@ -5,12 +5,12 @@ import java.awt.event.MouseListener;
import javax.swing.JToggleButton;
import mimis.worker.Component;
import mimis.worker.Worker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import base.worker.Component;
import base.worker.Worker;
public class WorkerButton extends JToggleButton implements MouseListener {
protected static final long serialVersionUID = 1L;
protected Logger logger = LoggerFactory.getLogger(getClass());

View File

@@ -4,7 +4,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import mimis.exception.worker.ActivateException;
import base.exception.worker.ActivateException;
import base.worker.Component;
import mimis.input.Input;
import mimis.input.Task;
import mimis.input.state.State;
@@ -14,7 +15,6 @@ import mimis.state.TaskMap;
import mimis.value.Action;
import mimis.value.Signal;
import mimis.value.Target;
import mimis.worker.Component;
public class Parser extends Component {
protected TaskMap taskMap;

View File

@@ -1,9 +1,9 @@
package mimis.parser;
import base.worker.Component;
import mimis.input.Input;
import mimis.state.TaskMap;
import mimis.value.Action;
import mimis.worker.Component;
public class ParserInput implements Input {
protected static final long serialVersionUID = 1L;

View File

@@ -5,11 +5,11 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import base.exception.worker.ActivateException;
import base.exception.worker.DeactivateException;
import base.worker.Worker;
import mimis.input.Feedback;
import mimis.input.Task;
import mimis.worker.Worker;
public class GlobalRouter extends Router {
protected String ip;

View File

@@ -4,12 +4,12 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import base.worker.Component;
import mimis.Main;
import mimis.application.Application;
import mimis.device.Device;
import mimis.input.Input;
import mimis.input.Task;
import mimis.worker.Component;
public class Router extends Component {
protected HashMap<Component, ArrayList<Class<? extends Input>>> listenMap;

View File

@@ -1,8 +1,8 @@
package mimis.util;
import base.worker.Worker;
import mimis.util.multiplexer.SignalListener;
import mimis.value.Signal;
import mimis.worker.Worker;
public class Multiplexer<T> extends Worker {
public static final int TIMEOUT = 150;

View File

@@ -1,81 +0,0 @@
package mimis.worker;
import java.util.Timer;
import java.util.TimerTask;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
public class IntervalWorker extends Worker {
protected static final boolean THREAD = true;
protected static final int INTERVAL = 500;
protected Timer timer;
public synchronized void start(boolean thread) {
if (!active) {
activate = true;
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
IntervalWorker.this.run();
}}, 0, INTERVAL);
active = true;
}
if (!thread) {
try {
synchronized (this) {
wait();
}
} catch (InterruptedException e) {
logger.info("", e);
}
}
}
public synchronized void stop() {
if (active) {
timer.cancel();
deactivate = true;
run();
notifyAll();
}
}
public void run() {
if (activate && !active) {
try {
super.activate();
} catch (ActivateException e) {
logger.error("", e);
} finally {
activate = false;
}
} else if (deactivate && active) {
try {
super.deactivate();
} catch (DeactivateException e) {
logger.error("", e);
} finally {
deactivate = false;
}
}
if (active) {
work();
}
}
protected void work() {
System.out.println("(-:");
}
public static void main(String[] args) {
IntervalWorker intervalWorker = new IntervalWorker();
for (int i = 0; i < 3; ++i) {
intervalWorker.start(false);
System.out.println("--");
intervalWorker.sleep(200);
intervalWorker.stop();
}
}
}

View File

@@ -1,35 +0,0 @@
package mimis.worker;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
public abstract class Listener<E> extends Worker {
protected Queue<E> queue;
public Listener() {
queue = new ConcurrentLinkedQueue<E>();
}
public synchronized void add(E element) {
queue.add(element);
notifyAll();
}
public final void work() {
while (!queue.isEmpty()) {
input(queue.poll());
}
if (!deactivate) {
synchronized (this) {
try {
wait();
} catch (InterruptedException e) {
logger.info("", e);
}
}
}
}
public abstract void input(E element);
}

View File

@@ -1,123 +0,0 @@
package mimis.worker;
import mimis.exception.worker.ActivateException;
import mimis.exception.worker.DeactivateException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public abstract class Worker implements Runnable {
protected Logger logger = LoggerFactory.getLogger(getClass());
protected static final boolean THREAD = true;
protected static final int SLEEP = 100;
protected boolean thread = true;
protected boolean run = false;
protected boolean active = false;
protected boolean activate = false;
protected boolean deactivate = false;
public Worker(boolean thread) {
this.thread = thread;
}
public Worker() {
this(THREAD);
}
public synchronized void start(boolean thread) {
if (!active) {
activate = true;
}
if (!run) {
run = true;
if (thread) {
logger.debug("Start thread");
new Thread(this, getClass().getName()).start();
} else {
logger.debug("Run directly");
run();
}
} else {
notifyAll();
}
}
public synchronized void start() {
start(thread);
}
public synchronized void stop() {
if (active) {
deactivate = true;
}
notifyAll();
}
public void exit() {
stop();
run = false;
}
protected void sleep(int time) {
try {
if (time > 0) {
Thread.sleep(time);
}
} catch (InterruptedException e) {
logger.info("", e);
}
}
protected void sleep() {
sleep(SLEEP);
}
public boolean active() {
return active;
}
protected void activate() throws ActivateException {
active = true;
}
protected void deactivate() throws DeactivateException {
active = false;
}
public void run() {
while (run || deactivate) {
if (activate && !active) {
try {
activate();
} catch (ActivateException e) {
logger.error("", e);
} finally {
activate = false;
}
} else if (deactivate && active) {
try {
deactivate();
} catch (DeactivateException e) {
logger.error("", e);
} finally {
deactivate = false;
}
}
if (active) {
work();
} else if (run) {
try {
synchronized (this) {
wait();
}
} catch (InterruptedException e) {
logger.info("", e);
}
}
}
}
protected abstract void work();
}