View Javadoc
1   /**************************************************************************
2    *
3    * Copyright (c) 2016-2020 Yawg project contributors.
4    *
5    **************************************************************************/
6   
7   package com.varmateo.yawg.spi;
8   
9   import java.util.Optional;
10  
11  import com.varmateo.yawg.api.YawgException;
12  
13  
14  /**
15   * Provider of layout templates for baking.
16   */
17  public interface TemplateService {
18  
19  
20      /**
21       * Fetches the template with the given name.
22       *
23       * <p>The meaning and structure of the template name depend on the
24       * concrete template engine being used.</p>
25       *
26       * <p>Do not assume that the same object will be returned for two
27       * calls with the same name. You can only assume the template
28       * objects returned for the same name are functionaly
29       * equivalent.</p>
30       *
31       * @param name The name of the template to return.
32       *
33       * @return The template associated with the given name. If this
34       * service does not support the template format then an empty
35       * <code>Optional</code> will be returned.
36       *
37       * @throws YawgException If for whatever reason it was not
38       * possible to create the page template. For instance, if the
39       * template with the given name does not exist.
40       */
41      Optional<Template> prepareTemplate(String name);
42  }