At first glance .. I would change
private char latDirection to
private short latDirection.
Same with lonDirection. Go on to declare your 'compass' in this manner ..
public static final short N = 0;
...etc
Refactor your sets and gets ..
This will save you time of comparing strings. Your new test will be similiar to
if(direction == N)
If you add more compass directions .. then you can modify the if/else tests to a switch statement. It will also allow you to scale fairly easy. Like the following
public static final short N = 0;
public static final short NORTH = 0;
if(dir == N) // will handle N and NORTH.
now you would save yourself the trouble of
char dir = Character.toUpperCase(pLatDirection);
only to test
if((dir == "N") || (dir == "NORTH"))
and as you add more directions .. you would do
switch(dir){
case N: // falls through to NORTH
case NORTH:
doSomething;
break;
case NE: // falls through to NORTHEAST
case NORTHEAST:
doSomething();
break;
etc..
}
where adding these as strings would result in
char dir = Character.toUpperCase(pLatDirection);
if((dir == "N") || (dir == "NORTH")) {
doSomething();
} else if((dir == "NE") || (dir == "NORTHEAST")) {
doSomething();
} etc ...
I hope I haven't confused you by overexplaining. In java .. short and char are both 2 bytes. The char will not allow you to account for NORTHEAST clearly where a String would, but the compares are somewhat expensive. That's why I am suggesting the use of a short instead of an int. If I still have you in the dark .. shoot me an email and I will send you some code that demonstrates the use of shorts over a char or String.
Ray



