blob: fb3a409f77ebcf1bae5bdf849107d1c53e34cb66 [file] [log] [blame]
package org.apache.maven.tools.plugin.extractor.annotations.scanner;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.maven.artifact.Artifact;
import org.apache.maven.tools.plugin.extractor.annotations.datamodel.ComponentAnnotationContent;
import org.apache.maven.tools.plugin.extractor.annotations.datamodel.ExecuteAnnotationContent;
import org.apache.maven.tools.plugin.extractor.annotations.datamodel.MojoAnnotationContent;
import org.apache.maven.tools.plugin.extractor.annotations.datamodel.ParameterAnnotationContent;
import java.util.HashMap;
import java.util.Map;
/**
* @author Olivier Lamy
* @since 3.0
*/
public class MojoAnnotatedClass
{
private String className;
private String parentClassName;
private MojoAnnotationContent mojo;
private ExecuteAnnotationContent execute;
/**
* key is field name
*/
private Map<String, ParameterAnnotationContent> parameters;
/**
* key is field name
*/
private Map<String, ComponentAnnotationContent> components;
/**
* artifact which contains this annotation
*/
private Artifact artifact;
public MojoAnnotatedClass()
{
// no op
}
public String getClassName()
{
return className;
}
public MojoAnnotatedClass setClassName( String className )
{
this.className = className;
return this;
}
public MojoAnnotationContent getMojo()
{
return mojo;
}
public MojoAnnotatedClass setMojo( MojoAnnotationContent mojo )
{
this.mojo = mojo;
return this;
}
public ExecuteAnnotationContent getExecute()
{
return execute;
}
public MojoAnnotatedClass setExecute( ExecuteAnnotationContent execute )
{
this.execute = execute;
return this;
}
public Map<String, ParameterAnnotationContent> getParameters()
{
if ( this.parameters == null )
{
this.parameters = new HashMap<String, ParameterAnnotationContent>();
}
return parameters;
}
public MojoAnnotatedClass setParameters( Map<String, ParameterAnnotationContent> parameters )
{
this.parameters = parameters;
return this;
}
public Map<String, ComponentAnnotationContent> getComponents()
{
if ( this.components == null )
{
this.components = new HashMap<String, ComponentAnnotationContent>();
}
return components;
}
public MojoAnnotatedClass setComponents( Map<String, ComponentAnnotationContent> components )
{
this.components = components;
return this;
}
public String getParentClassName()
{
return parentClassName;
}
public MojoAnnotatedClass setParentClassName( String parentClassName )
{
this.parentClassName = parentClassName;
return this;
}
public Artifact getArtifact()
{
return artifact;
}
public void setArtifact( Artifact artifact )
{
this.artifact = artifact;
}
public boolean hasAnnotations()
{
return !( getComponents().isEmpty() && getParameters().isEmpty() && execute == null && mojo == null );
}
@Override
public String toString()
{
final StringBuilder sb = new StringBuilder();
sb.append( "MojoAnnotatedClass" );
sb.append( "{className='" ).append( className ).append( '\'' );
sb.append( ", parentClassName='" ).append( parentClassName ).append( '\'' );
sb.append( ", mojo=" ).append( mojo );
sb.append( ", execute=" ).append( execute );
sb.append( ", parameters=" ).append( parameters );
sb.append( ", components=" ).append( components );
sb.append( '}' );
return sb.toString();
}
}