View Javadoc
1   package org.apache.maven.plugins.enforcer;
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  import java.util.List;
24  import java.util.Map;
25  
26  import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
27  import org.apache.maven.execution.MavenSession;
28  import org.apache.maven.plugin.logging.Log;
29  import org.codehaus.plexus.PlexusContainer;
30  import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
31  import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
32  import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
33  
34  /**
35   * Default implementation of the EnforcementRuleHelper interface. This is used to help retrieve information from the
36   * session and provide useful elements like the log.
37   *
38   * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
39   * @version $Id: DefaultEnforcementRuleHelper.java 1634140 2014-10-24 21:23:01Z khmarbaise $
40   */
41  public class DefaultEnforcementRuleHelper
42      implements EnforcerRuleHelper
43  {
44  
45      /** The log. */
46      private Log log;
47  
48      /** The evaluator. */
49      private ExpressionEvaluator evaluator;
50  
51      /** The session. */
52      private MavenSession session;
53  
54      /** The container. */
55      private PlexusContainer container;
56  
57      /**
58       * Instantiates a new default enforcement rule helper.
59       *
60       * @param session the session
61       * @param evaluator the evaluator
62       * @param log the log
63       * @param container the container
64       */
65      public DefaultEnforcementRuleHelper( MavenSession session, ExpressionEvaluator evaluator, Log log,
66                                           PlexusContainer container )
67      {
68          this.evaluator = evaluator;
69          this.log = log;
70          this.session = session;
71          if ( container != null )
72          {
73              this.container = container;
74          }
75          else
76          {
77              this.container = session.getContainer();
78          }
79      }
80  
81      /*
82       * (non-Javadoc)
83       *
84       * @see org.apache.maven.enforcer.rule.api.EnforcerRuleHelper#getLog()
85       */
86      public Log getLog()
87      {
88          return log;
89      }
90  
91      /*
92       * (non-Javadoc)
93       *
94       * @see org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator#alignToBaseDirectory(java.io.File)
95       */
96      public File alignToBaseDirectory( File theFile )
97      {
98          return evaluator.alignToBaseDirectory( theFile );
99      }
100 
101     /*
102      * (non-Javadoc)
103      *
104      * @see org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator#evaluate(java.lang.String)
105      */
106     public Object evaluate( String theExpression )
107         throws ExpressionEvaluationException
108     {
109         return evaluator.evaluate( theExpression );
110     }
111 
112     /*
113      * (non-Javadoc)
114      *
115      * @see org.apache.maven.shared.enforcer.rule.api.EnforcerRuleHelper#getRuntimeInformation()
116      */
117     public Object getComponent( Class clazz )
118         throws ComponentLookupException
119     {
120         return getComponent( clazz.getName() );
121     }
122 
123     /*
124      * (non-Javadoc)
125      *
126      * @see org.apache.maven.enforcer.rule.api.EnforcerRuleHelper#lookup(java.lang.String)
127      */
128     public Object getComponent( String theComponentKey )
129         throws ComponentLookupException
130     {
131         return container.lookup( theComponentKey );
132     }
133 
134     /*
135      * (non-Javadoc)
136      *
137      * @see org.apache.maven.enforcer.rule.api.EnforcerRuleHelper#lookup(java.lang.String, java.lang.String)
138      */
139     public Object getComponent( String theRole, String theRoleHint )
140         throws ComponentLookupException
141     {
142         return container.lookup( theRole, theRoleHint );
143     }
144 
145     /*
146      * (non-Javadoc)
147      *
148      * @see org.apache.maven.enforcer.rule.api.EnforcerRuleHelper#lookupList(java.lang.String)
149      */
150     public List getComponentList( String theRole )
151         throws ComponentLookupException
152     {
153         return container.lookupList( theRole );
154     }
155 
156     /*
157      * (non-Javadoc)
158      *
159      * @see org.apache.maven.enforcer.rule.api.EnforcerRuleHelper#lookupMap(java.lang.String)
160      */
161     public Map getComponentMap( String theRole )
162         throws ComponentLookupException
163     {
164         return container.lookupMap( theRole );
165     }
166 
167     /*
168      * (non-Javadoc)
169      *
170      * @see org.apache.maven.enforcer.rule.api.EnforcerRuleHelper#getContainer()
171      */
172     public PlexusContainer getContainer()
173     {
174         return container;
175     }
176 }