From 362fb75ec0ff6f6c615f07abde917cb55da4de5c Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 1 Aug 2015 11:56:39 +1200 Subject: Add specific other field setters --- src/org/traccar/model/Command.java | 6 ++++++ src/org/traccar/model/Event.java | 10 +++++----- src/org/traccar/protocol/Gps103ProtocolEncoder.java | 2 +- src/org/traccar/protocol/TotemProtocolEncoder.java | 10 +--------- test/org/traccar/protocol/Gps103ProtocolEncoderTest.java | 8 +------- test/org/traccar/protocol/TotemProtocolEncoderTest.java | 8 +------- 6 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/org/traccar/model/Command.java b/src/org/traccar/model/Command.java index 842cceac4..cfebaa38e 100644 --- a/src/org/traccar/model/Command.java +++ b/src/org/traccar/model/Command.java @@ -22,6 +22,12 @@ public class Command implements Factory { public Map getOther() { return other; } public void setOther(Map other) { this.other = other; } + public void set(String key, boolean value) { other.put(key, value); } + public void set(String key, int value) { other.put(key, value); } + public void set(String key, long value) { other.put(key, value); } + public void set(String key, double value) { other.put(key, value); } + public void set(String key, String value) { if (value != null && !value.isEmpty()) other.put(key, value); } + public static final String TYPE_POSITION_SINGLE = "positionSingle"; public static final String TYPE_POSITION_PERIODIC = "positionPeriodic"; public static final String TYPE_POSITION_STOP = "positionStop"; diff --git a/src/org/traccar/model/Event.java b/src/org/traccar/model/Event.java index caee7133b..fba5619d2 100644 --- a/src/org/traccar/model/Event.java +++ b/src/org/traccar/model/Event.java @@ -45,11 +45,11 @@ public abstract class Event { public Map getOther() { return other; } public void setOther(Map other) { this.other = other; } - public void set(String key, Object value) { - if (value != null && (!(value instanceof String) || !((String) value).isEmpty())) { - other.put(key, value); - } - } + public void set(String key, boolean value) { other.put(key, value); } + public void set(String key, int value) { other.put(key, value); } + public void set(String key, long value) { other.put(key, value); } + public void set(String key, double value) { other.put(key, value); } + public void set(String key, String value) { if (value != null && !value.isEmpty()) other.put(key, value); } // Words separated by dashes (word-second-third) public static final String KEY_INDEX = "index"; diff --git a/src/org/traccar/protocol/Gps103ProtocolEncoder.java b/src/org/traccar/protocol/Gps103ProtocolEncoder.java index 147451e3b..308fb0820 100644 --- a/src/org/traccar/protocol/Gps103ProtocolEncoder.java +++ b/src/org/traccar/protocol/Gps103ProtocolEncoder.java @@ -24,7 +24,7 @@ public class Gps103ProtocolEncoder extends StringProtocolEncoder implements Stri public String formatValue(String key, Object value) { if (key.equals(Command.KEY_FREQUENCY)) { - long frequency = (Long) value; + long frequency = ((Number) value).longValue(); if (frequency / 60 / 60 > 0) { return String.format("%02dh", frequency / 60 / 60); } else if (frequency / 60 > 0) { diff --git a/src/org/traccar/protocol/TotemProtocolEncoder.java b/src/org/traccar/protocol/TotemProtocolEncoder.java index 39e3214cc..935ab1b64 100644 --- a/src/org/traccar/protocol/TotemProtocolEncoder.java +++ b/src/org/traccar/protocol/TotemProtocolEncoder.java @@ -19,21 +19,13 @@ package org.traccar.protocol; import org.traccar.StringProtocolEncoder; import org.traccar.model.Command; -import java.util.HashMap; -import java.util.Map; - public class TotemProtocolEncoder extends StringProtocolEncoder{ @Override protected Object encodeCommand(Command command) { // Temporary put default password - Map other = command.getOther(); - if (other == null) { - other = new HashMap<>(); - command.setOther(other); - } - other.put(Command.KEY_DEVICE_PASSWORD, "000000"); + command.set(Command.KEY_DEVICE_PASSWORD, "000000"); switch (command.getType()) { //Assuming PIN 8 (Output C) is the power wire, like manual says but it can be PIN 5,7,8 diff --git a/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java b/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java index 1fd93ede4..9274c1a26 100644 --- a/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java +++ b/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java @@ -1,7 +1,5 @@ package org.traccar.protocol; -import java.util.HashMap; -import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.traccar.model.Command; @@ -16,11 +14,7 @@ public class Gps103ProtocolEncoderTest { Command command = new Command(); command.setDeviceId(1); command.setType(Command.TYPE_POSITION_PERIODIC); - - Map other = new HashMap<>(); - other.put(Command.KEY_FREQUENCY, 300l); - - command.setOther(other); + command.set(Command.KEY_FREQUENCY, 300); Assert.assertEquals("**,imei:123456789012345,C,05m;", encoder.encodeCommand(command)); diff --git a/test/org/traccar/protocol/TotemProtocolEncoderTest.java b/test/org/traccar/protocol/TotemProtocolEncoderTest.java index ce5574bb1..840165070 100644 --- a/test/org/traccar/protocol/TotemProtocolEncoderTest.java +++ b/test/org/traccar/protocol/TotemProtocolEncoderTest.java @@ -15,8 +15,6 @@ */ package org.traccar.protocol; -import java.util.HashMap; -import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.traccar.model.Command; @@ -30,11 +28,7 @@ public class TotemProtocolEncoderTest { Command command = new Command(); command.setDeviceId(2); command.setType(Command.TYPE_ENGINE_STOP); - - Map other = new HashMap<>(); - other.put(Command.KEY_DEVICE_PASSWORD, "000000"); - - command.setOther(other); + command.set(Command.KEY_DEVICE_PASSWORD, "000000"); Assert.assertEquals("*000000,025,C,1#", encoder.encodeCommand(command)); -- cgit v1.2.3