Код конечно адовый.
Зачем ты вызываешь методы для доступа к приватным полям внутри класса?
А ещё там есть одна длиииинная строка, в которой намешано куча тернарных операторов. Не надо так
Лучше нормальные условия задействовать, так хотябы читать можно будет.
Дальше лень разбираться, какой-то треш происходит, который не поддаётся логике.
Такое ощущение, что ты используешь классы ради классов.