View Javadoc

1   package org.apache.maven.doxia.linkcheck;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.io.File;
23  
24  import org.apache.maven.doxia.linkcheck.model.LinkcheckModel;
25  
26  /**
27   * Tool to check links from html files in a given directory.
28   *
29   * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
30   * @version $Id: LinkCheck.java 709894 2008-11-02 16:42:06Z hboutemy $
31   */
32  public interface LinkCheck
33  {
34      /** Plexus Role */
35      String ROLE = LinkCheck.class.getName();
36  
37      /**
38       * Set the base directory for the files to be linkchecked.
39       *
40       * @param base the base directory
41       */
42      void setBasedir( File base );
43  
44      /**
45       * Sets the base URL. This is prepended to links that start with '/'.
46       *
47       * @param url the base URL.
48       */
49      void setBaseURL( String url );
50  
51      /**
52       * Sets the excluded HTTP errors, i.e. <code>404</code>, a int[] with excluded errors.
53       *
54       * @param excl The excludes to set
55       * @see {@link HttpStatus} for all possible values.
56       */
57      void setExcludedHttpStatusErrors( int[] excl );
58  
59      /**
60       * Sets the excluded HTTP warnings, i.e. <code>301</code>, a int[] with excluded errors.
61       *
62       * @param excl The excludes to set
63       * @see {@link HttpStatus} for all possible values.
64       */
65      void setExcludedHttpStatusWarnings( int[] excl );
66  
67      /**
68       * Sets the excluded links, a String[] with excluded locations.
69       * Could contains a link, i.e. <code>http:&#47;&#47;maven.apache.org/</code>,
70       * or pattern links i.e. <code>http:&#47;&#47;maven.apache.org&#47;**&#47;*.html</code>
71       *
72       * @param excl The excludes to set
73       */
74      void setExcludedLinks( String[] excl );
75  
76      /**
77       * Sets the excluded pages, a String[] with excluded locations.
78       *
79       * @param excl The excludes to set
80       */
81      void setExcludedPages( String[] excl );
82  
83      /**
84       * Sets the http parameters bean.
85       *
86       * @param http parameters bean.
87       */
88      void setHttp( HttpBean http );
89  
90      /**
91       * Sets the cache File.
92       *
93       * @param cacheFile The cacheFile to set. Set this to null to ignore storing the cache.
94       */
95      void setLinkCheckCache( File cacheFile );
96  
97      /**
98       * Set the online mode.
99       *
100      * @param onLine online mode.
101      */
102     void setOnline( boolean onLine );
103 
104     /**
105      * Set the output file for the results.
106      * If this is null, no output will be written.
107      *
108      * @param file the output file.
109      */
110     void setReportOutput( File file );
111 
112     /**
113      * Sets the outputEncoding.
114      *
115      * @param encoding The outputEncoding to set.
116      */
117     void setReportOutputEncoding( String encoding );
118 
119     /**
120      * Execute the link check. The basedir <b>should</b> be set before.
121      *
122      * @return the analysis in a <code>LinkCheck</code> model.
123      * @throws LinkCheckException if any
124      * @see #setBasedir(File)
125      */
126     LinkcheckModel execute()
127         throws LinkCheckException;
128 
129     /**
130      * Set the encoding to use when processing files.
131      *
132      * @param encoding a valid encoding
133      * @see <a href="http://java.sun.com/j2se/1.4.2/docs/guide/intl/encoding.doc.html">Supported encodings</a>
134      */
135     void setEncoding( String encoding );
136 }