Package de.timefinder.data.set

Examples of de.timefinder.data.set.RasterCollection


    /**
     * Initialize raster for all events
     */
    public void initAssignments(Collection<Assignment> events) {
        for (Assignment ass : events) {
            RasterCollection combinedRaster = new RasterCollection();
            RasterConstraint rc = ass.getEvent().getConstraint(RasterConstraint.class);
            if (rc != null)
                combinedRaster.add(rc.getRaster().getForbidden());

            EventRaster eventRaster = new EventRasterOneTreeMapImpl(slotsPerWeek);
//            EventRaster eventRaster = new EventRasterTreeMapImpl(slotsPerWeek);
            combinedRaster.add(eventRaster);
            combinedRaster.add(dayRaster);
            rasterMap.put(ass, new RasterEntry(eventRaster, combinedRaster));
        }
    }
View Full Code Here


        int interv[] = getSearchInterval(ass);

        if (interv == null)
            return false;

        RasterCollection raster = conflictMatrix.getConflictingRaster(ass);
        int duration = ass.getEvent().getDuration();

        // doMove() could have become possible, if we moved some events while previous injections!
        for (int startTime = raster.getNextFree(interv[0], duration);
                startTime >= 0 && startTime < interv[1];
                startTime = raster.getNextFree(startTime + 1, duration)) {

            if (doMove(ass, startTime))
                return true;
        }

        // If we will go deeper with injectAt(), the result will always be -1, so we
        // don't need to collect colliding events for this
        if (depth < 1)
            return false;

        // 1. Calculate the colliding events if we would injectAt
        // currentEvent into startTime and save the moved events to stack
        boolean includeEventRaster = false;
        for (int startTime = raster.getNextFree(interv[0], duration, includeEventRaster);
                startTime >= 0 && startTime < interv[1];
                startTime = raster.getNextFree(startTime + 1, duration, includeEventRaster)) {

            if (lastStackSize != stack.size())
                throw new IllegalStateException(" nodes:" + processedNodes
                        + " pointer:" + lastStackSize + " stack.size:" + stack.size() + " " + stack);
View Full Code Here

        matrix.getConflictingRaster(ev1);

        // init raster2 (ev1)
        matrix.getConflictingRaster(ev2);

        RasterCollection coll = matrix.getConflictingRaster(ev2);
        assertEquals(0, coll.getNextFree(0, 1));

        // init raster3 (ev1)
        matrix.getConflictingRaster(ev3);

        coll = matrix.getConflictingRaster(ev3);
        assertEquals(0, coll.getNextFree(0, 1));

        // *** compress ***

        // update raster1 (ev3)
        matrix.add(ev3);

        coll = matrix.getConflictingRaster(ev1);
        assertEquals(1, coll.getNextFree(0, 1));

        coll = matrix.getConflictingRaster(ev3);
        assertEquals(1, coll.getNextFree(1, 1));

        // update raster3 (ev1)
        matrix.add(ev1);
    }
View Full Code Here

TOP

Related Classes of de.timefinder.data.set.RasterCollection

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.