Creating your own NodeProperties plugin ( customize search results objects )
Esta página aún no está disponible en tu idioma.
To create your own NodeProperties results you must create a new class that implements NodeProperties interface:
package com.openkm.plugin.properties;
import net.xeoh.plugins.base.Plugin;
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.dao.bean.NodeDocument;import com.openkm.dao.bean.NodeFolder;import com.openkm.dao.bean.NodeMail;import com.openkm.dao.bean.NodeRecord;
/** * NodeProperties */public interface NodeProperties extends Plugin {
/** * Get document properties */ Document getProperties(String user, NodeDocument nDocument) throws PathNotFoundException, DatabaseException;
/** * Get folder properties */ Folder getProperties(String user, NodeFolder nFolder) throws PathNotFoundException, DatabaseException;
/** * Get mail properties */ Mail getProperties(String user, NodeMail nMail) throws PathNotFoundException, DatabaseException;
/** * Get record properties */ Record getProperties(String user, NodeRecord nRecord) throws PathNotFoundException, DatabaseException;}The new class must be loaded into the package com.openkm.plugin.properties because the application plugins system will try to load it from there. See the sample below:
Method description
Section titled “Method description”| Method | Type | Description |
|---|---|---|
| getProperties(String user, NodeDocument nDocument) | Document | Define which values are loaded in Document Object returned by search engine. |
| getProperties(String user, NodeFolder nFolder) | Return | Define which values are loaded in Folder Object returned by search engine. |
| getProperties(String user, NodeMail nMail) | Define which values are loaded in Mail Object returned by search engine. | |
| getProperties(String user, NodeRecord nRecord) | Record | Define which values are loaded in Record Object returned by search engine. |
Example of NodeProperties implementation
Section titled “Example of NodeProperties implementation”/** * OpenKM, Open Document Management System (http://www.openkm.com) * Copyright (c) 2006-2015 Paco Avila & Josep Llort * * No bytes were intentionally harmed during the development of this application. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */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.dao.bean.NodeDocument;import com.openkm.dao.bean.NodeFolder;import com.openkm.dao.bean.NodeMail;import com.openkm.dao.bean.NodeRecord;
import net.xeoh.plugins.base.annotations.PluginImplementation;
/** * * @author agallego * */@PluginImplementationpublic class UuidNodeProperties implements NodeProperties { /** * Get document properties */ @Override public Document getProperties(String user, NodeDocument nDocument) throws PathNotFoundException, DatabaseException { Document node = new Document(); node.setUuid(nDocument.getUuid()); return node; }
/** * Get folder properties */ @Override public Folder getProperties(String user, NodeFolder nFolder) throws PathNotFoundException, DatabaseException { Folder node = new Folder(); node.setUuid(nFolder.getUuid()); return node; }
/** * Get mail properties */ @Override public Mail getProperties(String user, NodeMail nMail) throws PathNotFoundException, DatabaseException { Mail node = new Mail(); node.setUuid(nMail.getUuid()); return node; }
/** * Get record properties */ @Override public Record getProperties(String user, NodeRecord nRecord) throws PathNotFoundException, DatabaseException { Record node = new Record(); node.setUuid(nRecord.getUuid()); return node; }
}