Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MJAVADOC-658] The fix operation wrongly delete generic functions's generic-class javadoc if exist, and add it if lack, and will not create it if param part of javadoc be empty #55

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -1635,11 +1635,7 @@ private void updateJavadocComment( final StringWriter stringWriter, final String
return;
}

boolean isJavaExecutable = false;
if ( entity instanceof JavaExecutable )
{
isJavaExecutable = true;
}
boolean isJavaExecutable = entity instanceof JavaExecutable;

StringBuilder sb = new StringBuilder();

Expand Down Expand Up @@ -1740,14 +1736,7 @@ private void updateJavadocComment( final StringWriter stringWriter, final String
}

// tags
if ( entity.getTags() != null && !entity.getTags().isEmpty() )
{
updateJavadocTags( sb, originalContent, entity, indent, isJavaExecutable );
}
else
{
addDefaultJavadocTags( sb, entity, indent, isJavaExecutable );
}
updateJavadocTags( sb, originalContent, entity, indent, isJavaExecutable );

sb = new StringBuilder( removeLastEmptyJavadocLines( sb.toString() ) ).append( EOL );

Expand Down Expand Up @@ -2074,7 +2063,7 @@ private void writeParamTag( final StringBuilder sb, final JavaExecutable javaExe
List<JavaTypeVariable<JavaGenericDeclaration>> typeParams = javaExecutable.getTypeParameters();
for ( JavaTypeVariable<JavaGenericDeclaration> typeParam : typeParams )
{
if ( typeParam.getGenericValue().equals( paramName ) )
if ( ( "<" + typeParam.getName() + ">" ).equals( paramName ) )
{
found = true;
}
Expand Down Expand Up @@ -2346,96 +2335,6 @@ else if ( entity instanceof JavaClass
}
}

/**
* @param sb not null
* @param entity not null
* @param indent not null
* @param isJavaExecutable
* @throws MojoExecutionException if any
*/
private void addDefaultJavadocTags( final StringBuilder sb, final JavaAnnotatedElement entity,
final String indent, final boolean isJavaExecutable )
throws MojoExecutionException
{
boolean separatorAdded = false;
if ( isJavaExecutable )
{
JavaExecutable javaExecutable = (JavaExecutable) entity;

if ( fixTag( PARAM_TAG ) && javaExecutable.getParameters() != null )
{
for ( JavaParameter javaParameter : javaExecutable.getParameters() )
{
separatorAdded = appendDefaultParamTag( sb, indent, separatorAdded, javaParameter );
}
}

if ( javaExecutable instanceof JavaMethod && fixTag( RETURN_TAG ) )
{
JavaMethod javaMethod = (JavaMethod) javaExecutable;
if ( javaMethod.getReturns() != null && !javaMethod.getReturns().isVoid() )
{
separatorAdded = appendDefaultReturnTag( sb, indent, separatorAdded, javaMethod );
}
}

if ( fixTag( THROWS_TAG ) && javaExecutable.getExceptions() != null )
{
for ( JavaType exception : javaExecutable.getExceptions() )
{
separatorAdded = appendDefaultThrowsTag( sb, indent, separatorAdded, exception );
}
}
}
else
{
separatorAdded = appendDefaultAuthorTag( sb, indent, separatorAdded );

separatorAdded = appendDefaultVersionTag( sb, indent, separatorAdded );
}

if ( fixTag( SINCE_TAG ) )
{
if ( !isJavaExecutable )
{
JavaClass javaClass = (JavaClass) entity;

if ( !ignoreClirr )
{
if ( isNewClassFromLastVersion( javaClass ) )
{
separatorAdded = appendDefaultSinceTag( sb, indent, separatorAdded );
}
}
else
{
separatorAdded = appendDefaultSinceTag( sb, indent, separatorAdded );

addSinceClasses( javaClass );
}
}
else
{
JavaExecutable javaExecutable = (JavaExecutable) entity;

if ( !ignoreClirr )
{
if ( isNewMethodFromLastRevision( javaExecutable ) )
{
separatorAdded = appendDefaultSinceTag( sb, indent, separatorAdded );
}
}
else
{
if ( sinceClasses != null && !sinceClassesContains( javaExecutable.getDeclaringClass() ) )
{
separatorAdded = appendDefaultSinceTag( sb, indent, separatorAdded );
}
}
}
}
}

/**
* @param sb not null
* @param indent not null
Expand Down Expand Up @@ -2875,7 +2774,7 @@ private String getDefaultJavadocForType( JavaClass clazz )

private String getDefaultJavadocForType( JavaTypeVariable<JavaGenericDeclaration> typeParameter )
{
return "a " + typeParameter.getName() + " object.";
return "a " + typeParameter.getName() + " class.";
}

/**
Expand Down
Expand Up @@ -358,6 +358,45 @@ public void t011()
{
return;
}

/**
* test generic function (with only head javadoc)
*
* @param tClass a {@link java.lang.Class} object.
* @param o a {@link java.lang.Object} object.
* @param <T> a T class.
* @since 1.1
*/
public <T extends Object> void testGeneric0(Class<T> tClass, Object o)
{
return;
}

/**
* test generic function (with full javadoc)
*
* @param tClass a {@link java.lang.Class} object.
* @param o a {@link java.lang.Object} object.
* @param <T> a T class.
* @since 1.1
*/
public <T extends Object> void testGeneric1(Class<T> tClass, Object o)
{
return;
}

/**
* test generic function (with full javadoc, except generic docs)
*
* @param tClass a {@link java.lang.Class} object.
* @param o a {@link java.lang.Object} object.
* @param <T> a T class.
* @since 1.1
*/
public <T extends Object> void testGeneric2(Class<T> tClass, Object o)
{
return;
}
}

/**
Expand Down
Expand Up @@ -173,12 +173,14 @@ public void nothing()
}

@SuppressWarnings("SameReturnValue")
private void t000() {
private void t000()
{
return;
}

//test comment
private void t001() {
private void t001()
{
return;
}

Expand All @@ -188,7 +190,8 @@ private void t001() {
* @since 1.1
*/
@SuppressWarnings("SameReturnValue")
public void t010() {
public void t010()
{
return;
}

Expand All @@ -198,7 +201,21 @@ public void t010() {
*
* @since 1.1
*/
public void t011() {
public void t011()
{
return;
}

/**
* <p>testGeneric3.</p>
*
* @param tClass a {@link java.lang.Class} object.
* @param o a {@link java.lang.Object} object.
* @param <T> a T class.
* @since 1.1
*/
public <T extends Object> void testGeneric3(Class<T> tClass, Object o)
{
return;
}
}
Expand Down
Expand Up @@ -335,6 +335,37 @@ public void t011()
{
return;
}

/**
* test generic function (with only head javadoc)
*/
public <T extends Object> void testGeneric0(Class<T> tClass, Object o)
{
return;
}

/**
* test generic function (with full javadoc)
*
* @param tClass a {@link java.lang.Class} object.
* @param o a {@link java.lang.Object} object.
* @param <T> a T class.
*/
public <T extends Object> void testGeneric1(Class<T> tClass, Object o)
{
return;
}

/**
* test generic function (with full javadoc, except generic docs)
*
* @param tClass a {@link java.lang.Class} object.
* @param o a {@link java.lang.Object} object.
*/
public <T extends Object> void testGeneric2(Class<T> tClass, Object o)
{
return;
}
}

/**
Expand Down
Expand Up @@ -119,22 +119,31 @@ public void nothing()
}

@SuppressWarnings("SameReturnValue")
private void t000() {
private void t000()
{
return;
}

//test comment
private void t001() {
private void t001()
{
return;
}

@SuppressWarnings("SameReturnValue")
public void t010() {
public void t010()
{
return;
}

//test comment
public void t011() {
public void t011()
{
return;
}

public <T extends Object> void testGeneric3(Class<T> tClass, Object o)
{
return;
}
}
Expand Down