001 package org.apache.maven.tools.plugin.annotations.datamodel; 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.plugins.annotations.InstantiationStrategy; 023 import org.apache.maven.plugins.annotations.InstanciationStrategy; 024 import org.apache.maven.plugins.annotations.LifecyclePhase; 025 import org.apache.maven.plugins.annotations.Mojo; 026 import org.apache.maven.plugins.annotations.ResolutionScope; 027 028 import java.lang.annotation.Annotation; 029 030 /** 031 * @author Olivier Lamy 032 * @since 3.0 033 */ 034 @SuppressWarnings("deprecation") 035 public class MojoAnnotationContent 036 extends AnnotatedContent 037 implements Mojo 038 { 039 private String name; 040 041 private LifecyclePhase defaultPhase = LifecyclePhase.NONE; 042 043 private ResolutionScope requiresDependencyResolution = ResolutionScope.NONE; 044 045 private ResolutionScope requiresDependencyCollection = ResolutionScope.NONE; 046 047 private InstantiationStrategy instantiationStrategy = InstantiationStrategy.PER_LOOKUP; 048 049 private String executionStrategy = "once-per-session"; 050 051 private boolean requiresProject = true; 052 053 private boolean requiresReports = false; 054 055 private boolean aggregator = false; 056 057 private boolean requiresDirectInvocation = false; 058 059 private boolean requiresOnline = false; 060 061 private boolean inheritByDefault = true; 062 063 private String configurator; 064 065 private boolean threadSafe = false; 066 067 public Class<? extends Annotation> annotationType() 068 { 069 return null; 070 } 071 072 public LifecyclePhase defaultPhase() 073 { 074 return defaultPhase; 075 } 076 077 public void defaultPhase( String phase ) 078 { 079 this.defaultPhase = LifecyclePhase.valueOf( phase ); 080 } 081 082 public ResolutionScope requiresDependencyResolution() 083 { 084 return requiresDependencyResolution; 085 } 086 087 public void requiresDependencyResolution( String requiresDependencyResolution ) 088 { 089 this.requiresDependencyResolution = ResolutionScope.valueOf( requiresDependencyResolution ); 090 } 091 092 public ResolutionScope requiresDependencyCollection() 093 { 094 return requiresDependencyCollection; 095 } 096 097 public void requiresDependencyCollection( String requiresDependencyCollection ) 098 { 099 this.requiresDependencyCollection = ResolutionScope.valueOf( requiresDependencyCollection ); 100 } 101 102 public InstantiationStrategy instantiationStrategy() 103 { 104 return instantiationStrategy; 105 } 106 107 /** 108 * The original spelling of the instantiationStrategy attribute. 109 * This returns the value under the correct name, there's no separate 110 * field. 111 * 112 * @return the instantiation strategy 113 * @see #instantiationStrategy() 114 */ 115 @SuppressWarnings( "deprecation" ) 116 public InstanciationStrategy instanciationStrategy() 117 { 118 if ( instantiationStrategy == null ) 119 { 120 return null; 121 } 122 return InstanciationStrategy.valueOf( instanciationStrategy().name() ); 123 } 124 125 public void instantiationStrategy( String instantiationStrategy ) 126 { 127 this.instantiationStrategy = InstantiationStrategy.valueOf( instantiationStrategy ); 128 } 129 130 public String executionStrategy() 131 { 132 return executionStrategy; 133 } 134 135 public void executionStrategy( String executionStrategy ) 136 { 137 this.executionStrategy = executionStrategy; 138 } 139 140 public boolean requiresProject() 141 { 142 return requiresProject; 143 } 144 145 public void requiresProject( boolean requiresProject ) 146 { 147 this.requiresProject = requiresProject; 148 } 149 150 public boolean requiresReports() 151 { 152 return requiresReports; 153 } 154 155 public void requiresReports( boolean requiresReports ) 156 { 157 this.requiresReports = requiresReports; 158 } 159 160 public boolean aggregator() 161 { 162 return aggregator; 163 } 164 165 public void aggregator( boolean aggregator ) 166 { 167 this.aggregator = aggregator; 168 } 169 170 public boolean requiresDirectInvocation() 171 { 172 return requiresDirectInvocation; 173 } 174 175 public void requiresDirectInvocation( boolean requiresDirectInvocation ) 176 { 177 this.requiresDirectInvocation = requiresDirectInvocation; 178 } 179 180 public boolean requiresOnline() 181 { 182 return requiresOnline; 183 } 184 185 public void requiresOnline( boolean requiresOnline ) 186 { 187 this.requiresOnline = requiresOnline; 188 } 189 190 public boolean inheritByDefault() 191 { 192 return inheritByDefault; 193 } 194 195 public void inheritByDefault( boolean inheritByDefault ) 196 { 197 this.inheritByDefault = inheritByDefault; 198 } 199 200 public String configurator() 201 { 202 return configurator; 203 } 204 205 public void configurator( String configurator ) 206 { 207 this.configurator = configurator; 208 } 209 210 public boolean threadSafe() 211 { 212 return threadSafe; 213 } 214 215 public void threadSafe( boolean threadSafe ) 216 { 217 this.threadSafe = threadSafe; 218 } 219 220 public String name() 221 { 222 return this.name; 223 } 224 225 public void name( String name ) 226 { 227 this.name = name; 228 } 229 230 @Override 231 public String toString() 232 { 233 final StringBuilder sb = new StringBuilder(); 234 sb.append( "MojoAnnotationContent" ); 235 sb.append( "{name='" ).append( name ).append( '\'' ); 236 sb.append( ", defaultPhase=" ).append( defaultPhase ); 237 sb.append( ", requiresDependencyResolution='" ).append( requiresDependencyResolution ).append( '\'' ); 238 sb.append( ", requiresDependencyCollection='" ).append( requiresDependencyCollection ).append( '\'' ); 239 sb.append( ", instantiationStrategy='" ).append( instantiationStrategy ).append( '\'' ); 240 sb.append( ", executionStrategy='" ).append( executionStrategy ).append( '\'' ); 241 sb.append( ", requiresProject=" ).append( requiresProject ); 242 sb.append( ", requiresReports=" ).append( requiresReports ); 243 sb.append( ", aggregator=" ).append( aggregator ); 244 sb.append( ", requiresDirectInvocation=" ).append( requiresDirectInvocation ); 245 sb.append( ", requiresOnline=" ).append( requiresOnline ); 246 sb.append( ", inheritByDefault=" ).append( inheritByDefault ); 247 sb.append( ", configurator='" ).append( configurator ).append( '\'' ); 248 sb.append( ", threadSafe=" ).append( threadSafe ); 249 sb.append( '}' ); 250 return sb.toString(); 251 } 252 }