Skip to content

Commit

Permalink
added throwing visitors
Browse files Browse the repository at this point in the history
  • Loading branch information
autermann committed Jun 16, 2016
1 parent 5e90273 commit 0c6bc71
Show file tree
Hide file tree
Showing 15 changed files with 212 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,38 @@ public Void visit(GroupInputDescription input) {
}
});
}

default <X extends Exception> void visit(ThrowingProcessInputVisitor<X> visitor) throws X {
visit(new ThrowingReturningProcessInputVisitor<Void, X>() {
@Override
public Void visit(BoundingBoxInputDescription output)
throws X {
visitor.visit(output);
return null;
}

@Override
public Void visit(ComplexInputDescription output)
throws X {
visitor.visit(output);
return null;
}

@Override
public Void visit(LiteralInputDescription output)
throws X {
visitor.visit(output);
return null;
}

@Override
public Void visit(GroupInputDescription output)
throws X {
visitor.visit(output);
return null;
}
});
}

<T, X extends Exception> T visit(ThrowingReturningProcessInputVisitor<T, X> visitor) throws X;
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,38 @@ public Void visit(GroupOutputDescription output) {
}
});
}

<T, X extends Exception> T visit(ThrowingReturningProcessOutputVisitor<T, X> visitor) throws X;

default <X extends Exception> void visit(ThrowingProcessOutputVisitor<X> visitor) throws X {
visit(new ThrowingReturningProcessOutputVisitor<Void, X>() {
@Override
public Void visit(BoundingBoxOutputDescription output)
throws X {
visitor.visit(output);
return null;
}

@Override
public Void visit(ComplexOutputDescription output)
throws X {
visitor.visit(output);
return null;
}

@Override
public Void visit(LiteralOutputDescription output)
throws X {
visitor.visit(output);
return null;
}

@Override
public Void visit(GroupOutputDescription output)
throws X {
visitor.visit(output);
return null;
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@
*/
public interface ProcessOutputVisitor {

void visit(BoundingBoxOutputDescription input);
void visit(BoundingBoxOutputDescription output);

void visit(ComplexOutputDescription input);
void visit(ComplexOutputDescription output);

void visit(LiteralOutputDescription input);
void visit(LiteralOutputDescription output);

void visit(GroupOutputDescription input);
void visit(GroupOutputDescription output);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.n52.javaps.description;

/**
* TODO JavaDoc
*
* @author Christian Autermann
*/
public interface ThrowingProcessInputVisitor<X extends Exception> {
void visit(BoundingBoxInputDescription input)
throws X;

void visit(ComplexInputDescription input)
throws X;

void visit(LiteralInputDescription input)
throws X;

void visit(GroupInputDescription input)
throws X;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.n52.javaps.description;

/**
* TODO JavaDoc
*
* @author Christian Autermann
*/
public interface ThrowingProcessOutputVisitor<X extends Exception> {
void visit(BoundingBoxOutputDescription output)
throws X;

void visit(ComplexOutputDescription output)
throws X;

void visit(LiteralOutputDescription output)
throws X;

void visit(GroupOutputDescription output)
throws X;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.n52.javaps.description;

/**
* TODO JavaDoc
* @author Christian Autermann
*/
public interface ThrowingReturningProcessInputVisitor<T, X extends Exception> {
T visit(BoundingBoxInputDescription input)
throws X;

T visit(ComplexInputDescription input)
throws X;

T visit(LiteralInputDescription input)
throws X;

T visit(GroupInputDescription input)
throws X;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.n52.javaps.description;

/**
* TODO JavaDoc
*
* @author Christian Autermann
*/
public interface ThrowingReturningProcessOutputVisitor<T, X extends Exception> {
T visit(BoundingBoxOutputDescription output)
throws X;

T visit(ComplexOutputDescription output)
throws X;

T visit(LiteralOutputDescription output)
throws X;

T visit(GroupOutputDescription output)
throws X;

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.n52.javaps.description.BoundingBoxInputDescription;
import org.n52.javaps.description.BoundingBoxInputDescriptionBuilder;
import org.n52.javaps.description.ReturningProcessInputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessInputVisitor;

/**
* TODO JavaDoc
Expand Down Expand Up @@ -68,6 +69,12 @@ public <T> T visit(ReturningProcessInputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessInputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

public static BoundingBoxInputDescriptionBuilder<?, ?> builder() {
return new BuilderImpl();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.n52.javaps.description.BoundingBoxOutputDescription;
import org.n52.javaps.description.BoundingBoxOutputDescriptionBuilder;
import org.n52.javaps.description.ReturningProcessOutputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessOutputVisitor;

/**
* TODO JavaDoc
Expand Down Expand Up @@ -69,6 +70,12 @@ public <T> T visit(ReturningProcessOutputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessOutputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

public static BoundingBoxOutputDescriptionBuilder<?, ?> builder() {
return new BuilderImpl();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.n52.javaps.description.ComplexInputDescriptionBuilder;
import org.n52.javaps.description.Format;
import org.n52.javaps.description.ReturningProcessInputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessInputVisitor;

/**
* TODO JavaDoc
Expand Down Expand Up @@ -78,6 +79,12 @@ public <T> T visit(ReturningProcessInputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessInputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

public static ComplexInputDescriptionBuilder<?, ?> builder() {
return new BuilderImpl();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.n52.javaps.description.ComplexOutputDescriptionBuilder;
import org.n52.javaps.description.Format;
import org.n52.javaps.description.ReturningProcessOutputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessOutputVisitor;

/**
* TODO JavaDoc
Expand Down Expand Up @@ -69,6 +70,13 @@ public <T> T visit(ReturningProcessOutputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessOutputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}


public static ComplexOutputDescriptionBuilder<?, ?> builder() {
return new BuilderImpl();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.n52.javaps.description.GroupInputDescriptionBuilder;
import org.n52.javaps.description.ProcessInputDescription;
import org.n52.javaps.description.ReturningProcessInputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessInputVisitor;

public class GroupInputDescriptionImpl extends AbstractProcessInputDescription
implements GroupInputDescription {
Expand All @@ -27,6 +28,12 @@ public <T> T visit(ReturningProcessInputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessInputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

@Override
public ProcessInputDescription getInput(OwsCodeType id) {
return this.inputs.get(id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.n52.javaps.description.GroupOutputDescriptionBuilder;
import org.n52.javaps.description.ProcessOutputDescription;
import org.n52.javaps.description.ReturningProcessOutputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessOutputVisitor;

/**
* TODO JavaDoc
Expand All @@ -32,6 +33,12 @@ public <T> T visit(ReturningProcessOutputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessOutputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

@Override
public ProcessOutputDescription getOutput(OwsCodeType id) {
return this.inputs.get(id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.n52.javaps.description.LiteralInputDescription;
import org.n52.javaps.description.LiteralInputDescriptionBuilder;
import org.n52.javaps.description.ReturningProcessInputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessInputVisitor;

/**
* TODO JavaDoc
Expand Down Expand Up @@ -59,6 +60,12 @@ public <T> T visit(ReturningProcessInputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessInputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

@Override
public LiteralDataDomain getDefaultLiteralDataDomain() {
return this.defaultLiteralDataDomain;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.n52.javaps.description.LiteralOutputDescription;
import org.n52.javaps.description.LiteralOutputDescriptionBuilder;
import org.n52.javaps.description.ReturningProcessOutputVisitor;
import org.n52.javaps.description.ThrowingReturningProcessOutputVisitor;

/**
* TODO JavaDoc
Expand Down Expand Up @@ -59,6 +60,12 @@ public <T> T visit(ReturningProcessOutputVisitor<T> visitor) {
return visitor.visit(this);
}

@Override
public <T, X extends Exception> T visit(ThrowingReturningProcessOutputVisitor<T, X> visitor)
throws X {
return visitor.visit(this);
}

@Override
public Set<LiteralDataDomain> getSupportedLiteralDataDomains() {
return Collections.unmodifiableSet(this.supportedLiteralDataDomains);
Expand Down

0 comments on commit 0c6bc71

Please sign in to comment.