Работа в Java

Язык Java является кросс-платформенным языком программирования. Так как язык Fore.NET разрабатывался для взаимодействия с .NET Framework, то это не позволяет в полной мере использовать ресурсы платформы при разработке на Java. Для взаимодействия с Java в «Форсайт. Аналитическая платформа» был создан специальный набор внешних библиотек. Данные библиотеки позволяют работать с ядром «Форсайт. Аналитическая платформа». В Java не поддерживается работа с формами (Fore/Fore.NET), компонентами или диалоговыми окнами, доступными в «Форсайт. Аналитическая платформа». Для создания визуальной части необходимо использовать ресурсы самого языка Java.

Подключение сборок

Для подключения внешней сборки зайдите в структуру разрабатываемого Java-проекта, перейдите на вкладку «Modules», нажмите кнопку и выберите команду «Library > Java». В открывшемся диалоге перейдите в папку с установленным продуктом «Форсайт. Аналитическая платформа» и выберите jar-файл с внешней сборкой, которая соответствует требуемой Fore-сборке. Подтвердите выбор в окне конфигурации сборки. В окне структуры проекта установите флажки напротив добавленной сборки и нажмите кнопку «Apply». После этого ресурсы добавленной внешней сборки доступны для использования в коде на Java.

В коде пропишите строку импорта типов из внешней сборки в одном из следующих форматов:

import foresight.<имя сборки>.*; //Импорт содержимого указанной сборки
import foresight.<имя сборки>.<имя типа>.*; //Импорт содержимого указанного класса/интерфейса

Преобразование кода

При создании внешних сборок для использования в Java происходит специальное преобразование системных классов, интерфейсов, перечислений и других типов. Поэтому при создании кода на Java с использованием ресурсов «Форсайт. Аналитическая платформа» необходимо учитывать следующие изменения:

  1. Все методы имеют два варианта вызова:

  2. Свойствам сопоставлены методы в следующих форматах:

  3. К именам классов добавлена буква C, например: классу MetabaseManagerFactory в Fore соответствует CMetabaseManagerFactory в Java.

  4. Для создания объекта нужно класса используется конструкция <Имя класса>.Create() или <Имя класса>.Create<имя интерфейса>() без ключевого слова new.

  5. Обращение к элементам перечислений осуществляется стандартным образом <Имя перечисления>.<Имя элемента перечисления>. Если нужно привести элемент перечисления к целочисленному типу, то необходимо использовать метод swigValue().

  6. Для приведения типов необходимо создавать объект нужного типа через new и передавать имеющийся объект как параметр, например:

ICredentials creds;
...
IPasswordCredentials pswdCreds = new IPasswordCredentials(creds);

Пример

Пример подключения к репозиторию в коде на Java:

import foresight.metabase.*; //Импорт содержимого всей сборки
 
public class Main {
    public static void main(String[] args) {
        IMetabaseManager mbMan = CMetabaseManagerFactory.Create().getActive();
        IMetabaseDefinitions mbDefs = mbMan.getDefinitions();
        mbDefs.ReadFromRegistry();
        IMetabaseDefinition mbDef = mbDefs.doFindById("FPRepository");
        ISecurityPackage pack = mbDef.getSecurityPack();
        ICredentials creds = pack.doCreateCredentials(AuthenticationMode.amPassword);
        IPasswordCredentials pswdCreds = new IPasswordCredentials(creds);
        pswdCreds.put_UserName("user");
        pswdCreds.put_Password("password");
        IMetabase mb = mbDef.doOpenDefault(pswdCreds);
        // Выведем наименование репозитория
        System.out.println(mb.getName());
    }
}

См. также:

Использование ресурсов продукта в сторонних приложениях