Package de.timefinder.data

Examples of de.timefinder.data.Event


        int old = ass.getStart();
        if (old >= 0)
            throw new IllegalStateException(ass + " was unassigned; " + startTimeNew);

        ass.setStart(startTimeNew);
        Event ev = ass.getEvent();
        List matrixList = new ArrayList();
        Object oldMatrix;
        if (ev.getDuration() == 1) {
            oldMatrix = clusterArray.get(startTimeNew).assign(ass);
            if (oldMatrix == null) {
                ass.setStart(old);
                return null;
            }
View Full Code Here


    // TODO code duplication: very similar to add(Assignment)
    void rollbackRemove(Assignment ass, List undoData, int startOld) {
        if (startOld < 0) {
            invalidAssignments.add(ass);
        } else {
            Event ev = ass.getEvent();
            int end = startOld + ev.getDuration();
            int ii = 0;
            for (int slot = startOld; slot < end; slot++, ii++) {
                clusterArray.get(slot).rollbackRemove(ass, undoData.get(ii));
            }
            conflictMatrix.add(ass);
View Full Code Here

        for (Entry<Person, Set<Assignment>> entry : allPersons.entrySet()) {
            TreeMap<Integer, Event> indexRaster = new TreeMap<Integer, Event>();
            for (Assignment ass : entry.getValue()) {
                if (ass.getStart() >= 0) {
                    assert ass.getStart() >= 0 : ass;
                    Event ret = indexRaster.put(ass.getStart(), ass.getEvent());
                    assert ret == null : "Should not overwrite event:" + ret + " at " + ass.getStart() + " with " + ass.getEvent();
                }
            }

            // The next call will change the problem map
View Full Code Here

            }

            evNumber = evCounter++;
            assToNumber.put(ass, evNumber);

            Event event = ass.getEvent();
            algo.addEvent(evNumber, event.getDuration());

            // TODO NOW avoid that an event would have been assigned to two days

            for (Person person : event.getPersons()) {
                Integer pNo = personToInteger.get(person);
                if (pNo == null) {
                    pNo = pCounter++;
                    personToInteger.put(person, pNo);
                }

                algo.addResourceTo(pNo, evNumber);
            }

            // add a weight to each allowed slot (=> trees get the multiple weight -> this does not matter)
            RasterConstraint rasterC = event.getConstraint(RasterConstraint.class);
            BitRaster raster = rasterC.getRaster().getForbidden();
            int duration = event.getDuration();
            for (int slot = raster.getNextFree(0, duration);
                    slot >= 0 && slot < slotsPerWeek;
                    slot = raster.getNextFree(slot + 1, duration)) {
                algo.incSlotWeight(evNumber, slot, 1);// event.getPersons().size());
            }
View Full Code Here

//        }
        return true;
    }

    Location getPossibleLocation(Assignment ass) {
        Event ev = ass.getEvent();
        int visitors = ev.getPersonsMap().size();
        Collection<? extends Feature> features = ev.getFeatures();
        //FeatureSet features = event.getSubject().getFeatureSet();

        // TODO forceAssignment the event to the best suited room,
        // if more than one room is available or shuffle list!
        for (Location loc : getAvailableLocations()) {
View Full Code Here

        return column;
    }

    final float createEntry(Location room, Assignment ass) {
        Event ev = ass.getEvent();
        float value = room.getCapacity() - ev.getPersonsMap().size();
        if (value >= 0) {
            if (room.getFeatures().containsAll(ev.getFeatures()))
                value += room.getFeatures().size() - ev.getFeatures().size();
            else
                value = Float.MAX_VALUE;
        } else
            value = Float.MAX_VALUE;
View Full Code Here

                    continue;
                }

                List<Event> events4CoursesInCos = getEvents(courseRef);
                for (RepeatingAppointment ra : cs.getRepeatingAppointment()) {
                    Event event = new Event();
                    event.setName(course.getName());
                    event.setStart(ra.getStartHour().intValue() - hourOffset);
                    if (ra.getDuration().intValue() > 0)
                        event.setDuration(ra.getDuration().intValue());
                    else
                        logger.fatal("Duration is not positive in event of courseSection " + cs.getCourseRef());

                    if (ra.getLocationRef() != null)
                        event.setLocation(getOrCreateLocation(ra.getLocationRef()));

                    events4CoursesInCos.add(event);
                    teacher.addEvent(event, Role.TEACHER, true);
                    eDao.attach(event);
                }
View Full Code Here

    @Test
    public void testGetViolations() {
        settings.setTimeslotsPerDay(4);
        settings.setNumberOfDays(5);
        Event ev1 = new Event(0, 2);
        Event ev2 = new Event(0, 2);
        Event ev3 = new Event(4, 1);

        List<Event> list = new ArrayList<Event>();
        list.add(ev1);
        list.add(ev2);
        list.add(ev3);
View Full Code Here

        when(list.get(0)).thenReturn("two");
        assertEquals("two", list.get(0));

        BitRaster mockedRaster = mock(BitRaster.class);
        WeekRaster weekRaster = mock(WeekRaster.class);
        Event ev = newEvent(0, 2);

        when(mockedRaster.isAssigned(0)).thenReturn(true);
        when(mockedRaster.isAssigned(1)).thenReturn(true);
       
        when(weekRaster.getForbidden()).thenReturn(mockedRaster);
View Full Code Here

        repaint();
    }

    public boolean addObject(Object obj) {
        if (obj instanceof Event) {
            Event ev = (Event) obj;
            if (ev.getStart() < 0)
                addTask(settings.toTask(ev));
            else
                addInterval(settings.toIntervalLong(ev));
        } else if (obj instanceof IntervalInt) {
            IntervalInt i = (IntervalInt) obj;
View Full Code Here

TOP

Related Classes of de.timefinder.data.Event

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.