Package org.drools.planner.core.domain.entity

Examples of org.drools.planner.core.domain.entity.PlanningEntityDescriptor


public class SubChainChangeMoveTest {

    @Test
    public void noTrailing() {
        PlanningEntityDescriptor entityDescriptor = TestdataChainedEntity.buildEntityDescriptor();
        PlanningVariableDescriptor variableDescriptor = entityDescriptor.getPlanningVariableDescriptor("chainedObject");
        ScoreDirector scoreDirector = mock(ScoreDirector.class);

        TestdataChainedAnchor a0 = new TestdataChainedAnchor("a0");
        TestdataChainedEntity a1 = new TestdataChainedEntity("a1", a0);
        TestdataChainedEntity a2 = new TestdataChainedEntity("a2", a1);
View Full Code Here


        SelectorTestUtils.assertChain(b0, b1);
    }

    @Test
    public void oldAndNewTrailing() {
        PlanningEntityDescriptor entityDescriptor = TestdataChainedEntity.buildEntityDescriptor();
        PlanningVariableDescriptor variableDescriptor = entityDescriptor.getPlanningVariableDescriptor("chainedObject");
        ScoreDirector scoreDirector = mock(ScoreDirector.class);

        TestdataChainedAnchor a0 = new TestdataChainedAnchor("a0");
        TestdataChainedEntity a1 = new TestdataChainedEntity("a1", a0);
        TestdataChainedEntity a2 = new TestdataChainedEntity("a2", a1);
View Full Code Here

public class SubChainReversingChangeMoveTest {

    @Test
    public void noTrailing() {
        PlanningEntityDescriptor entityDescriptor = TestdataChainedEntity.buildEntityDescriptor();
        PlanningVariableDescriptor variableDescriptor = entityDescriptor.getPlanningVariableDescriptor("chainedObject");
        ScoreDirector scoreDirector = mock(ScoreDirector.class);

        TestdataChainedAnchor a0 = new TestdataChainedAnchor("a0");
        TestdataChainedEntity a1 = new TestdataChainedEntity("a1", a0);
        TestdataChainedEntity a2 = new TestdataChainedEntity("a2", a1);
View Full Code Here

        SelectorTestUtils.assertChain(b0, b1);
    }

    @Test
    public void noTrailingInPlace() {
        PlanningEntityDescriptor entityDescriptor = TestdataChainedEntity.buildEntityDescriptor();
        PlanningVariableDescriptor variableDescriptor = entityDescriptor.getPlanningVariableDescriptor("chainedObject");
        ScoreDirector scoreDirector = mock(ScoreDirector.class);

        TestdataChainedAnchor a0 = new TestdataChainedAnchor("a0");
        TestdataChainedEntity a1 = new TestdataChainedEntity("a1", a0);
        TestdataChainedEntity a2 = new TestdataChainedEntity("a2", a1);
View Full Code Here

        SelectorTestUtils.assertChain(a0, a1, a2, a3, a4, a5);
    }

    @Test
    public void oldAndNewTrailing() {
        PlanningEntityDescriptor entityDescriptor = TestdataChainedEntity.buildEntityDescriptor();
        PlanningVariableDescriptor variableDescriptor = entityDescriptor.getPlanningVariableDescriptor("chainedObject");
        ScoreDirector scoreDirector = mock(ScoreDirector.class);

        TestdataChainedAnchor a0 = new TestdataChainedAnchor("a0");
        TestdataChainedEntity a1 = new TestdataChainedEntity("a1", a0);
        TestdataChainedEntity a2 = new TestdataChainedEntity("a2", a1);
View Full Code Here

        SelectorTestUtils.assertChain(b0, b1);
    }

    @Test
    public void oldAndNewTrailingInPlace() {
        PlanningEntityDescriptor entityDescriptor = TestdataChainedEntity.buildEntityDescriptor();
        PlanningVariableDescriptor variableDescriptor = entityDescriptor.getPlanningVariableDescriptor("chainedObject");
        ScoreDirector scoreDirector = mock(ScoreDirector.class);

        TestdataChainedAnchor a0 = new TestdataChainedAnchor("a0");
        TestdataChainedEntity a1 = new TestdataChainedEntity("a1", a0);
        TestdataChainedEntity a2 = new TestdataChainedEntity("a2", a1);
View Full Code Here

        List<Object> planningEntityList = solutionDescriptor.getPlanningEntityList(solution);
        for (ListIterator<Object> leftIt = planningEntityList.listIterator(); leftIt.hasNext();) {
            Object leftPlanningEntity = leftIt.next();
            FactHandle leftPlanningEntityFactHandle = solutionDirector.getWorkingMemory()
                    .getFactHandle(leftPlanningEntity);
            PlanningEntityDescriptor leftPlanningEntityDescriptor = solutionDescriptor.getPlanningEntityDescriptor(
                    leftPlanningEntity.getClass());
            Collection<PlanningVariableDescriptor> planningVariableDescriptors
                    = leftPlanningEntityDescriptor.getPlanningVariableDescriptors();
            for (ListIterator<Object> rightIt = planningEntityList.listIterator(leftIt.nextIndex()); rightIt.hasNext();) {
                Object rightPlanningEntity = rightIt.next();
                PlanningEntityDescriptor rightPlanningEntityDescriptor = solutionDescriptor.getPlanningEntityDescriptor(
                        leftPlanningEntity.getClass());
                if (leftPlanningEntityDescriptor.getPlanningEntityClass().equals(
                        rightPlanningEntityDescriptor.getPlanningEntityClass())) {
                    FactHandle rightPlanningEntityFactHandle = solutionDirector.getWorkingMemory()
                            .getFactHandle(rightPlanningEntity);
                    moveList.add(new GenericSwapMove(planningVariableDescriptors,
                            leftPlanningEntity, leftPlanningEntityFactHandle,
                            rightPlanningEntity, rightPlanningEntityFactHandle));
View Full Code Here

        if (planningEntityClassSet == null || planningEntityClassSet.isEmpty()) {
            throw new IllegalArgumentException(
                    "Configure at least 1 <planningEntityClass> in the solver configuration.");
        }
        for (Class<?> planningEntityClass : planningEntityClassSet) {
            PlanningEntityDescriptor planningEntityDescriptor = new PlanningEntityDescriptor(
                    solutionDescriptor, planningEntityClass);
            solutionDescriptor.addPlanningEntityDescriptor(planningEntityDescriptor);
            planningEntityDescriptor.processAnnotations();
        }
        return solutionDescriptor;
    }
View Full Code Here

    public List<Move> createMoveList(Solution solution) {
        List<Move> moveList = new ArrayList<Move>();
        List<Object> globalEntityList = solutionDescriptor.getPlanningEntityList(solution);
        for (Class<?> entityClass : solutionDescriptor.getPlanningEntityImplementationClassSet()) {
            PlanningEntityDescriptor entityDescriptor = solutionDescriptor.getPlanningEntityDescriptor(entityClass);
            Collection<PlanningVariableDescriptor> variableDescriptors = entityDescriptor.getPlanningVariableDescriptors();

            List<List<Object>> swapEntityListList = buildSwapEntityListList(entityClass, variableDescriptors, globalEntityList);

            for (ListIterator<List<Object>> leftIt = swapEntityListList.listIterator(); leftIt.hasNext();) {
                List<Object> leftPlanningEntityList = leftIt.next();
View Full Code Here

    @Override
    public List<Move> createCachedMoveList(Solution solution) {
        List<Move> moveList = new ArrayList<Move>();
        for (Object planningEntity : solutionDescriptor.getPlanningEntityList(solution)) {
            FactHandle planningEntityFactHandle = solutionDirector.getWorkingMemory().getFactHandle(planningEntity);
            PlanningEntityDescriptor planningEntityDescriptor = solutionDescriptor.getPlanningEntityDescriptor(
                    planningEntity.getClass());
            for (PlanningVariableDescriptor planningVariableDescriptor
                    : planningEntityDescriptor.getPlanningVariableDescriptors()) {
                for (Object toPlanningValue : planningVariableDescriptor.extractPlanningValues(
                        solutionDirector.getWorkingSolution(), planningEntity)) {
                    moveList.add(new GenericChangeMove(planningEntity, planningEntityFactHandle,
                            planningVariableDescriptor, toPlanningValue));
                }
View Full Code Here

TOP

Related Classes of org.drools.planner.core.domain.entity.PlanningEntityDescriptor

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.