private SightlyCompiler()

in src/main/java/org/apache/sling/scripting/sightly/compiler/SightlyCompiler.java [89:132]


    private SightlyCompiler(Set<String> additionalExpresionOptions) {
        ArrayList<StreamTransformer> transformers = new ArrayList<>(5);
        transformers.add(ConstantFolding.transformer());
        transformers.add(DeadCodeRemoval.transformer());
        transformers.add(SyntheticMapRemoval.TRANSFORMER);
        transformers.add(UnusedVariableRemoval.TRANSFORMER);
        transformers.add(CoalescingWrites.TRANSFORMER);
        optimizer = new SequenceStreamTransformer(transformers);

        // register plugins
        plugins = new ArrayList<>(12);
        plugins.add(new AttributePlugin());
        plugins.add(new CallPlugin());
        plugins.add(new ElementPlugin());
        plugins.add(new IncludePlugin());
        plugins.add(new ListPlugin());
        plugins.add(new RepeatPlugin());
        plugins.add(new ResourcePlugin());
        plugins.add(new TemplatePlugin());
        plugins.add(new TestPlugin());
        plugins.add(new SetPlugin());
        plugins.add(new TextPlugin());
        plugins.add(new UnwrapPlugin());
        plugins.add(new UsePlugin());
        Collections.sort(plugins);

        // register filters
        filters = new ArrayList<>(5);
        filters.add(I18nFilter.getInstance());
        filters.add(FormatFilter.getInstance());
        filters.add(JoinFilter.getInstance());
        filters.add(URIManipulationFilter.getInstance());
        filters.add(XSSFilter.getInstance());
        Collections.sort(filters);
        knownExpressionOptions = new HashSet<>(additionalExpresionOptions);
        for (Filter filter : filters) {
            knownExpressionOptions.addAll(filter.getOptions());
        }
        knownExpressionOptions.add(Syntax.CONTEXT_OPTION);
        for (ExpressionContext context : ExpressionContext.values()) {
            knownExpressionOptions.addAll(context.getOptions());
        }
        frontend = new SimpleFrontend(plugins, filters, knownExpressionOptions);
    }