View Javadoc

1   /*
2    * Copyright 2008-2010 smartics, Kronseder & Reiner GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package de.smartics.maven.issues;
18  
19  /**
20   * Interface for factories creating facades to access remote issue management
21   * systems.
22   *
23   * @author <a href="mailto:robert.reiner@smartics.de">Robert Reiner</a>
24   * @version $Revision:591 $
25   */
26  public interface RepositoryFacadeFactory
27  {
28    // ********************************* Fields *********************************
29  
30    // --- constants ------------------------------------------------------------
31  
32    // ****************************** Initializer *******************************
33  
34    // ****************************** Inner Classes *****************************
35  
36    // ********************************* Methods ********************************
37  
38    // --- get&set --------------------------------------------------------------
39  
40    // --- business -------------------------------------------------------------
41  
42    /**
43     * Checks if the factory supports the creation of a facade for the given issue
44     * management ID.
45     *
46     * @param issueManagementId the identifier provided in the Maven POM to
47     *          identify the issue management system.
48     * @return <code>true</code> if the issue management system specified by the
49     *         given <code>issueManagementId</code> is supported by this factory,
50     *         <code>false</code> otherwise.
51     */
52    boolean supports(String issueManagementId);
53  
54    /**
55     * Creates a facade to access an issue management system with the given
56     * identifier.
57     *
58     * @param config the configuration to initialize the facade to access a
59     *          certain issue management system. It specifies in addition to other
60     *          vital information the identifier provided in the Maven POM.
61     * @return the created facade.
62     * @throws IllegalArgumentException if the factory cannot create a facade for
63     *           the issue management system specified by the given Configuration
64     *           <code>config</code>.
65     */
66    RepositoryFacade create(IssueManagementConfig config)
67      throws IllegalArgumentException;
68  
69    // --- object basics --------------------------------------------------------
70  
71  }