Java скрипты

Скрипты написаны полностью на языке Java, поэтому могут иметь доступ ко всем ресурсам сервера, на котором запущен AggreGate Server, включая:

  • Любые объекты в оперативной памяти

  • Файловую систему

  • Сетевой и последовательный интерфейсы ввода/вывода

  • Консоли, журналирование и даже графический интерфейс пользователя

  • Многопоточную обработку

Скрипты выполняются в среде JVM, и их права доступа никак не ограничены. Обратитесь к разделу безопасность скриптов для получения подробной информации.

Интерфейс скрипта

Скрипты написаны на языке Java. Каждый скрипт - это отдельный Java класс, который должен реализовать интерфейс Script:

public interface FunctionImplementation
{
DataTable execute(Context con, FunctionDefinition def, CallerController caller, RequestController request, DataTable parameters) throws ContextException;
}

Этот интерфейс объявляет единственный метод execute(), который вызывается  AggreGate Server при выполнении скрипта.

Разработка скриптов

Изучите руководство по программированию, чтобы получить общую информацию о разработке скриптов AggreGate.

Шаблон скрипта

Когда создается новый скрипт, он содержит автоматически сгенерированную заглушку класса реализации интерфейса Скрипта с пустым методом execute(). Ниже представлен текст скрипта по умолчанию:

import com.tibbo.aggregate.common.context.*;
import com.tibbo.aggregate.common.datatable.*;
import com.tibbo.aggregate.common.server.*;
import com.tibbo.linkserver.*;
import com.tibbo.linkserver.context.*;
public class %ScriptClassNamePattern% implements FunctionImplementation
{
public DataTable execute(Context con, FunctionDefinition def, CallerController caller, RequestController request, DataTable parameters) throws ContextException
{
return null;
}
}

Обратите внимание, что %ScriptClassNamePattern% будет заменен автоматически сгенерированным именем Java класса во время компиляции. Не изменяйте эту часть скрипта, чтобы избежать ошибок компиляции.

После того, как вы добавили необходимый код внутрь тела метода execute(), вы можете попробовать выполнить скрипт. Обратите внимание, что скрипт перекомпилируется при каждом выполнении. Система сообщает пользователю о любых ошибках компиляции. Используйте описание действия Выполнить для дополнительной информации.

Пример скрипта

Пример Java скрипта, который меняет IP адрес устройства:

import com.tibbo.aggregate.common.context.CallerController;
import com.tibbo.aggregate.common.context.Context;
import com.tibbo.aggregate.common.context.ContextException;
import com.tibbo.aggregate.common.context.FunctionDefinition;
import com.tibbo.aggregate.common.context.FunctionImplementation;
import com.tibbo.aggregate.common.context.RequestController;
import com.tibbo.aggregate.common.datatable.DataTable;

public class %ScriptClassNamePattern% implements FunctionImplementation
{
public DataTable execute(Context con, FunctionDefinition def, CallerController caller, RequestController request, DataTable parameters) throws ContextException
{
// Getting IP address
DataTable val = con.getVariable("IP_setting", caller);

// Changing IP address
val.rec().setValue("IP_setting", "192.168.1.235");

// Writing new value of variable
con.setVariable("IP_setting", caller, val);

// Rebooting Device Server
con.callFunction("reboot", caller);

return null;
}
}

Was this page helpful?