1.1 --- a/geo/src/main/java/net/java/html/geo/Position.java Sat Jul 06 08:09:53 2013 +0200
1.2 +++ b/geo/src/main/java/net/java/html/geo/Position.java Sun Jul 07 06:45:09 2013 +0200
1.3 @@ -25,7 +25,7 @@
1.4 * @author Jaroslav Tulach <jtulach@netbeans.org>
1.5 */
1.6 public final class Position {
1.7 - private Position() {
1.8 + Position() {
1.9 }
1.10
1.11 public Coordinates getCoords() {
2.1 --- a/geo/src/main/java/org/apidesign/html/geo/impl/GeoProcessor.java Sat Jul 06 08:09:53 2013 +0200
2.2 +++ b/geo/src/main/java/org/apidesign/html/geo/impl/GeoProcessor.java Sun Jul 07 06:45:09 2013 +0200
2.3 @@ -121,7 +121,14 @@
2.4 }
2.5 w.append(") { return new ").append(className).append("(false, ").append(inst).append("); }\n");
2.6 w.append(" protected void onError(Throwable t) {}\n");
2.7 - w.append(" protected void onLocation(net.java.html.geo.Position p) {}\n");
2.8 + w.append(" protected void onLocation(net.java.html.geo.Position p) {");
2.9 + if (isStatic) {
2.10 + w.append(" ").append(te.getSimpleName()).append(".");
2.11 + } else {
2.12 + w.append(" i.");
2.13 + }
2.14 + w.append(me.getSimpleName()).append("(p);\n");
2.15 + w.append(" }\n");
2.16 w.append("}\n");
2.17 w.close();
2.18 } catch (IOException ex) {
3.1 --- a/geo/src/test/java/net/java/html/geo/OnLocationTest.java Sat Jul 06 08:09:53 2013 +0200
3.2 +++ b/geo/src/test/java/net/java/html/geo/OnLocationTest.java Sun Jul 07 06:45:09 2013 +0200
3.3 @@ -21,12 +21,15 @@
3.4 package net.java.html.geo;
3.5
3.6 import org.testng.annotations.Test;
3.7 +import static org.testng.Assert.*;
3.8
3.9 -/**
3.10 +/** Testing correctness of the generated code.
3.11 */
3.12 public class OnLocationTest {
3.13 -
3.14 + static int cnt;
3.15 static @OnLocation void onLocation(Position p) {
3.16 + assertNotNull(p, "Position object provided");
3.17 + cnt++;
3.18 }
3.19
3.20 @Test public void createOneTimeQueryStatic() {
3.21 @@ -37,6 +40,13 @@
3.22 h.start();
3.23 h.stop();
3.24 }
3.25 +
3.26 + @Test public void onLocationHandleCallback() {
3.27 + GeoHandle h = OnLocationHandle.createQuery();
3.28 + cnt = 0;
3.29 + h.onLocation(new Position());
3.30 + assertEquals(cnt, 1, "The callback has been made");
3.31 + }
3.32
3.33 @Test public void createRepeatableWatchStatic() {
3.34 GeoHandle h = OnLocationHandle.createQuery();
3.35 @@ -46,8 +56,11 @@
3.36 h.start();
3.37 h.stop();
3.38 }
3.39 -
3.40 +
3.41 + int instCnt;
3.42 @OnLocation void instance(Position p) {
3.43 + assertNotNull(p, "Some position passed in");
3.44 + instCnt++;
3.45 }
3.46
3.47 @Test public void createOneTimeQueryInstance() {
3.48 @@ -60,6 +73,13 @@
3.49 h.start();
3.50 h.stop();
3.51 }
3.52 +
3.53 + @Test public void onInstanceCallback() {
3.54 + OnLocationTest t = new OnLocationTest();
3.55 + GeoHandle h = InstanceHandle.createWatch(t);
3.56 + h.onLocation(new Position());
3.57 + assertEquals(t.instCnt, 1, "One callback made");
3.58 + }
3.59
3.60 @Test public void createRepeatableWatch() {
3.61 OnLocationTest t = new OnLocationTest();