Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Отдельные классы, описывающие интерфейсы аннотаций #21

Open
nixel2007 opened this issue Dec 4, 2018 · 5 comments
Labels
enhancement New feature or request

Comments

@nixel2007
Copy link
Owner

nixel2007 commented Dec 4, 2018

Нужен некий класс, который позволит описать все поля и допустимые типы полей аннотации, а так же "контракты" - обработчики проверки корректности значений полей аннотации.

Инициализация модели аннотированной сущностью должна выполнять проверку заполнения аннотаций и выдавать внятные исключения при ошибках.

@nixel2007
Copy link
Owner Author

Первое было бы неплохо выполнить в виде отдельной библиотеки.

/cc @khorevaa

@nixel2007 nixel2007 added the enhancement New feature or request label Dec 4, 2018
@khorevaa
Copy link

khorevaa commented Dec 4, 2018

Я на суммонился и не понял задачу. Но готов помочь! Еще бы понять куда копать..

@khorevaa
Copy link

khorevaa commented Dec 4, 2018

Я как понимаю нужна либа - которая по каким-то правилам будет проверять аннотации для объекта? Может этот класс запихнуть в reflector
/cc @nixel2007

@nixel2007
Copy link
Owner Author

@khorevaa да, ты правильно понял.
У меня есть определенные правила для описания сущностей. Примеры:

  • Должна быть одна аннотация Сущность
  • Должна быть одна аннотация Идентификатор
  • Если аннотация Колонка стоит над полем класса, то это поле должно быть экспортным
  • Если в аннотации Колонка свойство "Тип" заполнено как "Ссылка", то должно быть заполнено свойство "ТипСсылки"
  • Значения свойства "Тип" аннотации "Колонка" должны быть строковыми и из определенного допустимого множества (в данном случае - значения модуля-перечисления)
  • Недопустимо дублирование свойств аннотаций
  • Не должно быть лишних свойств аннотаций

и вот в таком духе. я пока не совсем понимаю, как это должно выглядеть, но потребность есть и можно подумать на эту тему.

Первое что приходит в голову - супер-метод а-ля "ПроверитьКорректностьАннотации", который бы передавался рефлектору через делегата/описаниеоповещения/строкой :) но это как-то некрасиво.

@nixel2007
Copy link
Owner Author

т.е. это что-то типа "интерфейса" для аннотации + дополнительные обработчики и проверки.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants