001    package net.sf.cpsolver.studentsct.model;
002    
003    import net.sf.cpsolver.ifs.util.ToolBox;
004    
005    /**
006     * Academic area and code. This class is used for {@link Student#getAcademicAreaClasiffications()}, {@link Student#getMajors()}, and {@link Student#getMinors()}.
007     * <br><br>
008     * 
009     * @version
010     * StudentSct 1.1 (Student Sectioning)<br>
011     * Copyright (C) 2007 Tomáš Müller<br>
012     * <a href="mailto:muller@unitime.org">muller@unitime.org</a><br>
013     * Lazenska 391, 76314 Zlin, Czech Republic<br>
014     * <br>
015     * This library is free software; you can redistribute it and/or
016     * modify it under the terms of the GNU Lesser General Public
017     * License as published by the Free Software Foundation; either
018     * version 2.1 of the License, or (at your option) any later version.
019     * <br><br>
020     * This library is distributed in the hope that it will be useful,
021     * but WITHOUT ANY WARRANTY; without even the implied warranty of
022     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
023     * Lesser General Public License for more details.
024     * <br><br>
025     * You should have received a copy of the GNU Lesser General Public
026     * License along with this library; if not, write to the Free Software
027     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
028     */
029    public class AcademicAreaCode {
030        private String iArea, iCode;
031    
032        /** Constructor
033         * @param area academic area
034         * @param code code
035         */
036        public AcademicAreaCode(String area, String code) {
037            iArea = area; iCode = code;
038        }
039        
040        /** Academic area */
041        public String getArea() {
042            return iArea;
043        }
044        
045        /** Code */
046        public String getCode() {
047            return iCode;
048        }
049        
050        public int hashCode() {
051            return (iArea+":"+iCode).hashCode();
052        }
053        
054        public boolean equals(Object o) {
055            if (o==null || !(o instanceof AcademicAreaCode)) return false;
056            AcademicAreaCode aac = (AcademicAreaCode)o;
057            return ToolBox.equals(aac.getArea(), getArea()) && ToolBox.equals(aac.getCode(), getCode());
058        }
059        
060        public String toString() {
061            return getArea()+":"+getCode();
062        }
063    }