View Javadoc

1   /*
2    * Copyright 2013 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  package de.smartics.maven.plugin.jboss.modules.domain;
17  
18  import java.util.regex.MatchResult;
19  
20  /**
21   * Contains the result of a regular expression match.
22   */
23  public interface MatchContext
24  {
25    // ********************************* Fields *********************************
26  
27    // --- constants ------------------------------------------------------------
28  
29    // ****************************** Initializer *******************************
30  
31    // ****************************** Inner Classes *****************************
32  
33    // ********************************* Methods ********************************
34  
35    // --- get&set --------------------------------------------------------------
36  
37    /**
38     * Checks if the match was successful.
39     *
40     * @return <code>true</code> if the match was successful, <code>false</code>
41     *         otherwise.
42     */
43    boolean isMatched();
44  
45    /**
46     * Returns the match result to access group information.
47     *
48     * @return the matcher to access group information.
49     */
50    MatchResult getMatchResult();
51  
52    // --- business -------------------------------------------------------------
53  
54    /**
55     * Translates the name if it contains placeholders with the matching groups.
56     *
57     * @param input the input name that may contain placeholders.
58     * @return the translated string. It is the input string, if {@code input}
59     *         does not contain any placeholders.
60     */
61    String translateName(String input);
62  
63    /**
64     * Checks if the match produced at least one group match.
65     *
66     * @return <code>true</code> if at least one group is matched,
67     *         <code>false</code> otherwise.
68     */
69    boolean hasGroupMatch();
70  
71    // --- object basics --------------------------------------------------------
72  }