package org.joget.plugin.property.model;
import java.util.Map;
/**
* A interface that must be implemented by a plugin to provide admin interface to configure the plugin
*
*/
public interface PropertyEditable {
/**
* Return plugin label. This value will be used when a Resource Bundle
* Message Key "<i>plugin.className</i>.pluginlabel" is not found by getI18nLabel() method.
*
* @return
*/
public String getLabel();
/**
* Return Class Name for the plugin.
* @return
*/
public abstract String getClassName();
/**
* Return the plugin properties options in JSON format.
* @return
*/
public String getPropertyOptions();
/**
* Get plugin properties.
* @return
*/
public Map<String, Object> getProperties();
/**
* Set plugin properties.
* @param properties
*/
public void setProperties(Map<String, Object> properties);
/**
* Get a plugin property value by property key.
*
* @param property
*/
public Object getProperty(String property);
/**
* Get a plugin property value by property key and return in java.lang.String. Non-exist key
* will return an empty string instead of NULL value.
*
* @param property
*/
public String getPropertyString(String property);
/**
* Set a plugin property
*
* @param property A property key
* @param value
*/
public void setProperty(String property, Object value);
}