Creación de su propio adaptador de numeración de versiones
El adaptador de numeración de versiones (Version Number Adapter) es usado por la aplicación para establecer la lógica que controla el número de versión del documento cada vez que este se actualiza.
Puede crear su propio adaptador de numeración de versiones.
Condiciones:
- La nueva clase Form Validator debe implementar la interfaz “VersionNumerationAdapter”.
- La nueva clase Form Validator debe declararse bajo el paquete “com.openkm.plugin.vernum”.
- La nueva clase Form Validator debe estar anotada con “@PluginImplementation”.
- La nueva clase Form Validator debe extender “BasePlugin”.
Interfaz Version Number Adapter:
package com.openkm.plugin.vernum;
import com.openkm.db.bean.NodeVersion;import net.xeoh.plugins.base.Plugin;
public interface VersionNumerationAdapter extends Plugin {
int INCREASE_DEFAULT = 0; int INCREASE_MINOR = 1; int INCREASE_MAJOR = 2; int INCREASE_MAJOR_MINOR = 3;
String qs = "from NodeVersion nv where nv.parent=:parent and nv.name=:name";
String getInitialVersionNumber();
int getVersionNumberIncrement();
String getNextVersionNumber(NodeVersion nVer, int increment);}La nueva clase debe cargarse dentro del paquete com.openkm.plugin.vernum porque el sistema de plugins de la aplicación intentará cargarla desde ahí.
Descripción de los métodos
Sección titulada «Descripción de los métodos»| Method | Type | Description |
|---|---|---|
| getInitialVersionNumber() | String | Devuelve la primera versión de un documento nuevo. La primera versión suele ser “1.0”. |
| getVersionNumberIncrement() | int | Devuelve un número que indica las opciones de incremento disponibles. Valores disponibles: - VersionNumerationAdapter.INCREASE_DEFAULT - VersionNumerationAdapter.INCREASE_MINOR - VersionNumerationAdapter.INCREASE_MAJOR - VersionNumerationAdapter.INCREASE_MAJOR_MINOR INCREASE_NONE: No muestra ninguna opción; incrementa por defecto. INCREASE_MINOR: Solo muestra la opción de incrementar la versión menor; si no se selecciona, incrementa por defecto. INCREASE_MAJOR: Solo muestra la opción de incrementar la versión mayor; si no se selecciona, incrementa por defecto. INCREASE_MAJOR_MINOR: Muestra las opciones de incrementar la versión mayor y menor; si no se selecciona, incrementa por defecto. |
| String getNextVersionNumber(Session session, NodeDocument nDoc, NodeDocumentVersion nDocVer, int increment) | String | Calcula el siguiente número de versión a partir de uno dado. |
Ejemplo de implementación del adaptador de numeración de versiones
Sección titulada «Ejemplo de implementación del adaptador de numeración de versiones»package com.openkm.plugin.vernum;
import com.openkm.core.Config;import com.openkm.db.bean.NodeVersion;import com.openkm.db.repository.NodeVersionRepo;import com.openkm.plugin.BasePlugin;import net.xeoh.plugins.base.annotations.PluginImplementation;import org.springframework.beans.factory.annotation.Autowired;
@PluginImplementationpublic class PlainVersionNumerationAdapter extends BasePlugin implements VersionNumerationAdapter {
@Autowired private NodeVersionRepo nodeVersionRepo;
@Override public String getInitialVersionNumber() { return String.format(Config.VERSION_NUMERATION_FORMAT, 1); }
@Override public int getVersionNumberIncrement() { return INCREASE_DEFAULT; }
@Override public String getNextVersionNumber(NodeVersion nVer, int increment) { String versionNumber = nVer.getName(); int nextVerNumber = Integer.parseInt(versionNumber); NodeVersion nv;
do { nextVerNumber++; String name = String.valueOf(nextVerNumber); nv = nodeVersionRepo.getNodeVersionByNodeAndName(nVer.getParent(), name); } while (nv != null);
return String.format(Config.VERSION_NUMERATION_FORMAT, nextVerNumber); }}