io.inverno.mod.web.compiler.spi.WebServerControllerConfigurerInfo Maven / Gradle / Ivy
Show all versions of inverno-web-compiler Show documentation
/*
* Copyright 2021 Jeremy KUHN
*
* Licensed 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.inverno.mod.web.compiler.spi;
import javax.lang.model.element.ModuleElement;
import javax.lang.model.type.TypeMirror;
import io.inverno.core.compiler.spi.Info;
/**
*
* Describes the module's web controller configurer to generate.
*
*
* @author Jeremy Kuhn
* @since 1.0
*/
public interface WebServerControllerConfigurerInfo extends Info {
@Override
WebServerControllerConfigurerQualifiedName getQualifiedName();
/**
*
* Returns the module element for which a web router configurer is generated.
*
*
* @return a module element
*/
ModuleElement getElement();
/**
*
* Returns the web controllers defined in the module.
*
*
* @return an array of web controllers
*/
WebControllerInfo[] getControllers();
/**
*
* Returns the web router configurers provided in the module.
*
*
*
* These can be defined as beans in the module or in component modules.
*
*
* @return an array of provided router configurer
*/
WebRouterConfigurerInfo[] getRouterConfigurers();
/**
*
* Returns the web routes configurers provided in the module.
*
*
*
* These can be defined as beans in the module or in component modules.
*
*
* @return an array of routes configurer
*/
WebRoutesConfigurerInfo[] getRoutesConfigurers();
/**
*
* Returns the web interceptors configurers provided in the module.
*
*
*
* These can be defined as beans in the module or in component modules.
*
*
* @return an array of interceptors configurer
*/
WebInterceptorsConfigurerInfo[] getInterceptorsConfigurers();
/**
*
* Returns the error web router configurers provided in the module.
*
*
*
* These can be defined as beans in the module or in component modules.
*
*
* @return an array of error router configurer
*/
ErrorWebRouterConfigurerInfo[] getErrorRouterConfigurers();
/**
*
* Returns the error web routes configurers provided in the module.
*
*
*
* These can be defined as beans in the module or in component modules.
*
*
* @return an array of error routes configurer
*/
ErrorWebRoutesConfigurerInfo[] getErrorRoutesConfigurers();
/**
*
* Returns the error web interceptors configurers provided in the module.
*
*
*
* These can be defined as beans in the module or in component modules.
*
*
* @return an array of error interceptors configurer
*/
ErrorWebInterceptorsConfigurerInfo[] getErrorInterceptorsConfigurers();
/**
*
* Returns the list of exchange context types required by the routes defined by
* the Web router configurer.
*
*
* @return a list of context types
*/
TypeMirror[] getContextTypes();
/**
*
* Accepts the specified web router configurer info visitor.
*
*
* @param the type of the visitor result
* @param the type of the visitor parameter
* @param visitor the visitor to invoke
* @param p the parameter
*
* @return the visitor result
*/
R accept(WebServerControllerConfigurerInfoVisitor visitor, P p);
}