View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.plugins.pdf;
20  
21  import java.io.File;
22  import java.io.IOException;
23  
24  import org.apache.maven.plugin.AbstractMojo;
25  
26  /**
27   * Common code to create pdf, either module pdf or reactor aggregate.
28   *
29   * @since 1.5
30   */
31  public abstract class AbstractPdfMojo extends AbstractMojo {
32      protected abstract File getOutputDirectory();
33  
34      protected abstract File getWorkingDirectory();
35  
36      protected abstract boolean isIncludeReports();
37  
38      /**
39       * The temp Site dir to have all site and generated-site files.
40       *
41       * @since 1.1
42       */
43      private File siteDirectoryTmp;
44  
45      protected abstract void prepareTempSiteDirectory(File tmpSiteDir) throws IOException;
46  
47      /**
48       * @return the default tmpSiteDirectory.
49       * @throws IOException if any
50       * @since 1.1
51       */
52      protected File getSiteDirectoryTmp() throws IOException {
53          if (this.siteDirectoryTmp == null) {
54              final File tmpSiteDir = new File(getWorkingDirectory(), "site.tmp");
55              prepareTempSiteDirectory(tmpSiteDir);
56  
57              this.siteDirectoryTmp = tmpSiteDir;
58          }
59  
60          return this.siteDirectoryTmp;
61      }
62  }