1   package org.apache.maven.werkz;
2   
3   /* ====================================================================
4    *   Licensed to the Apache Software Foundation (ASF) under one or more
5    *   contributor license agreements.  See the NOTICE file distributed with
6    *   this work for additional information regarding copyright ownership.
7    *   The ASF licenses this file to You under the Apache License, Version 2.0
8    *   (the "License"); you may not use this file except in compliance with
9    *   the License.  You may obtain a copy of the License at
10   *
11   *       http://www.apache.org/licenses/LICENSE-2.0
12   *
13   *   Unless required by applicable law or agreed to in writing, software
14   *   distributed under the License is distributed on an "AS IS" BASIS,
15   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   *   See the License for the specific language governing permissions and
17   *   limitations under the License.
18   * ====================================================================
19   */
20  
21  public class MockGoal
22      extends Goal
23  {
24      private GoalTracker tracker;
25  
26      private boolean requiresAction;
27  
28      public MockGoal( String name, GoalTracker tracker )
29      {
30          super( name );
31  
32          this.tracker = tracker;
33          this.requiresAction = true;
34  
35          setAction( new Action()
36          {
37              public void performAction( Session session )
38              {
39                  getTracker().addFiredGoal( getGoal() );
40              }
41  
42              public boolean requiresAction()
43              {
44                  return outterRequiresAction();
45              }
46          } );
47      }
48  
49      Goal getGoal()
50      {
51          return this;
52      }
53  
54      GoalTracker getTracker()
55      {
56          return this.tracker;
57      }
58  
59      public boolean outterRequiresAction()
60      {
61          return this.requiresAction;
62      }
63  
64      public void requiresAction( boolean requiresAction )
65      {
66          this.requiresAction = requiresAction;
67      }
68  
69  }