CustomShadowVariable не вызывает методы слушателя в optaplanner java - PullRequest
0 голосов
/ 28 января 2020
    @Getter
    @Setter
    @PlanningEntity
    public class Match {

        private SimpleScore score;
        private int  id;
        @CustomShadowVariable(variableListenerClass = MatchVariableListner.class, sources = @PlanningVariableReference(entityClass = Team.class ,variableName = "match"))
        private List<Team> team;
        private Court court;
        private Date available;

    }

это класс матча

    @Getter
    @Setter
    @PlanningEntity
    public class Team {

        private Grade grade;
        private Court court;
        @PlanningVariable(valueRangeProviderRefs = {"matches"})
        private Match match;
        private Club club;
        private Divison divison ;
        private List<Date> availableDates;
        private String name;
        private String id;
        private List<Sequence> sequence;

    }

это класс команды

    public class MatchVariableListner implements VariableListener<Team> {


        protected void updateMatch(ScoreDirector scoreDirector, Team team) {


            System.out.println("hello");


        }


        @Override
        public void beforeEntityAdded(ScoreDirector scoreDirector, Team team) {


        }

        @Override
        public void afterEntityAdded(ScoreDirector scoreDirector, Team team) {

            updateMatch(scoreDirector,team);
        }

        @Override
        public void beforeVariableChanged(ScoreDirector scoreDirector, Team team) {
            System.out.println("hehhe");

        }

        @Override
        public void afterVariableChanged(ScoreDirector scoreDirector, Team team) {
            updateMatch(scoreDirector,team);
        }

        @Override
        public void beforeEntityRemoved(ScoreDirector scoreDirector, Team team) {
            System.out.println("hehhe");

        }

        @Override
        public void afterEntityRemoved(ScoreDirector scoreDirector, Team team) {
            System.out.println("hehhe");

        }
    }

это список

    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    @PlanningSolution
    public class WSASolution {

        @PlanningEntityCollectionProperty
        List<Team> teams;
        @ProblemFactCollectionProperty
        @ValueRangeProvider(id = "matches")
        List<Match> matches;
        @ProblemFactCollectionProperty
        List<Court> courts;

        public WSASolution(List<Team> teams, List<Match> matches, List<Court> courts) {
            this.teams = teams;
            this.matches = matches;
            this.courts = courts;
        }
        @PlanningScore
        private HardSoftScore score;



    }

это планирование Сущность решения: он работает хорошо, добавляя совпадения в каждую команду, но обратная теневая переменная не вызывает методы слушателя, с помощью которых я хочу выполнить некоторые операции. Но слушатель не получает вызовы переопределенных методов интерфейса. пожалуйста, помогите спасибо заранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...