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í.
Descripción del método
Sección titulada «Descripción del método»| 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) | 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 */@PluginImplementationpublic 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; }
}