OKMFolder
Fundamentos
Sección titulada «Fundamentos»En casi todos los métodos verá un parámetro llamado “fldId”. El valor de este parámetro puede ser un UUID de carpeta válido.
Además, en todos los métodos verá un parámetro llamado “token”. Dado que las tareas de Cron se ejecutan en segundo plano sin autenticación, los métodos usados en este escenario podrían usar el parámetro token. En el contexto de ejecución por defecto de la aplicación, debe usar el valor “null”, que indica que la aplicación debe usar la “sesión de usuario”.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| create(String token, Folder fld) | Folder | Crea una nueva carpeta y devuelve un objeto Folder. |
- La variable path en el parámetro fld debe estar inicializada. Indica la ruta de la carpeta en OpenKM.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.Folder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); Folder fld = new Folder(); fld.setPath("/okm:root/test"); okmFolder.create(null, fld); } catch (Exception e) { e.printStackTrace(); } }}createWithPropertyGroup
Sección titulada «createWithPropertyGroup»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createWithPropertyGroup(String token, Folder fld, String grpName, Map<String, String> properties) | Folder | Igual que create(), pero además establece las propiedades de un grupo de metadatos en la carpeta en la misma llamada, en lugar de un create() seguido de una llamada independiente a OKMPropertyGroup.addGroup(). |
- La variable path en el parámetro fld debe estar inicializada, igual que en create(). El grpName debe ser un nombre de grupo de metadatos válido, y solo se aplican las propiedades que pertenecen a ese grupo; cualquier otra clave presente en el mapa properties se ignora.
Ejemplo:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.api.OKMFolder;import com.openkm.bean.Folder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); Folder fld = new Folder(); fld.setPath("/okm:root/test");
Map<String, String> properties = new HashMap<>(); properties.put("okp:invoice.number", "INV-000");
// Create folder with metadata in a single atomic call okmFolder.createWithPropertyGroup(null, fld, "okg:invoice", properties); } catch (Exception e) { e.printStackTrace(); } }}createSimple
Sección titulada «createSimple»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createSimple(String token, String fldPath) | Folder | Crea una nueva carpeta y devuelve un objeto Folder. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); String fldPath = "/okm:root/test"; okmFolder.createSimple(null, fldPath); } catch (Exception e) { e.printStackTrace(); } }}getProperties
Sección titulada «getProperties»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getProperties(String token, String fldId) | Folder | Devuelve las propiedades de la carpeta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.Folder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); Folder fld = okmFolder.getProperties(null, "9f64248c-e049-4706-b89e-6d725842c7f7"); System.out.println(fld); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| delete(String token, String fldId) | void | Elimina una carpeta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.delete(null, "9f64248c-e049-4706-b89e-6d725842c7f7"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| purge(String token, String fldId) | void | La carpeta se elimina permanentemente del repositorio. |
- Normalmente purgará carpetas en /okm:trash/userId - las papeleras personales del usuario -, pero es posible purgar directamente cualquier carpeta del repositorio.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.purge(null, "9f64248c-e049-4706-b89e-6d725842c7f7"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| rename(String token, String fldId, String newName) | Folder | Renombra una carpeta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.rename(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "newname"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| move(String token, String fldId, String dstId) | void | Mueve una carpeta a otra carpeta o registro. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
Ejemplo:
package com.openkm;import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.move(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String fldId, String dstId) | Folder | Copia una carpeta en otra carpeta o registro. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.copy(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String fldId, String dstId, String newName) | Folder | Copia una carpeta en una carpeta o registro. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
- Cuando el valor del parámetro newName es null, la carpeta conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.copy(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "newname"); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String fldId, String dstId, ExtendedAttributes extAttr) | Folder | Copia una carpeta junto con los datos asociados en otra carpeta o registro. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.ExtendedAttributes;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);
ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); extAttr.setNotes(true); extAttr.setCategories(true); extAttr.setPropertyGroups(true);
okmFolder.extendedCopy(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", extAttr); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String fldId, String dstId, ExtendedAttributes extAttr, String newName) | Folder | Copia una carpeta junto con los datos asociados en alguna carpeta o registro. Obsoleto: use extendedCopy(token, fldId, dstId, newName, extAttr) en su lugar. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
- Cuando el valor del parámetro newName es null, la carpeta conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.ExtendedAttributes;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);
ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); extAttr.setNotes(true); extAttr.setCategories(true); extAttr.setPropertyGroups(true);
okmFolder.extendedCopy(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", extAttr, "newname"); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy (con nuevo nombre)
Sección titulada «extendedCopy (con nuevo nombre)»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String fldId, String dstId, String newName, ExtendedAttributes extAttr) | Folder | Copia una carpeta junto con los datos asociados en alguna carpeta o registro, con un nuevo nombre. |
- El valor del parámetro dstId debe ser un UUID de carpeta o de registro.
- Cuando el valor del parámetro newName es null, la carpeta conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.ExtendedAttributes;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);
ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); extAttr.setNotes(true); extAttr.setCategories(true); extAttr.setPropertyGroups(true);
okmFolder.extendedCopy(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263", "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "newname", extAttr); } catch (Exception e) { e.printStackTrace(); } }}getChildren
Sección titulada «getChildren»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getChildren(String token, String fldId) | List |
Devuelve una lista de todas las carpetas cuyo padre es fldId. |
- El parámetro fldId puede ser un nodo de carpeta o de registro.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.Folder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); for (Folder fld : okmFolder.getChildren(null, "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474")) { System.out.println(fld); } } catch (Exception e) { e.printStackTrace(); } }}getContentInfo
Sección titulada «getContentInfo»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getContentInfo(String token, String fldId) | ContentInfo | Devuelve un objeto ContentInfo con información sobre la carpeta. |
- El objeto ContentInfo recupera información sobre:
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.bean.ContentInfo;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); ContentInfo ci = okmFolder.getContentInfo(null, "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474"); System.out.println(ci); } catch (Exception e) { e.printStackTrace(); } }}isValid
Sección titulada «isValid»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| isValid(String token, String fldId) | boolean | Devuelve un booleano que indica si el nodo es una carpeta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); boolean valid = okmFolder.isValid(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263"); System.out.println(valid); } catch (Exception e) { e.printStackTrace(); } }}getPath
Sección titulada «getPath»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getPath(String token, String uuid) | String | Convierte un UUID de carpeta en una ruta de carpeta. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); String path = okmFolder.getPath(null, "7aceb86c-1dc8-4551-aebd-b7bd73d01263"); System.out.println(path); } catch (Exception e) { e.printStackTrace(); } }}createMissingFolders
Sección titulada «createMissingFolders»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createMissingFolders(String token, String fldPath) | String | Crea las carpetas que falten en función de todos los nodos de la ruta. Devuelve el UUID de la carpeta más profunda creada. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.createMissingFolders(null, "/okm:root/test/missing/from/here"); } catch (Exception e) { e.printStackTrace(); } }}addNodeClassChildren
Sección titulada «addNodeClassChildren»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| addNodeClassChildren(String token, String fldId, long ncId) | void | Añade la NodeClass. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); long ncId = 2; okmFolder.addNodeClassChildren(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", ncId); } catch (Exception e) { e.printStackTrace(); } }}createFromTemplate
Sección titulada «createFromTemplate»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createFromTemplate(String token, String fldId, String dstPath, Map<String, String> properties, ExtendedAttributes extAttr) | Folder | Crea una nueva carpeta a partir de una plantilla y devuelve un objeto Folder. |
- El dstPath puede ser un UUID de carpeta o de registro.
- Cuando la plantilla usa grupos de metadatos para rellenar campos, los valores son obligatorios y deben establecerse en el parámetro properties.
Ejemplo:
package com.openkm;
import java.util.HashMap;import java.util.Map;
import com.openkm.api.OKMFolder;import com.openkm.bean.ExtendedAttributes;import com.openkm.bean.Folder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); Map<String, String> properties = new HashMap<>(); Folder fld = okmFolder.createFromTemplate(null, "86633fe8-1b0d-48ac-a716-7685022adad8", "/okm:root/destination", properties, new ExtendedAttributes()); System.out.println(fld); } catch (Exception e) { e.printStackTrace(); } }}setDescription
Sección titulada «setDescription»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setDescription(String token, String uuid, String description) | void | Establece una descripción. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMFolder;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class); okmFolder.setDescription(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", "some description"); } catch (Exception e) { e.printStackTrace(); } }}