aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/http/commands
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-06-29 10:48:34 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2015-06-29 10:48:34 +1200
commitd1c4cd526845aad56c5b0a3e20454638bbc7fecc (patch)
tree565ee245ea0e98b88674b775147fbc6d3e1933cb /src/org/traccar/http/commands
parent88b3f00f3855aa408c7859051efdcb5b37fe559f (diff)
downloadtrackermap-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.java28
-rw-r--r--src/org/traccar/http/commands/Duration.java38
-rw-r--r--src/org/traccar/http/commands/FixPositioningCommand.java25
-rw-r--r--src/org/traccar/http/commands/GpsCommand.java27
-rw-r--r--src/org/traccar/http/commands/NoParameterCommand.java11
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>();
+ }
+}