001 package net.sf.cpsolver.studentsct.model;
002
003 import java.util.Set;
004 import java.util.Vector;
005
006 import net.sf.cpsolver.coursett.model.TimeLocation;
007
008 /**
009 * Time and room assignment. This can be either {@link Section} or {@link FreeTimeRequest}.
010 * <br><br>
011 *
012 * @version
013 * StudentSct 1.1 (Student Sectioning)<br>
014 * Copyright (C) 2007 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 interface Assignment {
033 /** Time assignment */
034 public TimeLocation getTime();
035 /** Room assignment
036 * @return list of {@link net.sf.cpsolver.coursett.model.RoomLocation}
037 */
038 public Vector getRooms();
039 /** Number of rooms in which a section meets */
040 public int getNrRooms();
041
042 /** True, if this assignment is overlapping in time and space with the given assignment. */
043 public boolean isOverlapping(Assignment assignment);
044 /** True, if this assignment is overlapping in time and space with the given set of assignments. */
045 public boolean isOverlapping(Set assignments);
046
047 /** Enrollment with this assignmnet was assigned to a {@link Request}. */
048 public void assigned(Enrollment enrollment);
049 /** Enrollment with this assignmnet was unassigned from a {@link Request}. */
050 public void unassigned(Enrollment enrollment);
051 /** Return the list of assigned enrollments that contains this assignment.*/
052 public Set getEnrollments();
053 }