Ir al contenido

Creating your own Version Number Adapter

El adaptador de numeración de versión 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 Version Number Adapter.

Condiciones:

  • La nueva clase Version Number Adapter debe implementar la interfaz “VersionNumerationAdapter”.
  • La nueva clase Version Number Adapter debe declararse en el paquete “com.openkm.plugin.vernum”.
  • La nueva clase Version Number Adapter debe estar anotada con@PluginImplementation”.
  • La nueva clase Version Number Adapter 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 en el paquete com.openkm.plugin.vernum porque el sistema de plugins de la aplicación intentará cargarla desde ahí.

Método Tipo Descripción
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.
getNextVersionNumber(NodeVersion nVer, int increment) String Calcula el siguiente número de versión a partir de uno dado.

Ejemplo de implementación de Version Number Adapter

Sección titulada «Ejemplo de implementación de Version Number Adapter»
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);
}
}