r4fterman/pdf.forms

View on GitHub
src/main/java/org/pdf/forms/model/des/SizeAndPosition.java

Summary

Maintainability
A
3 hrs
Test Coverage
F
53%

SizeAndPosition has 26 methods (exceeds 20 allowed). Consider refactoring.
Open

@XmlType(name = "sizeandposition")
public class SizeAndPosition {

    private static final String X = "X";
    private static final String Y = "Y";
Severity: Minor
Found in src/main/java/org/pdf/forms/model/des/SizeAndPosition.java - About 3 hrs to fix

    This block of commented-out lines of code should be removed.
    Open

    //        removeObsoleteProperty(DEPRECATED_EXPAND_TO_FIT);

    Programmers should not comment out code as it bloats programs and reduces readability.

    Unused code should be deleted and can be retrieved from source control history if required.

    Remove this unused private "removeObsoleteProperty" method.
    Open

        private void removeObsoleteProperty(final String propertyName) {

    private methods that are never executed are dead code: unnecessary, inoperative code that should be removed. Cleaning out dead code decreases the size of the maintained codebase, making it easier to understand the program and preventing bugs from being introduced.

    Note that this rule does not take reflection into account, which means that issues will be raised on private methods that are only accessed using the reflection API.

    Noncompliant Code Example

    public class Foo implements Serializable
    {
      private Foo(){}     //Compliant, private empty constructor intentionally used to prevent any direct instantiation of a class.
      public static void doSomething(){
        Foo foo = new Foo();
        ...
      }
      private void unusedPrivateMethod(){...}
      private void writeObject(ObjectOutputStream s){...}  //Compliant, relates to the java serialization mechanism
      private void readObject(ObjectInputStream in){...}  //Compliant, relates to the java serialization mechanism
    }
    

    Compliant Solution

    public class Foo implements Serializable
    {
      private Foo(){}     //Compliant, private empty constructor intentionally used to prevent any direct instantiation of a class.
      public static void doSomething(){
        Foo foo = new Foo();
        ...
      }
    
      private void writeObject(ObjectOutputStream s){...}  //Compliant, relates to the java serialization mechanism
    
      private void readObject(ObjectInputStream in){...}  //Compliant, relates to the java serialization mechanism
    }
    

    Exceptions

    This rule doesn't raise any issue on annotated methods.

    This block of commented-out lines of code should be removed.
    Open

    //        removeObsoleteProperty(DEPRECATED_EXPAND_TO_FIT);

    Programmers should not comment out code as it bloats programs and reduces readability.

    Unused code should be deleted and can be retrieved from source control history if required.

    Add the missing @deprecated Javadoc tag.
    Open

        private static final String DEPRECATED_EXPAND_TO_FIT = "Expand to fit";

    Deprecation should be marked with both the @Deprecated annotation and @deprecated Javadoc tag. The annotation enables tools such as IDEs to warn about referencing deprecated elements, and the tag can be used to explain when it was deprecated, why, and how references should be refactored.

    Further, Java 9 adds two additional arguments to the annotation:

    • since allows you to describe when the deprecation took place
    • forRemoval, indicates whether the deprecated element will be removed at some future date

    If your compile level is Java 9 or higher, you should be using one or both of these arguments.

    Noncompliant Code Example

    class MyClass {
    
      @Deprecated
      public void foo1() {
      }
    
      /**
        * @deprecated
        */
      public void foo2() {    // Noncompliant
      }
    
    }
    

    Compliant Solution

    class MyClass {
    
      /**
        * @deprecated (when, why, refactoring advice...)
        */
      @Deprecated
      public void foo1() {
      }
    
      /**
        * Java >= 9
        * @deprecated (when, why, refactoring advice...)
        */
      @Deprecated(since="5.1")
      public void foo2() {
      }
    
      /**
        * Java >= 9
        * @deprecated (when, why, refactoring advice...)
        */
      @Deprecated(since="4.2", forRemoval=true)
      public void foo3() {
      }
    
    }
    

    Exceptions

    The members and methods of a deprecated class or interface are ignored by this rule. The classes and interfaces themselves are still subject to it.

    /**
     * @deprecated (when, why, etc...)
     */
    @Deprecated
    class Qix  {
    
      public void foo() {} // Compliant; class is deprecated
    
    }
    
    /**
     * @deprecated (when, why, etc...)
     */
    @Deprecated
    interface Plop {
    
      void bar();
    
    }
    

    Wrong lexicographical order for 'java.util.StringJoiner' import. Should be before 'java.util.stream.Collectors.toUnmodifiableList'.
    Open

    import java.util.StringJoiner;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Wrong lexicographical order for 'jakarta.xml.bind.annotation.XmlType' import. Should be before 'java.util.stream.Collectors.toUnmodifiableList'.
    Open

    import jakarta.xml.bind.annotation.XmlType;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Parameter name 'y' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.
    Open

        public void setY(final int y) {

    Checks that method parameter names conform to a specified pattern.By using accessModifiers property it is possibleto specify different formats for methods at different visibility levels.

    To validate catch parameters please useCatchParameterName.

    To validate lambda parameters please useLambdaParameterName.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Wrong lexicographical order for 'java.util.ArrayList' import. Should be before 'java.util.stream.Collectors.toUnmodifiableList'.
    Open

    import java.util.ArrayList;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Extra separation in import group before 'java.util.ArrayList'
    Open

    import java.util.ArrayList;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Parameter name 'yExpandToFit' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.
    Open

        public void setYExpandToFit(final String yExpandToFit) {

    Checks that method parameter names conform to a specified pattern.By using accessModifiers property it is possibleto specify different formats for methods at different visibility levels.

    To validate catch parameters please useCatchParameterName.

    To validate lambda parameters please useLambdaParameterName.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Parameter name 'o' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.
    Open

        public boolean equals(final Object o) {

    Checks that method parameter names conform to a specified pattern.By using accessModifiers property it is possibleto specify different formats for methods at different visibility levels.

    To validate catch parameters please useCatchParameterName.

    To validate lambda parameters please useLambdaParameterName.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Wrong lexicographical order for 'java.util.Objects' import. Should be before 'java.util.stream.Collectors.toUnmodifiableList'.
    Open

    import java.util.Objects;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Wrong lexicographical order for 'java.util.Optional' import. Should be before 'java.util.stream.Collectors.toUnmodifiableList'.
    Open

    import java.util.Optional;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Extra separation in import group before 'jakarta.xml.bind.annotation.XmlType'
    Open

    import jakarta.xml.bind.annotation.XmlType;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Parameter name 'x' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.
    Open

        public void setX(final int x) {

    Checks that method parameter names conform to a specified pattern.By using accessModifiers property it is possibleto specify different formats for methods at different visibility levels.

    To validate catch parameters please useCatchParameterName.

    To validate lambda parameters please useLambdaParameterName.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    All overloaded methods should be placed next to each other. Placing non-overloaded methods in between overloaded methods with the same type is a violation. Previous overloaded method located at line '34'.
    Open

        private Optional<Property> getProperty(final String propertyName) {

    Checks that overloaded methods are grouped together. Overloaded methods have the samename but different signatures where the signature can differ by the number of inputparameters or type of input parameters or both.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Wrong lexicographical order for 'java.util.List' import. Should be before 'java.util.stream.Collectors.toUnmodifiableList'.
    Open

    import java.util.List;

    Checks that the groups of import declarations appear in the order specifiedby the user. If there is an import but its group is not specified in theconfiguration such an import should be placed at the end of the import list.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    Parameter name 'xExpandToFit' must match pattern '^[a-z][a-z0-9][a-zA-Z0-9]*$'.
    Open

        public void setXExpandToFit(final String xExpandToFit) {

    Checks that method parameter names conform to a specified pattern.By using accessModifiers property it is possibleto specify different formats for methods at different visibility levels.

    To validate catch parameters please useCatchParameterName.

    To validate lambda parameters please useLambdaParameterName.

    This documentation is written and maintained by the Checkstyle community and is covered under the same license as the Checkstyle project.

    There are no issues that match your filters.

    Category
    Status