// Path: redquerybuilder-core/src/main/java/com/redspr/redquerybuilder/core/client/VisitorContext.java
// @JsType
// public interface VisitorContext<T> {
//     interface NodeType {
//         String PARAMETER = "PARAMETER";
//         String COLUMN = "COLUMN";
//         String COMPARISON = "COMPARISON";
//         String LOGIC = "LOGIC"; // XXX not sure about this
//         String SELECT = "SELECT";
//     };
// 
//     String getNodeType(); // TODO __ enum and JS?
//     String getNodeName();
// 
//     HasMessages asHasMessages();
// 
//     HasValue<T> asHasValue();
// }


import com.google.gwt.core.client.js.JsExport;
import com.redspr.redquerybuilder.core.client.BaseSqlWidget;
import com.redspr.redquerybuilder.core.client.Visitor;
import com.redspr.redquerybuilder.core.client.VisitorContext;
package com.redspr.redquerybuilder.js.client;


// XXX move into core as DefaultVisitor?
//@JsNamespace("$wnd.rqb")
@com.google.gwt.core.client.js.JsType
public class JsVisitor implements Visitor {

    @JsExport("$wnd.rqb.Visitor")
    public JsVisitor() {

    }

    @Override
    public void handle(BaseSqlWidget w) {
    }

    @Override
// Path: redquerybuilder-core/src/main/java/com/redspr/redquerybuilder/core/client/VisitorContext.java
// @JsType
// public interface VisitorContext<T> {
//     interface NodeType {
//         String PARAMETER = "PARAMETER";
//         String COLUMN = "COLUMN";
//         String COMPARISON = "COMPARISON";
//         String LOGIC = "LOGIC"; // XXX not sure about this
//         String SELECT = "SELECT";
//     };
// 
//     String getNodeType(); // TODO __ enum and JS?
//     String getNodeName();
// 
//     HasMessages asHasMessages();
// 
//     HasValue<T> asHasValue();
// }


// Path: redquerybuilder-js/src/main/java/com/redspr/redquerybuilder/js/client/JsVisitor.java
import com.google.gwt.core.client.js.JsExport;
import com.redspr.redquerybuilder.core.client.BaseSqlWidget;
import com.redspr.redquerybuilder.core.client.Visitor;
import com.redspr.redquerybuilder.core.client.VisitorContext;

package com.redspr.redquerybuilder.js.client;


// XXX move into core as DefaultVisitor?
//@JsNamespace("$wnd.rqb")
@com.google.gwt.core.client.js.JsType
public class JsVisitor implements Visitor {

    @JsExport("$wnd.rqb.Visitor")
    public JsVisitor() {

    }

    @Override
    public void handle(BaseSqlWidget w) {
    }

    @Override
    public void visit(VisitorContext<?> context) {