Ir al contenido
Otras versiones

Cargando…

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í.

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;
@PluginImplementation
public 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);
}
}