Jクラスレポートの行数について

ソースコードファイル内の単純な行数ではありません。
JクラスレポートではJavaコンパイラの抽象構文木構造をもとにしていますので
以下のコード例はすべて例3と同じ結果(行数)になります。

なお、Jクラスレポートを実行することで、カウント対象のソースコードが例3のように整形・変更されるわけではありません。
カウント対象のソースコードは何も変わりません。
例3は、Jクラスレポートが実行時に抽出する抽象構文木構造をソースコード的に例示したものです。

例1
package sample;
import java.util.Date;
/**
 * 従業員
 * 
 * @author nextdesign
 * @version 1.0
 */
public class Employee {
        /** 名 */
        private String firstName;
        /** 姓 */
        private String lastName;
        /** 入社日 */
        private Date joinedDate;
        /**
         * 姓名を応答する
         * @return 姓名
         */
        public String getFullName() {
                String result = "";
                if (firstName != null && lastName != null) {
                        result = firstName + lastName;
                } else {         <--- 注意 例3のように1行増えます。
                        result = "UNKNOWN";
                }
                return result;
        }
}

例2
package sample;
import java.util.Date;
/**
 * 従業員
 * 
 * @author nextdesign
 * @version 1.0
 */
public class Employee {
        /** 名 */
        private String firstName;
        /** 姓 */
        private String lastName;
        /** 入社日 */
        private Date joinedDate;
        /**
         * 姓名を応答する
         * @return 姓名
         */
        public String getFullName() {
                String result = "";
                if (firstName != null   <-- この行以降に注意 ファイル行数ではなく例3のように解釈されます。
                                && lastName != null) {
                        result = firstName 
                                        + lastName;
                } else { result = "UNKNOWN"; }
                return result;
        }
}

例3
package sample;
import java.util.Date;
/**
 * 従業員
 * 
 * @author nextdesign
 * @version 1.0
 */
public class Employee {
        /** 名 */
        private String firstName;
        /** 姓 */
        private String lastName;
        /** 入社日 */
        private Date joinedDate;
        /**
         * 姓名を応答する
         * @return 姓名
         */
        public String getFullName() {
                String result = "";
                if (firstName != null && lastName != null) {
                        result = firstName + lastName;
                }
                else {          <--- 注意 elseブロックで改行されます。
                        result = "UNKNOWN";
                }
                return result;
        }
}

その他
例4
        @Override
        public boolean equals(Object other){
は
        @Override public boolean equals(Object other){
のように、メソッド宣言内のモディファイアと評価され1行としてカウントされます。

以上