    001
    002package org.opengion.penguin.math;
    003
    004
    005/**
    006 * HybsGeneticAlgorithmで取り扱うデータ用の実装クラスです。
    007 *
    008 * ある程度標準的に利用できるようにで、名称、属性値(実数)、属性値(文字列)、属性値配列(実数)、属性値配列(文字列)を持ちます。
    009 *
    010 */
    011public class HybsGAObjectImpl implements HybsGAObject {
    012        private String name;            // 名称
    013        private double attr;            // 属性値(実数)
    014        private String attrStr;         // 属性値(文字列)
    015        private double[] attrArray;     // 属性値配列(実数)
    016        private String[] attrStrArray; // 属性値配列(文字列)
    017
    018
    019        /**
    020         * コンストラクタ
    021         * @param name 名称
    022         * @param attr 属性値（実数）
    023         */
    024        public HybsGAObjectImpl (final String name, final double attr){
    025                this( name, attr, null, null,null);
    026        }
    027
    028        /**
    029         * コンストラクタ
    030         * @param name 名称
    031         * @param attr 属性値（実数）
    032         * @param attrArray  属性値配列（実数）
    033         */
    034        public HybsGAObjectImpl (final String name, final double attr, final double[] attrArray){
    035                this( name, attr, null, attrArray, null);
    036        }
    037
    038        /**
    039         * コンストラクタ
    040         * @param name 名称
    041         * @param attr 属性値（実数）
    042         * @param attrStr 属性値(文字)
    043         * @param attrArray  属性値配列（実数）
    044         */
    045        public HybsGAObjectImpl (final String name, final double attr, final String attrStr, final double[] attrArray){
    046                this( name, attr, null, attrArray, null);
    047        }
    048
    049        /**
    050         * コンストラクタ
    051         * @param name 名称
    052         * @param attr 属性値（実数）
    053         * @param attrStr 属性値(文字)
    054         * @param attrStrArray 属性値配列(文字)
    055         */
    056        public HybsGAObjectImpl (final String name, final double attr, final String attrStr, final String[] attrStrArray){
    057                this( name, attr, null, null, attrStrArray);
    058        }
    059
    060        /**
    061         * コンストラクタ
    062         * @param name 名称
    063         * @param attr 属性値（実数）
    064         * @param attrStr 属性値(文字)
    065         * @param attrArray  属性値配列（実数）
    066         * @param attrStrArray 属性値配列(文字)
    067         */
    068        public HybsGAObjectImpl (final String name, final double attr, final String attrStr, final double[] attrArray, final String[] attrStrArray){
    069                this.name = name;
    070                this.attr = attr;
    071                this.attrStr = attrStr;
    072                this.attrArray = attrArray;
    073                this.attrStrArray = attrStrArray;
    074        }
    075
    076        // インタフェイスによる必須メソッド
    077        /**
    078         * フィットネス用に利用する値
    079         * 属性値(実数)を返す
    080         */
    081        public double getFitness(){
    082                return attr;
    083        }
    084
    085        /**
    086         * 文字列表現
    087         * [名称]([属性値(実数)])
    088         */
    089        public String toString(){
    090                return name + "(" + attr + ")";
    091        }
    092
    093        /**
    094         * 名称セット
    095         * @param name 名称
    096         */
    097        public void setName (final  String name ){
    098                this.name = name;
    099        }
    100
    101        /**
    102         * 名称取得
    103         * @return 名称
    104         */
    105        public String getName (){
    106                return this.name;
    107        }
    108
    109        /**
    110         * 属性値セット
    111         * @param attr 属性値
    112         */
    113        public void setAttr (final  double attr ){
    114                this.attr = attr;
    115        }
    116
    117        /**
    118         * 属性値取得
    119         * @return 属性値（数値）
    120         */
    121        public double getAttr (){
    122                return this.attr;
    123        }
    124
    125        /**
    126         * 属性値(文字)セット
    127         * @param attrStr 属性値（文字）
    128         */
    129        public void setAttrStr (final  String attrStr ){
    130                this.attrStr = attrStr;
    131        }
    132
    133        /**
    134         * 属性値（文字）取得
    135         * @return 属性値(文字)
    136         */
    137        public String getAttrStr (){
    138                return this.attrStr;
    139        }
    140
    141        /**
    142         * 属性値配列セット
    143         * @param attrArray 属性値配列
    144         */
    145        public void setAttrArray (final  double[] attrArray ){
    146                this.attrArray = attrArray;
    147        }
    148
    149        /**
    150         * 属性値配列取得
    151         * @return 属性値配列
    152         */
    153        public double[] getAttrArray (){
    154                return this.attrArray;
    155        }
    156
    157        /**
    158         * 属性値配列（文字）セット
    159         * @param attrStrArray 属性値配列(文字)
    160         */
    161        public void setAttrStrArray (final  String[] attrStrArray ){
    162                this.attrStrArray = attrStrArray;
    163        }
    164
    165        /**
    166         * 属性値配列(文字）取得
    167         * @return 属性値配列（文字）
    168         */
    169        public String[] getAttrStrArray (){
    170                return this.attrStrArray;
    171        }
    172}