Allow @OnLocation and onError methods to throw anything
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 07 Jul 2013 07:47:58 +0200
changeset 178167b0ea67651
parent 177 2aaeb08e1cdd
child 179 42ab284db488
Allow @OnLocation and onError methods to throw anything
geo/src/main/java/net/java/html/geo/Position.java
geo/src/main/java/org/apidesign/html/geo/impl/GeoProcessor.java
geo/src/test/java/net/java/html/geo/OnLocationTest.java
     1.1 --- a/geo/src/main/java/net/java/html/geo/Position.java	Sun Jul 07 07:45:11 2013 +0200
     1.2 +++ b/geo/src/main/java/net/java/html/geo/Position.java	Sun Jul 07 07:47:58 2013 +0200
     1.3 @@ -62,9 +62,9 @@
     1.4              this.oneTime = oneTime;
     1.5          }
     1.6  
     1.7 -        protected abstract void onLocation(Position p);
     1.8 +        protected abstract void onLocation(Position p) throws Throwable;
     1.9  
    1.10 -        protected abstract void onError(Throwable t);
    1.11 +        protected abstract void onError(Throwable t) throws Throwable;
    1.12  
    1.13          public void setHighAccuracy(boolean enable) {
    1.14              this.enableHighAccuracy = enable;
     2.1 --- a/geo/src/main/java/org/apidesign/html/geo/impl/GeoProcessor.java	Sun Jul 07 07:45:11 2013 +0200
     2.2 +++ b/geo/src/main/java/org/apidesign/html/geo/impl/GeoProcessor.java	Sun Jul 07 07:47:58 2013 +0200
     2.3 @@ -131,7 +131,7 @@
     2.4                  w.append(te.getSimpleName()).append(" instance");
     2.5              }
     2.6              w.append(") { return new ").append(className).append("(false, ").append(inst).append("); }\n");
     2.7 -            w.append("  protected void onError(Throwable t) {\n");
     2.8 +            w.append("  protected void onError(Throwable t) throws Throwable {\n");
     2.9              if (ol.onError().isEmpty()) {
    2.10                  w.append("    t.printStackTrace();");
    2.11              } else {
    2.12 @@ -146,7 +146,7 @@
    2.13                  w.append(ol.onError()).append("(t);\n");
    2.14              }
    2.15              w.append("  }\n");
    2.16 -            w.append("  protected void onLocation(net.java.html.geo.Position p) {\n");
    2.17 +            w.append("  protected void onLocation(net.java.html.geo.Position p) throws Throwable {\n");
    2.18              if (isStatic) {
    2.19                  w.append("    ").append(te.getSimpleName()).append(".");
    2.20              } else {
     3.1 --- a/geo/src/test/java/net/java/html/geo/OnLocationTest.java	Sun Jul 07 07:45:11 2013 +0200
     3.2 +++ b/geo/src/test/java/net/java/html/geo/OnLocationTest.java	Sun Jul 07 07:47:58 2013 +0200
     3.3 @@ -41,7 +41,7 @@
     3.4          h.stop();
     3.5      }
     3.6      
     3.7 -    @Test public void onLocationHandleCallback() {
     3.8 +    @Test public void onLocationHandleCallback() throws Throwable {
     3.9          net.java.html.geo.Position.Handle h = OnLocationHandle.createQuery();
    3.10          cnt = 0;
    3.11          h.onLocation(new Position());
    3.12 @@ -59,11 +59,11 @@
    3.13  
    3.14      int instCnt;
    3.15      Throwable instT;
    3.16 -    @OnLocation(onError = "someError") void instance(Position p) {
    3.17 +    @OnLocation(onError = "someError") void instance(Position p) throws Error {
    3.18          assertNotNull(p, "Some position passed in");
    3.19          instCnt++;
    3.20      }
    3.21 -    void someError(Throwable t) {
    3.22 +    void someError(Throwable t) throws Exception {
    3.23          instT = t;
    3.24          instCnt++;
    3.25      }
    3.26 @@ -79,14 +79,14 @@
    3.27          h.stop();
    3.28      }
    3.29      
    3.30 -    @Test public void onInstanceCallback() {
    3.31 +    @Test public void onInstanceCallback() throws Throwable {
    3.32          OnLocationTest t = new OnLocationTest();
    3.33          net.java.html.geo.Position.Handle h = InstanceHandle.createWatch(t);
    3.34          h.onLocation(new Position());
    3.35          assertEquals(t.instCnt, 1, "One callback made");
    3.36      }
    3.37  
    3.38 -    @Test public void onInstanceError() {
    3.39 +    @Test public void onInstanceError() throws Throwable {
    3.40          net.java.html.geo.Position.Handle h = InstanceHandle.createWatch(this);
    3.41          InterruptedException e = new InterruptedException();
    3.42          h.onError(e);