/*
* Copyright 2014 Red Hat, Inc.
*
* Red Hat licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package io.vertx.reactivex.ext.web.handler.graphql;
import io.vertx.reactivex.RxHelper;
import io.vertx.reactivex.ObservableHelper;
import io.vertx.reactivex.FlowableHelper;
import io.vertx.reactivex.impl.AsyncResultMaybe;
import io.vertx.reactivex.impl.AsyncResultSingle;
import io.vertx.reactivex.impl.AsyncResultCompletable;
import io.vertx.reactivex.WriteStreamObserver;
import io.vertx.reactivex.WriteStreamSubscriber;
import java.util.Map;
import java.util.Set;
import java.util.List;
import java.util.Iterator;
import java.util.function.Function;
import java.util.stream.Collectors;
import io.vertx.core.Handler;
import io.vertx.core.AsyncResult;
import io.vertx.core.json.JsonObject;
import io.vertx.core.json.JsonArray;
import io.vertx.lang.rx.RxGen;
import io.vertx.lang.rx.TypeArg;
import io.vertx.lang.rx.MappingIterator;
/**
* A {@link io.vertx.reactivex.ext.web.Route} handler for GraphiQL resources.
*
* <p/>
* NOTE: This class has been automatically generated from the {@link io.vertx.ext.web.handler.graphql.GraphiQLHandler original} non RX-ified interface using Vert.x codegen.
*/
@RxGen(io.vertx.ext.web.handler.graphql.GraphiQLHandler.class)
public class GraphiQLHandler implements Handler<io.vertx.reactivex.ext.web.RoutingContext> {
@Override
public String toString() {
return delegate.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GraphiQLHandler that = (GraphiQLHandler) o;
return delegate.equals(that.delegate);
}
@Override
public int hashCode() {
return delegate.hashCode();
}
public static final TypeArg<GraphiQLHandler> __TYPE_ARG = new TypeArg<>( obj -> new GraphiQLHandler((io.vertx.ext.web.handler.graphql.GraphiQLHandler) obj),
GraphiQLHandler::getDelegate
);
private final io.vertx.ext.web.handler.graphql.GraphiQLHandler delegate;
public GraphiQLHandler(io.vertx.ext.web.handler.graphql.GraphiQLHandler delegate) {
this.delegate = delegate;
}
public GraphiQLHandler(Object delegate) {
this.delegate = (io.vertx.ext.web.handler.graphql.GraphiQLHandler)delegate;
}
public io.vertx.ext.web.handler.graphql.GraphiQLHandler getDelegate() {
return delegate;
}
Something has happened, so handle it.
Params: - event – the event to handle
/**
* Something has happened, so handle it.
* @param event the event to handle
*/
public void handle(io.vertx.reactivex.ext.web.RoutingContext event) {
delegate.handle(event.getDelegate());
}
Create a new GraphiQLHandler
. The handler will be configured with default GraphiQLHandlerOptions
.
Returns:
/**
* Create a new {@link io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler}.
* <p>
* The handler will be configured with default {@link io.vertx.ext.web.handler.graphql.GraphiQLHandlerOptions}.
* @return
*/
public static io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler create() {
io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler ret = io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler.newInstance((io.vertx.ext.web.handler.graphql.GraphiQLHandler)io.vertx.ext.web.handler.graphql.GraphiQLHandler.create());
return ret;
}
Create a new GraphiQLHandler
.
The handler will be configured with the given options
.
Params: - options – options for configuring the
GraphiQLHandler
Returns:
/**
* Create a new {@link io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler}.
* <p>
* The handler will be configured with the given <code>options</code>.
* @param options options for configuring the {@link io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler}
* @return
*/
public static io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler create(io.vertx.ext.web.handler.graphql.GraphiQLHandlerOptions options) {
io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler ret = io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler.newInstance((io.vertx.ext.web.handler.graphql.GraphiQLHandler)io.vertx.ext.web.handler.graphql.GraphiQLHandler.create(options));
return ret;
}
Customize the HTTP headers to add to GraphQL requests sent by the GraphiQL user interface. The result will be applied on top of the fixed set of headers specified in GraphiQLHandlerOptions
.
This can be useful if, for example, the server is protected by authentication.
Params: - factory –
Returns: a reference to this, so the API can be used fluently
/**
* Customize the HTTP headers to add to GraphQL requests sent by the GraphiQL user interface.
* The result will be applied on top of the fixed set of headers specified in {@link io.vertx.ext.web.handler.graphql.GraphiQLHandlerOptions}.
* <p>
* This can be useful if, for example, the server is protected by authentication.
* @param factory
* @return a reference to this, so the API can be used fluently
*/
public io.vertx.reactivex.ext.web.handler.graphql.GraphiQLHandler graphiQLRequestHeaders(Function<io.vertx.reactivex.ext.web.RoutingContext, io.vertx.reactivex.core.MultiMap> factory) {
delegate.graphiQLRequestHeaders(new Function<io.vertx.ext.web.RoutingContext,io.vertx.core.MultiMap>() {
public io.vertx.core.MultiMap apply(io.vertx.ext.web.RoutingContext arg) {
io.vertx.reactivex.core.MultiMap ret = factory.apply(io.vertx.reactivex.ext.web.RoutingContext.newInstance((io.vertx.ext.web.RoutingContext)arg));
return ret.getDelegate();
}
});
return this;
}
public static GraphiQLHandler newInstance(io.vertx.ext.web.handler.graphql.GraphiQLHandler arg) {
return arg != null ? new GraphiQLHandler(arg) : null;
}
}