Originally created by: kolgen...@gmail.com
Originally owned by: MEXAHIK3...@gmail.com
Поскольку согласно Moodle API методы создания, получения (и т.д.) объектов различных классов модели оперируют с множествами объектов (Set), то множество должно быть способно различить два одинаковых объекта в случае их добавления и автоматически препятствовать этому (добавить только один объект). Для обеспечения этой способности необходимо в классах-сущностях выполнить переопределение методов equals() и hashCode(). Это удобно выполнить с помощью NetBeans, выбрав из контекстного меню Вставка кода - equals() и hashCode(). Думаю, что для сравнения достаточно указать только id (будем полагаться на Moodle, что он не даст двух одинаковых id при создании двух объектов).
Для примера можно смотреть класс MoodleCategory.
Хорошая статья по этому поводу:
http://info.javarush.ru/Lenchik854/2014/08/15/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0%D0%BC%D0%B8-hashCode-%D0%B8-equals-%D0%B2-%D1%8F%D0%B7%D1%8B%D0%BA%D0%B5-Java-.html
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: kolgen...@gmail.com
ВАЖНО - Использование поля id - неправильное решение. В случае программного создания двух объектов на стороне клиента значения их id не указываются (их задаст сервер), а значит задаются значениями по умолчанию (=0) и поэтому при добавлении в набор (Set) добавляется только одна коллекция, т.к. в случае использования в equals() и hashCode() поля id - они считаются одинаковыми.
Поэтому будем использовать в качестве уникального идентификатора объектов поле name в методах equals() и hashCode().
Класс MoodleCategory я в соответствии с этим уже обновил.
Labels: -Priority-Medium Priority-High
Status: Started
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: MEXAHIK3...@gmail.com
В классе MoodleCategory пропали все коментарии, возможны вы забыли обновить в Нетбинсе, потому что я их точно добавлял.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: kolgen...@gmail.com
ОК. Классы MoodleCategory и MoodleCourse остаются за мной. Я допишу туда комментарии.