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

В коде пропишите строку импорта типов из внешней сборки в одном из следующих форматов:
import foresight.<имя сборки>.*; //Импорт содержимого указанной сборки
import foresight.<имя сборки>.<имя типа>.*; //Импорт содержимого указанного класса/интерфейса
Для использования в Java при создании внешних сборок происходит специальное преобразование системных классов, интерфейсов, перечислений и других типов. Поэтому при создании кода на Java с использованием ресурсов «Форсайт. Аналитическая платформа» необходимо учитывать следующие изменения:
Все методы имеют два варианта вызова:
<имя метода>(<параметры>, Object [] objects). В таком варианте objects - это массив, в первый элемент которого сохраняется результат вызова метода;
do<имя метода>([<параметры>]). В таком варианте результат находится в возвращаемом значении. Рекомендуется использовать данный вариант.
Свойствам сопоставлены методы в следующих форматах:
get<имя свойства>([<параметры>]) и set<имя свойства>([<параметры>]). Get - получает, а Set - устанавливает значение свойства;
get_<имя свойства>([<параметры>], Object [] objects) и put_<имя свойства>(<значение>). Get возвращает значение свойства в первый элемент массива, а Put устанавливает значение и возвращается код ошибки, если установка не удалась.
К именам классов добавлена буква C, например: классу MetabaseManagerFactory в Fore соответствует CMetabaseManagerFactory в Java.
Для создания объекта нужно класса используется конструкция <Имя класса>.Create() или <Имя класса>.Create<имя интерфейса>() без ключевого слова new.
Обращение к элементам перечислений осуществляется стандартным образом <Имя перечисления>.<Имя элемента перечисления>. Если нужно привести элемент перечисления к целочисленному типу, то необходимо использовать метод swigValue().
Для приведения типов необходимо создавать объект нужного типа через 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());
}
}
См. также: