/** * @param baseTofuFactory Factory for creating an instance of BaseTofu. * @param jsSrcMainProvider Provider for getting an instance of JsSrcMain. * @param javaSrcMainProvider Provider for getting an instance of JavaSrcMain. * @param performAutoescapeVisitor The instance of PerformAutoescapeVisitor to use. * @param contextualAutoescaper The instance of ContextualAutoescaper to use. * @param simplifyVisitor The instance of SimplifyVisitor to use. * @param soyFileSuppliers The suppliers for the input Soy files. * @param generalOptions The general compiler options. */ @Inject SoyFileSet( BaseTofuFactory baseTofuFactory, Provider<JsSrcMain> jsSrcMainProvider, Provider<JavaSrcMain> javaSrcMainProvider, Provider<GoSrcMain> goSrcMainProvider, PerformAutoescapeVisitor performAutoescapeVisitor, ContextualAutoescaper contextualAutoescaper, SimplifyVisitor simplifyVisitor, CheckFunctionCallsVisitor checkFunctionCallsVisitor, @Assisted List<SoyFileSupplier> soyFileSuppliers, @Assisted SoyGeneralOptions generalOptions) { // Default value is optionally replaced using method injection. this.msgBundleHandlerProvider = DEFAULT_SOY_MSG_BUNDLE_HANDLER_PROVIDER; this.baseTofuFactory = baseTofuFactory; this.jsSrcMainProvider = jsSrcMainProvider; this.javaSrcMainProvider = javaSrcMainProvider; this.goSrcMainProvider = goSrcMainProvider; this.performAutoescapeVisitor = performAutoescapeVisitor; this.contextualAutoescaper = contextualAutoescaper; this.simplifyVisitor = simplifyVisitor; this.checkFunctionCallsVisitor = checkFunctionCallsVisitor; Preconditions.checkArgument( soyFileSuppliers.size() > 0, "Must have non-zero number of input Soy files."); this.soyFileSuppliers = soyFileSuppliers; this.generalOptions = generalOptions.clone(); }
/** * Constructs a builder with a specified {@link SoyGeneralOptions} object. * * @param generalOptions The {@code SoyGeneralOptions} object to use. */ public Builder(SoyGeneralOptions generalOptions) { this.listBuilder = ImmutableList.builder(); this.generalOptions = generalOptions.clone(); // Bootstrap Guice for Soy API users that don't use Guice. This is done by statically // injecting an instance of SoyFileSetFactory into this Builder class. Everything derived // from this SoyFileSetFactory will be Guice-enabled. GuiceInitializer.initializeIfNecessary(); }