diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-06-29 10:48:34 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-06-29 10:48:34 +1200 |
commit | d1c4cd526845aad56c5b0a3e20454638bbc7fecc (patch) | |
tree | 565ee245ea0e98b88674b775147fbc6d3e1933cb /src/org/traccar/http/commands | |
parent | 88b3f00f3855aa408c7859051efdcb5b37fe559f (diff) | |
download | trackermap-server-d1c4cd526845aad56c5b0a3e20454638bbc7fecc.tar.gz trackermap-server-d1c4cd526845aad56c5b0a3e20454638bbc7fecc.tar.bz2 trackermap-server-d1c4cd526845aad56c5b0a3e20454638bbc7fecc.zip |
Merge commands implmentation (fix #1271)
Diffstat (limited to 'src/org/traccar/http/commands')
-rw-r--r-- | src/org/traccar/http/commands/CommandType.java | 28 | ||||
-rw-r--r-- | src/org/traccar/http/commands/Duration.java | 38 | ||||
-rw-r--r-- | src/org/traccar/http/commands/FixPositioningCommand.java | 25 | ||||
-rw-r--r-- | src/org/traccar/http/commands/GpsCommand.java | 27 | ||||
-rw-r--r-- | src/org/traccar/http/commands/NoParameterCommand.java | 11 |
5 files changed, 129 insertions, 0 deletions
diff --git a/src/org/traccar/http/commands/CommandType.java b/src/org/traccar/http/commands/CommandType.java new file mode 100644 index 000000000..12610dbcc --- /dev/null +++ b/src/org/traccar/http/commands/CommandType.java @@ -0,0 +1,28 @@ +package org.traccar.http.commands; + +import org.traccar.model.Factory; + +public enum CommandType implements Factory { + STOP_POSITIONING(NoParameterCommand.class), + FIX_POSITIONING(FixPositioningCommand.class), + STOP_ENGINE(NoParameterCommand.class), + RESUME_ENGINE(NoParameterCommand.class); + + + private Class<? extends GpsCommand> commandClass; + + CommandType(Class<? extends GpsCommand> commandClass) { + this.commandClass = commandClass; + } + + @Override + public Object create() { + try { + return commandClass.newInstance(); + } catch (InstantiationException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/org/traccar/http/commands/Duration.java b/src/org/traccar/http/commands/Duration.java new file mode 100644 index 000000000..e50f0c23e --- /dev/null +++ b/src/org/traccar/http/commands/Duration.java @@ -0,0 +1,38 @@ +package org.traccar.http.commands; + +public class Duration { + + public enum TimeUnit { + SECOND("s"), MINUTE("m"), HOUR("h"); + + private final String commandFormat; + + TimeUnit(String commandFormat) { + this.commandFormat = commandFormat; + } + + public String getCommandFormat() { + return commandFormat; + } + } + + + private TimeUnit unit; + private int value; + + public TimeUnit getUnit() { + return unit; + } + + public void setUnit(TimeUnit unit) { + this.unit = unit; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } +} diff --git a/src/org/traccar/http/commands/FixPositioningCommand.java b/src/org/traccar/http/commands/FixPositioningCommand.java new file mode 100644 index 000000000..f3b25acbc --- /dev/null +++ b/src/org/traccar/http/commands/FixPositioningCommand.java @@ -0,0 +1,25 @@ +package org.traccar.http.commands; + +import java.util.HashMap; +import java.util.Map; + +public class FixPositioningCommand extends GpsCommand { + public static final String FREQUENCY = "frequency"; + + private Duration data; + + @Override + public Map<String, Object> getReplacements() { + Map<String, Object> replacements = new HashMap<String, Object>(); + replacements.put(FREQUENCY, data); + return replacements; + } + + public Duration getData() { + return data; + } + + public void setData(Duration data) { + this.data = data; + } +} diff --git a/src/org/traccar/http/commands/GpsCommand.java b/src/org/traccar/http/commands/GpsCommand.java new file mode 100644 index 000000000..604bf832f --- /dev/null +++ b/src/org/traccar/http/commands/GpsCommand.java @@ -0,0 +1,27 @@ +package org.traccar.http.commands; + +import java.util.Map; + +public abstract class GpsCommand { + public static final String UNIQUE_ID = "uniqueId"; + private String uniqueId; + private CommandType type; + + public String getUniqueId() { + return uniqueId; + } + + public void setUniqueId(String uniqueId) { + this.uniqueId = uniqueId; + } + + public CommandType getType() { + return type; + } + + public void setType(CommandType type) { + this.type = type; + } + + public abstract Map<String, Object> getReplacements(); +} diff --git a/src/org/traccar/http/commands/NoParameterCommand.java b/src/org/traccar/http/commands/NoParameterCommand.java new file mode 100644 index 000000000..fee3c8097 --- /dev/null +++ b/src/org/traccar/http/commands/NoParameterCommand.java @@ -0,0 +1,11 @@ +package org.traccar.http.commands; + +import java.util.HashMap; +import java.util.Map; + +public class NoParameterCommand extends GpsCommand { + @Override + public Map<String, Object> getReplacements() { + return new HashMap<String, Object>(); + } +} |