Skip to content

Commit

Permalink
Merge pull request #55 from XenoAmess/fix_bug_about_generation_in_fix
Browse files Browse the repository at this point in the history
[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
  • Loading branch information
elharo committed Aug 24, 2020
2 parents 7405d83 + 3dafe01 commit 44e19db
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 113 deletions.
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

0 comments on commit 44e19db

Please sign in to comment.