001    package net.sf.cpsolver.coursett.preference;
002    
003    /**
004     * Average preference combination.
005     * <br>
006     * <ul>
007     * <li>If at least one preference is required -> required
008     * <li>If at least one preference is prohibited -> prohibited
009     * <li>Otherwise, mean value from the given preferences is returned
010     * </ul>
011     *
012     * @version
013     * CourseTT 1.1 (University Course Timetabling)<br>
014     * Copyright (C) 2006 Tomáš Müller<br>
015     * <a href="mailto:muller@unitime.org">muller@unitime.org</a><br>
016     * Lazenska 391, 76314 Zlin, Czech Republic<br>
017     * <br>
018     * This library is free software; you can redistribute it and/or
019     * modify it under the terms of the GNU Lesser General Public
020     * License as published by the Free Software Foundation; either
021     * version 2.1 of the License, or (at your option) any later version.
022     * <br><br>
023     * This library is distributed in the hope that it will be useful,
024     * but WITHOUT ANY WARRANTY; without even the implied warranty of
025     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
026     * Lesser General Public License for more details.
027     * <br><br>
028     * You should have received a copy of the GNU Lesser General Public
029     * License along with this library; if not, write to the Free Software
030     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
031     */
032    public class AveragePreferenceCombination extends PreferenceCombination {
033        int iPreference = 0;
034        int iCnt = 0;
035        
036        public void addPreferenceInt(int intPref) {
037            super.addPreferenceInt(intPref);
038            iPreference += intPref;
039            iCnt ++;
040        }
041        
042        public int getPreferenceInt() {
043            return Math.round(((float)iPreference)/((float)iCnt));
044        }
045    }