/* * ============================================================================= * * Copyright (c) 2011-2016, The THYMELEAF team (http://www.thymeleaf.org) * * 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 org.thymeleaf; import java.util.Map; import java.util.Set; import org.thymeleaf.cache.ICacheManager; import org.thymeleaf.context.IEngineContextFactory; import org.thymeleaf.dialect.IDialect; import org.thymeleaf.engine.AttributeDefinitions; import org.thymeleaf.engine.ElementDefinitions; import org.thymeleaf.engine.TemplateManager; import org.thymeleaf.expression.IExpressionObjectFactory; import org.thymeleaf.linkbuilder.ILinkBuilder; import org.thymeleaf.messageresolver.IMessageResolver; import org.thymeleaf.model.IModelFactory; import org.thymeleaf.postprocessor.IPostProcessor; import org.thymeleaf.preprocessor.IPreProcessor; import org.thymeleaf.processor.cdatasection.ICDATASectionProcessor; import org.thymeleaf.processor.comment.ICommentProcessor; import org.thymeleaf.processor.doctype.IDocTypeProcessor; import org.thymeleaf.processor.element.IElementProcessor; import org.thymeleaf.processor.processinginstruction.IProcessingInstructionProcessor; import org.thymeleaf.processor.templateboundaries.ITemplateBoundariesProcessor; import org.thymeleaf.processor.text.ITextProcessor; import org.thymeleaf.processor.xmldeclaration.IXMLDeclarationProcessor; import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateparser.markup.decoupled.IDecoupledTemplateLogicResolver; import org.thymeleaf.templateresolver.ITemplateResolver; /** * <p> * Interface defining the main configuration object that specifies how an {@link ITemplateEngine} instance * should behave. * </p> * <p> * Implementations of this interface should be <strong>thread-safe</strong>. * </p> * * @author Daniel Fernández * * @see EngineConfiguration * * @since 3.0.0 * */ public interface IEngineConfiguration { public Set<ITemplateResolver> getTemplateResolvers(); public Set<IMessageResolver> getMessageResolvers(); public Set<ILinkBuilder> getLinkBuilders(); public ICacheManager getCacheManager(); public IEngineContextFactory getEngineContextFactory(); public IDecoupledTemplateLogicResolver getDecoupledTemplateLogicResolver(); public Set<DialectConfiguration> getDialectConfigurations(); public Set<IDialect> getDialects(); public boolean isStandardDialectPresent(); public String getStandardDialectPrefix(); public ElementDefinitions getElementDefinitions(); public AttributeDefinitions getAttributeDefinitions(); public Set<ITemplateBoundariesProcessor> getTemplateBoundariesProcessors(final TemplateMode templateMode); public Set<ICDATASectionProcessor> getCDATASectionProcessors(final TemplateMode templateMode); public Set<ICommentProcessor> getCommentProcessors(final TemplateMode templateMode); public Set<IDocTypeProcessor> getDocTypeProcessors(final TemplateMode templateMode); public Set<IElementProcessor> getElementProcessors(final TemplateMode templateMode); public Set<ITextProcessor> getTextProcessors(final TemplateMode templateMode); public Set<IProcessingInstructionProcessor> getProcessingInstructionProcessors(final TemplateMode templateMode); public Set<IXMLDeclarationProcessor> getXMLDeclarationProcessors(final TemplateMode templateMode); public Set<IPreProcessor> getPreProcessors(final TemplateMode templateMode); public Set<IPostProcessor> getPostProcessors(final TemplateMode templateMode); public Map<String,Object> getExecutionAttributes(); public IExpressionObjectFactory getExpressionObjectFactory(); public TemplateManager getTemplateManager(); public IModelFactory getModelFactory(final TemplateMode templateMode); }