001 package org.apache.maven.lifecycle;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import org.apache.maven.plugin.MojoExecution;
023
024 /**
025 * @since 3.0
026 * @author Kristian Rosenvold
027 */
028 public class Schedule
029 {
030 private String phase;
031
032 private String upstreamPhase; // The upstream phase to lock to.
033
034 private String pluginKey;
035
036 private String mojoGoal;
037
038 private boolean mojoSynchronized;
039 // Indicates that this phase/mojo does not need to respect the reactor-dependency graph
040 // (Module lifecycle order still must be respected )
041
042 private boolean parallel;
043
044 public Schedule()
045 {
046 }
047
048 public Schedule( String phase, boolean mojoSynchronized, boolean parallel )
049 {
050 this.phase = phase;
051 this.mojoSynchronized = mojoSynchronized;
052 this.parallel = parallel;
053 }
054
055
056 public String getPhase()
057 {
058 return phase;
059 }
060
061 public void setPhase( String phase )
062 {
063 this.phase = phase;
064 }
065
066 public String getPluginKey()
067 {
068 return pluginKey;
069 }
070
071 public void setPluginKey( String pluginKey )
072 {
073 this.pluginKey = pluginKey;
074 }
075
076 public boolean isMojoSynchronized()
077 {
078 return mojoSynchronized;
079 }
080
081 public void setMojoSynchronized( boolean mojoSynchronized )
082 {
083 this.mojoSynchronized = mojoSynchronized;
084 }
085
086
087 public boolean isParallel()
088 {
089 return parallel;
090 }
091
092 public void setParallel( boolean parallel )
093 {
094 this.parallel = parallel;
095 }
096
097 public String getUpstreamPhase()
098 {
099 return upstreamPhase;
100 }
101
102 public void setUpstreamPhase( String upstreamPhase )
103 {
104 this.upstreamPhase = upstreamPhase;
105 }
106
107 public String getMojoGoal()
108 {
109 return mojoGoal;
110 }
111
112 public void setMojoGoal( String mojoGoal )
113 {
114 this.mojoGoal = mojoGoal;
115 }
116
117 public boolean hasUpstreamPhaseDefined()
118 {
119 return getUpstreamPhase() != null;
120 }
121
122 public boolean appliesTo( MojoExecution mojoExecution )
123 {
124 if ( pluginKey == null && mojoGoal == null )
125 {
126 return false;
127 }
128
129 boolean pluginKeyMatches = ( pluginKey == null ) || pluginKey.equals( mojoExecution.getPlugin().getKey() );
130
131 boolean pluginGoalMatches = ( mojoGoal == null ) || mojoGoal.equals( mojoExecution.getGoal() );
132
133 return pluginKeyMatches && pluginGoalMatches;
134 }
135
136 @Override
137 public String toString()
138 {
139 return "Schedule{" + "phase='" + phase + "', upstreamPhase='" + upstreamPhase + "', pluginKey='"
140 + pluginKey + "', mojoGoal='" + mojoGoal + "', mojoSynchronized=" + mojoSynchronized
141 + ", parallel=" + parallel + '}';
142 }
143 }