catch up with branch daily
Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF b/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF
index b614a09..0baa7f7 100644
--- a/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.ui.api/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@
org.eclipse.osbp.ui.api.contextfunction;version="0.9.0";uses:="com.vaadin.ui",
org.eclipse.osbp.ui.api.customfields;version="0.9.0";uses:="com.vaadin.server,org.eclipse.e4.core.services.events,com.vaadin.ui",
org.eclipse.osbp.ui.api.datamart;version="0.9.0",
+ org.eclipse.osbp.ui.api.date;version="0.9.0",
org.eclipse.osbp.ui.api.e4;version="0.9.0",
org.eclipse.osbp.ui.api.functionlibrary;version="0.9.0";uses:="org.eclipse.osbp.ui.api.statemachine",
org.eclipse.osbp.ui.api.layout;version="0.9.0",
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java
index c2763de..c4fab0a 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/customfields/IBlobService.java
@@ -197,4 +197,34 @@
* @return the byte array image
*/
byte[] getByteArrayImage(String uuid, int resolutionId);
+
+ /**
+ * Gets the base 64 image.
+ *
+ * @param uuid the uuid
+ * @param resolutionId the resolution id
+ * @return the base 64 image
+ */
+ String getBase64Image(String uuid, int resolutionId);
+
+ /**
+ * Gets the buffered image by name.
+ *
+ * @param name the name
+ * @param resolutionId the resolution id
+ * @param mimeType the mime type
+ * @return the buffered image by name
+ */
+ BufferedImage getBufferedImageByName(String name, int resolutionId, String mimeType);
+
+ /**
+ * Gets the base 64 image by name.
+ *
+ * @param name the name
+ * @param resolutionId the resolution id
+ * @param mimeType the mime type
+ * @return the base 64 image by name
+ */
+ String getBase64ImageByName(String name, int resolutionId, String mimeType);
+
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java
index d190eba..0520fca 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/DatamartFilter.java
@@ -63,6 +63,12 @@
/** hierarchy with multiple values. */
MULTIPLEHIERARCHY,
+
+ /** hierarchy children with single value. */
+ SINGLEHIERARCHYCHILDREN,
+
+ /** hierarchy children with multiple values. */
+ MULTIPLEHIERARCHYCHILDREN,
/** range of two values. */
BETWEEN,
@@ -221,6 +227,9 @@
/** The selected data. */
private List<IDualData> selection;
+
+ /** optional filter. */
+ private boolean optional;
private IDatamartBetweenInput inputComponent;
@@ -240,12 +249,13 @@
* @param name the name
* @param sql the sql
*/
- public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, String name, String sql) {
+ public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, String name, String sql, boolean optional) {
this.dslMetadataService = dslMetadataService;
this.user = user;
this.type = type;
this.name = name;
this.sql = sql;
+ this.setOptional(optional);
data = new ArrayList<>();
selection = new ArrayList<>();
}
@@ -258,7 +268,7 @@
* @param name the name
* @param sql the sql
*/
- public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, Map<String, String> dateFormatMap, String name, String sql) {
+ public DatamartFilter(IDSLMetadataService dslMetadataService, IUser user, FilterType type, Map<String, String> dateFormatMap, String name, String sql, boolean optional) {
this.dslMetadataService = dslMetadataService;
this.user = user;
this.type = type;
@@ -278,6 +288,7 @@
this.format = format;
this.resolution = resolution;
this.sql = sql;
+ this.setOptional(optional);
data = new ArrayList<>();
selection = new ArrayList<>();
}
@@ -300,7 +311,6 @@
return DatamartFilter.decorate(name);
}
-
/**
* Decorate a string to be replaced later by a selected value/list.
*
@@ -419,6 +429,14 @@
return data;
}
+ public boolean isOptional() {
+ return optional;
+ }
+
+ public void setOptional(boolean optional) {
+ this.optional = optional;
+ }
+
/**
* Sets the data.
*
@@ -582,23 +600,10 @@
@SuppressWarnings("unchecked")
public boolean canSelectData(Map<EventDispatcherDataTag, Object> selectedData, boolean single, boolean olap) {
for(EventDispatcherDataTag tag : selectedData.keySet()) {
- switch(tag) {
- case ID:
+ if(tag == EventDispatcherDataTag.ID) {
return false;
- case LIST:
- switch(type) {
- case SINGLE:
- case MULTIPLE:
- return selectData((List<String>)selectedData.get(tag), false);
- case EXCEPT:
- case SINGLESLICER:
- case SINGLEHIERARCHY:
- case MULTIPLESLICER:
- case MULTIPLEHIERARCHY:
- return selectData((List<String>)selectedData.get(tag), true);
- default:
- return false;
- }
+ } else if(tag == EventDispatcherDataTag.LIST) {
+ return selectData((List<String>)selectedData.get(tag));
}
}
return false;
@@ -611,34 +616,47 @@
* @param olap the olap
* @return true, if successful
*/
- private boolean selectData(List<String> selected, boolean olap) {
- boolean first = true;
+ private boolean selectData(List<String> selected) {
+ boolean firstAdd = true;
for(String item:selected) {
- if(!olap) {
+ switch(type) {
+ case SINGLE:
+ case MULTIPLE:
for(IDualData dd : data) {
if(dd.getSelectionValue().equals(item)) {
- if(first) {
+ if(firstAdd) {
+ firstAdd = false;
clearSelectedData();
- first = false;
}
addSelectedItem(dd);
return true;
}
}
- }
- if(olap && !item.contains("[") && !data.isEmpty()) {
- String prefix = data.get(0).getHierarchyWithBrackets()+".";
- String suffix = ".["+item.replace(".", "].[")+"]";
- for(IDualData dd : data) {
- if(dd.getSelectionValue().startsWith(prefix) && dd.getSelectionValue().endsWith(suffix)) {
- if(first) {
- clearSelectedData();
- first = false;
+ break;
+ case EXCEPT:
+ case SINGLESLICER:
+ case MULTIPLESLICER:
+ case SINGLEHIERARCHY:
+ case MULTIPLEHIERARCHY:
+ case SINGLEHIERARCHYCHILDREN:
+ case MULTIPLEHIERARCHYCHILDREN:
+ if(!item.contains("[") && !data.isEmpty()) {
+ String prefix = data.get(0).getHierarchyWithBrackets()+".";
+ String suffix = ".["+item.replace(".", "].[")+"]";
+ for(IDualData dd : data) {
+ if(dd.getSelectionValue().startsWith(prefix) && dd.getSelectionValue().endsWith(suffix)) {
+ if(firstAdd) {
+ firstAdd = false;
+ clearSelectedData();
+ }
+ addSelectedItem(dd);
+ return true;
}
- addSelectedItem(dd);
- return true;
}
}
+ break;
+ default:
+ return false;
}
}
return false;
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
index 27213e3..c95211f 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
@@ -21,9 +21,12 @@
import org.eclipse.osbp.ui.api.user.IUser;
public interface IDataMart {
- enum EType {
+ public enum EType {
BOOLEAN, BOOLEAN_CHECKBOX, DATE, TIME, TIMESTAMP, FLOAT, DOUBLE, BYTE, SHORT, INTEGER, LONG, STRING, RICHTEXTAREA, BLOPMAPPING, LENUM, NONE
}
+ public enum AttributeVisibility {
+ HIDDEN, READONLY
+ }
static final String DATAMART_CLASS_POSTFIX = "Datamart";
static final String DATAMART_SERVICE_POSTFIX = "DatamartService";
@@ -39,6 +42,7 @@
Map<String, String> getAliasMap();
Map<String, EType> getTypesMap();
Map<String, String> getTypesProp();
+ Map<String, AttributeVisibility> getHiddenMap();
List<DatamartPrimary<?>> getPrimaryList();
void computeConditions();
void clearCache();
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/date/SimpleDateFormatter.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/date/SimpleDateFormatter.java
new file mode 100644
index 0000000..0693860
--- /dev/null
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/date/SimpleDateFormatter.java
@@ -0,0 +1,101 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *
+ */
+ package org.eclipse.osbp.ui.api.date;
+
+import java.text.DateFormat;
+import java.util.Locale;
+
+public class SimpleDateFormatter {
+
+ public static DateFormat getFormat(String format, Locale locale) {
+ DateFormat dateFormat = null;
+ if (format.equals("SHORTDATE")) {
+ dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ }
+ if (format.equals("MEDIUMDATE")) {
+ dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
+ }
+ if (format.equals("LONGDATE")) {
+ dateFormat = DateFormat.getDateInstance(DateFormat.LONG, locale);
+ }
+ if (format.equals("FULLDATE")) {
+ dateFormat = DateFormat.getDateInstance(DateFormat.FULL, locale);
+ }
+ if (format.equals("SHORTTIME")) {
+ dateFormat = DateFormat.getTimeInstance(DateFormat.SHORT, locale);
+ }
+ if (format.equals("MEDIUMTIME")) {
+ dateFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);
+ }
+ if (format.equals("LONGTIME")) {
+ dateFormat = DateFormat.getTimeInstance(DateFormat.LONG, locale);
+ }
+ if (format.equals("FULLTIME")) {
+ dateFormat = DateFormat.getTimeInstance(DateFormat.FULL, locale);
+ }
+ if (format.equals("SHORTDATESHORTTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
+ }
+ if (format.equals("SHORTDATEMEDIUMTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, locale);
+ }
+ if (format.equals("SHORTDATELONGTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG, locale);
+ }
+ if (format.equals("SHORTDATEFULLTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.FULL, locale);
+ }
+ if (format.equals("MEDIUMDATESHORTTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, locale);
+ }
+ if (format.equals("MEDIUMDATEMEDIUMTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
+ }
+ if (format.equals("MEDIUMDATELONGTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.LONG, locale);
+ }
+ if (format.equals("MEDIUMDATEFULLTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.FULL, locale);
+ }
+ if (format.equals("LONGDATESHORTTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, locale);
+ }
+ if (format.equals("LONGDATEMEDIUMTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.MEDIUM, locale);
+ }
+ if (format.equals("LONGDATELONGTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
+ }
+ if (format.equals("LONGDATEFULLTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.FULL, locale);
+ }
+ if (format.equals("FULLDATESHORTTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.SHORT, locale);
+ }
+ if (format.equals("FULLDATEMEDIUMTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.MEDIUM, locale);
+ }
+ if (format.equals("FULLDATELONGTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.LONG, locale);
+ }
+ if (format.equals("FULLDATEFULLTIME")) {
+ dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, locale);
+ }
+ dateFormat.setLenient(false);
+ return dateFormat;
+ }
+
+}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java
index 530312f..d77fd8a 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/e4/IE4Dialog.java
@@ -15,5 +15,5 @@
package org.eclipse.osbp.ui.api.e4;
public interface IE4Dialog {
-
+ String getStateLabelUUID();
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java
index 9e34f1f..699831e 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/functionlibrary/IFunctionLibraryService.java
@@ -54,5 +54,6 @@
String methodName, Object... params);
public Set<IStatus> validation(String className, Object clazz, Map<String, Object> properties);
-
+
+ public boolean initialization(String className, String methodName, Object clazz, Map<String, Object> properties);
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java
index 5691c42..c873d22 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/message/MessageEvent.java
@@ -37,5 +37,14 @@
public void setId(String id) {
this.id = id;
}
-
+ public String toString() {
+ StringBuilder str = new StringBuilder();
+ str.append("type ");
+ str.append(type.name());
+ str.append(" : ");
+ str.append("id>");
+ str.append(id);
+ str.append("<");
+ return str.toString();
+ }
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java
index a78ac6f..e19b2f8 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/perspective/IPerspectiveProvider.java
@@ -49,6 +49,12 @@
public static final String DIALOG = "dialog";//$NON-NLS-1$
}
+ public static final class BrowserConstants {
+ private BrowserConstants() {
+ }
+ public static final String URL = "url";//$NON-NLS-1$
+ }
+
public static final class E4Constants {
private E4Constants() {
}
@@ -93,6 +99,15 @@
public static final String TAG_NOT_IN_OPEN_PERSPECTIVE_DIALOG = "not_in_open_perspective_dialog";
}
+
+ public static final class EventDispatcherConstants {
+ private EventDispatcherConstants(){
+ }
+ /**
+ * Name of the key corresponding to the list of accepted senders.
+ */
+ public static final String ACCEPTED_SENDERS = "accepted_senders";
+ }
void openPerspective(String perspectiveId);
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java
index df426aa..ac162b1 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/pos/PenData.java
@@ -21,6 +21,9 @@
private int x;
private int y;
+ public PenData() {
+ }
+
public PenData(int rdy, int sw, int pressure, int x, int y) {
this.rdy = rdy;
this.sw = sw;
@@ -29,6 +32,14 @@
this.rdy = y;
}
+ public PenData(PenData data) {
+ this.rdy = data.getRdy();
+ this.sw = data.getSw();
+ this.pressure = data.getPressure();
+ this.x = data.getX();
+ this.rdy = data.getY();
+ }
+
public int getRdy() {
return rdy;
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java
index 97aa4de..a00a56e 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/report/IReportProvider.java
@@ -70,6 +70,8 @@
}
}
+ void printReportAsPdf(String reportId, IEclipseContext eclipseContext, Map<String, String> filterMap, String printService);
+
void printReportAsPdf(String reportId, IEclipseContext eclipseContext, Map<String, String> filterMap);
InputStream get(String reportId, IEclipseContext eclipseContext, Map<String, String> filterMap);
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java
index bd0337a..cd03d0b 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IBeeper.java
@@ -16,4 +16,5 @@
public interface IBeeper {
void beep(Integer duration, Integer frequency);
+ void playSound(String url);
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java
index 3941553..aa9e643 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/statemachine/IStateMachine.java
@@ -190,4 +190,12 @@
void installKeyEventConsumer(VerticalLayout layout);
void uninstallKeyEventConsumer();
+
+ void blockQueueTaking(boolean block);
+
+ boolean isJavaPosRemote();
+
+ int getRemotePort();
+
+ void setRemotePort(int port);
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java
index a362a6a..fa50e8e 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/themes/EnumCssClass.java
@@ -47,7 +47,10 @@
TABLE_VIEW,
TOPOLOGY_VIEW,
MPARTTOOLBARAREA,
- MPARTTOOLBAR;
+ MPARTTOOLBAR,
+ TOOLBAR_STATE,
+ TOOLBAR_BUTTON,
+ TOOLBAR_STATE_CONTAINER;
public String styleName() {
return toString();
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java
index 9526926..e123b2b 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/user/IUser.java
@@ -235,7 +235,7 @@
interface IColumnUtil {
String getColumnWidth(String key);
String getColumnCollapsed(String key);
- Object[] getVisibleColumns(String key);
+ Map<Object, Integer> getVisibleColumns(String key);
}
}
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java
index bb96905..0f64651 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/IUserAccessService.java
@@ -469,13 +469,6 @@
*/
boolean isSuperuser();
- /**
- * Checks if is supervisor.
- *
- * @return true, if is supervisor
- */
- boolean isSupervisor();
-
void persistProperties(Map<String, Object> properties);
}