Статьи

Управляйте своим программным приложением с помощью C³

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

Приложение может рассматриваться как черный ящик, созданный «кодером» и используемый «пользователем». Их потребности разные. Кодер хочет написать простейшую программу, которая отображает запрошенные функции. Пользователь хочет иметь возможность легко настроить приложение и иметь доступ к достойной документации. В этой статье используется очень простой пример, известное приложение «HelloWorld», функциональность которого заключается в том, чтобы просто выполнять поздравления. Давайте вместе посмотрим, что C3 может обеспечить для такого применения.

 

 Класс приложения предоставляет следующие функции:

— конечный автомат приложения: программный кодер может использовать простой конечный автомат приложения C³. Давайте начнем с двух состояний: «Работает» и «Закрыто». Подклассируя абстрактный класс Application, компилятор заставит вас реализовать события. Во время выполнения ваши события будут вызываться перед каждым изменением состояния,

— свойство приложения: приложение должно конфигурироваться пользователем программного обеспечения с использованием свойств Java (другой тип конфигурации может быть добавлен в будущей версии). Аннотация под названием @AppProperty обрабатывает эту функциональность просто декларативным образом, а C³ выполняет всю работу за вас.

— общая справка по автоматически документированному механизму: не нужно добавлять код для отображения названия приложения, информации «о» и свойств. C³ автоматически обнаруживает все функции приложения и отображает их, когда пользователь программного обеспечения добавляет параметр «-help» в команду запуска программного обеспечения.

 

 

 

 

Аннотация заявки

C³ предоставляет механизм аннотации приложения, в котором можно установить версию и добавить текст «о программе». Эта информация будет доступна пользователю программного обеспечения.

 

@AppInformation (version="1.0", about="This a Hello world application with C³")
public class HelloWorldApplication extends Application {
}

 

Конечный автомат

 В нашем простом примере C³ предоставляет конечный автомат приложения только с двумя состояниями: «Работает» и «Закрыт». Непосредственно перед достижением одного из двух состояний C³ уведомит вас соответствующим событием: notifyApplicationToBeRun или notifyApplicationToBeClosed.
Первое событие вызывается, когда все свойства AppProperties готовы, и когда создаются компоненты. Будущая статья будет посвящена компонентам. По сути, это событие должно использоваться для настройки и запуска вашего приложения.
Второе событие вызывается, когда приложение остановлено. C³ обнаруживает, что ваша заявка закрывается, и уведомляет об этом. Событие можно использовать для правильного закрытия ресурсов, таких как сокет, база данных, файл и т. Д.

 

@AppInformation (version="1.0", about="This a Hello world application with C³")
public class HelloWorldApplication extends Application {
    @Override
    public void notifyApplicationToBeRun(String applicationDescrition, String componentsDescription) {
        System.out.println("Application started");
    }
    @Override
    public void notifyApplicationToBeClosed() {
        System.out.println("bye bye, application closed");
    }
}

 

AppProperty аннотация

Язык Java предоставляет системное свойство, которое можно установить либо в командной строке Java с префиксом «-D», либо путем загрузки файла свойств. Свойство — это пара ключ / значение, где каждое значение доступно через связанный ключ.

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

@AppProperty
String name = "World";

Приведенный выше фрагмент кода можно прочитать так: это свойство называется «name», а его значением по умолчанию является «world». Автоматически системное свойство «name» доступно для настройки вашего приложения.

Минимальное и максимальное значение могут быть добавлены для некоторых числовых свойств

@AppProperty(comment = "primitive value", min = 3, max = 7)
int intValue1 = 5;

Поддерживаемые типы элементов приложения перечислены в следующей таблице:

 

Дополнительные типы могут быть легко добавлены путем реализации универсального интерфейса ObjectFactoryFromStringValue, который должен возвращать определенный универсальный тип из строки. Когда фабрика написана, просто добавьте ее с помощью следующего метода при создании приложения.

public void addNewObjectFactory(Class objectFactoryType, ObjectFactoryFromStringValue factory)

 

 

 

Командная строка приложения

C³ предоставляет параметры команды по умолчанию, такие как ключевое слово «-help», «-h», «–help» или «–h». При вызове с одним из этих параметров C³ записывает в системный вывод:

  • название приложения,
  • «О» информации,
  • версия приложения
  • список свойств, с их типами.

You can either use your own code typed from the samples or download the ready to use classes

At http://c3.capcaval.org/download.html download :

  • C3.jar
  • HelloWorldApplication.zip

Unzip the file, and go inside the root directory. You need to run with a Java7 jre. After launch the following command line :

java -cp .:./c3.jar c3sample.HelloWorldApplication

 with the following result

Application started
Hello World!
bye bye, application closed

line 1 : application first state
line 2 : greetings with the default value
line 3 : application last state

In order to know the available application properties used the -help parameter as follows :

**************************************************************************
Application Name : HelloWorldApplication
Version : 1.0
About : This a Hello world application with C³
-----------------------------------------------------------------------
The available properties are :
    name
    comment : Application which salute anyone.
    type : String
**************************************************************************

line 2 : application name
line 3 : application version
line 4 : application information
line 7-9 : description of the “name” property

 

Configure your application

Of course the default value, “world” in our case can be changed by using the “name” property. Just type the following command line:

java -cp .:./c3.jar -Dname="Uzy" c3sample.HelloWorldApplication

The result should be :

Application started
Hello Uzy!
bye bye, application closed

line 1 : application first state
line 2 : greetings with the configured value
line 3 : application last state

The original article is available at «http://miksblog.capcaval.org/2012/01/control-your-software-application-with_c3/«.you can also download the pdf version, here.
Thanks to Laurent, Yannick and Olivier for their review.