Skip to content

Commit

Permalink
Замена &ВремениИнициализации на &Спецификация
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Sep 30, 2023
1 parent 65eca74 commit 811b9b6
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 24 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
&Аннотация("Заготовка")
&ВремениИнициализации
&Спецификация("Инициализация")
Процедура ПриСозданииОбъекта(Значение = "")

КонецПроцедуры
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Перем _Значение;

Функция Значение() Экспорт
Возврат _Значение;
КонецФункции

&Аннотация("Спецификация")
Процедура ПриСозданииОбъекта(Значение)

Если Значение = Неопределено Тогда
_Значение = "Выполнение";
Иначе
_Значение = Значение;
КонецЕсли;

Если СостоянияПриложения.Значения().Найти(_Значение) = Неопределено Тогда
ТекстСообщения = СтрШаблон(
"Неверное значение спецификации %1",
_Значение
);

ВызватьИсключение ТекстСообщения;
КонецЕсли;

КонецПроцедуры
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
&Завязь
&ВремениИнициализации
&Спецификация("Инициализация")
Функция РазворачивательАннотаций(&Пластилин Поделка) Экспорт
Рефлектор = Новый Рефлектор();
КонтейнерАннотаций = Рефлектор.ПолучитьСвойство(Поделка, "КонтейнерАннотаций");
Expand All @@ -8,6 +8,6 @@
КонецФункции

&Дуб
&ВремениИнициализации
&Спецификация("Инициализация")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
28 changes: 19 additions & 9 deletions src/internal/Классы/ФабрикаЖелудей.os
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,12 @@
Прозвища = ПрочитатьПрозвища(Аннотации, ИмяЖелудяЗавязи);
Порядок = ПрочитатьПорядок(Аннотации);
Верховный = ПрочитатьПризнакВерховногоЖелудя(Аннотации);
ВремениИнициализации = ПрочитатьПризнакВремениИнициализации(Аннотации);
Спецификация = ПрочитатьСпецификацию(Аннотации);

Если ВремениИнициализации И НЕ ОпределениеЖелудя.ВремениИнициализации() Тогда
Если Спецификация = СостоянияПриложения.Инициализация()
И НЕ ОпределениеЖелудя.Спецификация() = СостоянияПриложения.Инициализация() Тогда
ТекстСообщения = СтрШаблон(
"Дуб %1 имеет завязь %2, которая имеет признак времени инициализации, но сам дуб не имеет этого признака.",
"Дуб %1 имеет завязь %2, которая имеет &Спецификацию ""Инициализация"", но сам дуб не имеет этой спецификации.",
ОпределениеЖелудя.Имя(),
МетодЗавязи.Имя
);
Expand All @@ -148,7 +149,7 @@
Прозвища,
Порядок,
Верховный,
ВремениИнициализации
Спецификация
);
СохранитьОпределениеЖелудя(ОпределениеЗавязи);

Expand Down Expand Up @@ -266,7 +267,7 @@
ИндексНапильника = ИнициализируемыеНапильники.Найти(ОпределениеЖелудя.Имя());
ИнициализируемыеНапильники.Удалить(ИндексНапильника);
Иначе
Если НЕ ОпределениеЖелудя.ВремениИнициализации() Тогда
Если НЕ ОпределениеЖелудя.Спецификация() = СостоянияПриложения.Инициализация() Тогда
Для Каждого ОпределениеНапильника Из ОпределенияНапильников Цикл

Если ОпределениеНапильника.Имя() = ОпределениеЖелудя.Имя() Тогда
Expand Down Expand Up @@ -376,7 +377,7 @@
Прозвища = ПрочитатьПрозвища(Аннотации, ИмяЖелудя);
Порядок = ПрочитатьПорядок(Аннотации);
Верховный = ПрочитатьПризнакВерховногоЖелудя(Аннотации);
ВремениИнициализации = ПрочитатьПризнакВремениИнициализации(Аннотации);
Спецификация = ПрочитатьСпецификацию(Аннотации);

ОпределениеЖелудя = Новый ОпределениеЖелудя(
РазворачивательАннотаций,
Expand All @@ -388,7 +389,7 @@
Прозвища,
Порядок,
Верховный,
ВремениИнициализации
Спецификация
);

Возврат ОпределениеЖелудя;
Expand Down Expand Up @@ -515,11 +516,20 @@
КонецФункции

Функция ПрочитатьПризнакВерховногоЖелудя(Аннотации)

Возврат РаботаСАннотациями.НайтиАннотацию(Аннотации, "Верховный") <> Неопределено;

КонецФункции

Функция ПрочитатьПризнакВремениИнициализации(Аннотации)
Возврат РаботаСАннотациями.НайтиАннотацию(Аннотации, "ВремениИнициализации") <> Неопределено;
Функция ПрочитатьСпецификацию(Аннотации)

Аннотация = РаботаСАннотациями.НайтиАннотацию(Аннотации, "Спецификация");

ОпределениеАннотации = Поделка.ПолучитьОпределениеАннотации("Спецификация");
ОбъектАннотации = ОпределениеАннотации.СоздатьОбъектАннотации(Аннотация);

Возврат ОбъектАннотации.Значение();

КонецФункции

Процедура ДобавитьОпределениеНапильника(ОпределениеНапильника, Системный = Ложь)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,20 @@
Перем Значения;

Функция Инициализация() Экспорт
Возврат "Инициализация";
КонецФункции

Функция Выполнение() Экспорт
Возврат "Выполнение";
КонецФункции

Функция Значения() Экспорт
Возврат Значения;
КонецФункции

Значения = Новый Массив;

Значения.Добавить(Инициализация());
Значения.Добавить(Выполнение());

Значения = Новый ФиксированныйМассив(Значения);
15 changes: 8 additions & 7 deletions src/Классы/ОпределениеЖелудя.os
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#Использовать "../internal"
#Использовать annotations
#Использовать asserts

Expand All @@ -9,7 +10,7 @@
Перем _Прозвища;
Перем _Верховный;
Перем _Порядок;
Перем _ВремениИнициализации;
Перем _Спецификация;
Перем _РефлекторОбъекта;
Перем _РазворачивательАннотаций;

Expand Down Expand Up @@ -57,8 +58,8 @@
Возврат _Верховный;
КонецФункции

Функция ВремениИнициализации() Экспорт
Возврат _ВремениИнициализации;
Функция Спецификация() Экспорт
Возврат _Спецификация;
КонецФункции

Функция Свойства() Экспорт
Expand Down Expand Up @@ -97,7 +98,7 @@
Прозвища,
Порядок,
Верховный,
ВремениИнициализации
Спецификация
)
Ожидаем.Что(РазворачивательАннотаций).ИмеетТип("РазворачивательАннотаций");
Ожидаем.Что(ТипЖелудя).ИмеетТип("Тип");
Expand All @@ -110,9 +111,9 @@
Ожидаем.Что(Прозвища.Количество()).Больше(0);
Ожидаем.Что(Порядок).ИмеетТип("Число");
Ожидаем.Что(Верховный).ИмеетТип("Булево");
Ожидаем.Что(ВремениИнициализации).ИмеетТип("Булево");
Ожидаем.Что(Спецификация).ИмеетТип("Строка");

Если ВремениИнициализации Тогда
Если Спецификация = СостоянияПриложения.Инициализация() Тогда
ТекстСообщения = СтрШаблон(
"К желудю времени инициализации %1 можно прилеплять только детальки.",
Имя
Expand All @@ -132,7 +133,7 @@
_Прозвища = Прозвища;
_Порядок = Порядок;
_Верховный = Верховный;
_ВремениИнициализации = ВремениИнициализации;
_Спецификация = Спецификация;

_РазворачивательАннотаций = РазворачивательАннотаций;
_РефлекторОбъекта = Новый РефлекторОбъекта(ТипЖелудя);
Expand Down
4 changes: 2 additions & 2 deletions src/Классы/Поделка.os
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
ВызватьИсключение СтрШаблон("Не удалось получить определение Желудя по имени Желудя %1", Имя);
КонецЕсли;

Если НЕ ОпределениеЖелудя.ВремениИнициализации() Тогда
Если НЕ ОпределениеЖелудя.Спецификация() = СостоянияПриложения.Инициализация() Тогда
ПроверитьСостояниеВыполнение();

Если НЕ НапильникиБылиПроинициализированы Тогда
Expand Down Expand Up @@ -355,7 +355,7 @@
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияПрозвище"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияВерховный"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияХарактер"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияВремениИнициализации"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияСпецификация"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияПластилин"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияДеталька"));
КонтейнерАннотаций.ДобавитьАннотацию(Тип("АннотацияБлестяшка"));
Expand Down

0 comments on commit 811b9b6

Please sign in to comment.