Ir al contenido

Crear su propio plugin NodeProperties ( personalizar los objetos de resultados de búsqueda )

Puede crear su propio NodeProperties.

Condiciones:

  • La nueva clase NodeProperties debe implementar la interfaz “NodeProperties”.
  • La nueva clase NodeProperties debe declararse en el paquete “com.openkm.plugin.properties”.
  • La nueva clase NodeProperties debe anotarse con@PluginImplementation”.
  • La nueva clase NodeProperties debe extender “BasePlugin”.

Interfaz NodeProperties:

package com.openkm.plugin.properties;
import com.openkm.bean.Document;
import com.openkm.bean.Folder;
import com.openkm.bean.Mail;
import com.openkm.bean.Record;
import com.openkm.core.DatabaseException;
import com.openkm.core.PathNotFoundException;
import com.openkm.core.RepositoryException;
import com.openkm.db.bean.NodeDocument;
import com.openkm.db.bean.NodeFolder;
import com.openkm.db.bean.NodeMail;
import com.openkm.db.bean.NodeRecord;
import net.xeoh.plugins.base.Plugin;
/**
* NodeProperties
*/
public interface NodeProperties extends Plugin {
/**
* Get document properties
*/
Document getProperties(String user, NodeDocument nDocument) throws PathNotFoundException, DatabaseException, RepositoryException;
/**
* Get folder properties
*/
Folder getProperties(String user, NodeFolder nFolder) throws PathNotFoundException, DatabaseException, RepositoryException;
/**
* Get mail properties
*/
Mail getProperties(String user, NodeMail nMail) throws PathNotFoundException, DatabaseException, RepositoryException;
/**
* Get record properties
*/
Record getProperties(String user, NodeRecord nRecord) throws PathNotFoundException, DatabaseException, RepositoryException;
}

La nueva clase debe cargarse en el paquete com.openkm.plugin.properties porque el sistema de plugins de la aplicación intentará cargarla desde ahí.

Método Tipo Descripción
getProperties(String user, NodeDocument nDocument) Document Define qué valores se cargan en el objeto Document devuelto por el motor de búsqueda.
getProperties(String user, NodeFolder nFolder) Folder Define qué valores se cargan en el objeto Folder devuelto por el motor de búsqueda.
getProperties(String user, NodeMail nMail) Mail Define qué valores se cargan en el objeto Mail devuelto por el motor de búsqueda.
getProperties(String user, NodeRecord nRecord) Record Define qué valores se cargan en el objeto Record devuelto por el motor de búsqueda.

Ejemplo de implementación de NodeProperties

Sección titulada «Ejemplo de implementación de NodeProperties»
package com.openkm.plugin.properties;
import com.openkm.bean.Document;
import com.openkm.bean.Folder;
import com.openkm.bean.Mail;
import com.openkm.bean.Record;
import com.openkm.core.DatabaseException;
import com.openkm.core.PathNotFoundException;
import com.openkm.core.RepositoryException;
import com.openkm.db.bean.NodeDocument;
import com.openkm.db.bean.NodeFolder;
import com.openkm.db.bean.NodeMail;
import com.openkm.db.bean.NodeRecord;
import com.openkm.plugin.BasePlugin;
import net.xeoh.plugins.base.annotations.PluginImplementation;
/**
* UuidNodeProperties
*/
@PluginImplementation
public class UuidNodeProperties extends BasePlugin implements NodeProperties {
/**
* Get document properties
*/
@Override
public Document getProperties(String user, NodeDocument nDocument) throws PathNotFoundException, DatabaseException, RepositoryException {
Document node = new Document();
node.setUuid(nDocument.getUuid());
return node;
}
/**
* Get folder properties
*/
@Override
public Folder getProperties(String user, NodeFolder nFolder) throws PathNotFoundException, DatabaseException, RepositoryException {
Folder node = new Folder();
node.setUuid(nFolder.getUuid());
return node;
}
/**
* Get mail properties
*/
@Override
public Mail getProperties(String user, NodeMail nMail) throws PathNotFoundException, DatabaseException, RepositoryException {
Mail node = new Mail();
node.setUuid(nMail.getUuid());
return node;
}
/**
* Get record properties
*/
@Override
public Record getProperties(String user, NodeRecord nRecord) throws PathNotFoundException, DatabaseException, RepositoryException {
Record node = new Record();
node.setUuid(nRecord.getUuid());
return node;
}
}