Yo realizo la siguiente busqueda en lucene en javascript:
var folder = search.luceneSearch("@cm\\:name:\""+category+"\" AND @cm\\:description:\""+description+"\"");
si no me ha dado resultados la búsqueda, me creo la carpeta con createFolder() y despues puedo dentro de ella crear otra carpeta y no me da error ninguno, pero si la carpeta ya esta creada, la búsqueda lo ke me devuelve es un nodo y no tiene el método createFolder().
Sabe alguién como hacer un cast al nodo para que sea un objeto carpeta?
Hola de nuevo, ya lo he resulto… era un fallo mio. Resulta ke la búsqueda de lucene aunque solo te devuelva un elemento te devuelve una lista, no como otras búsquedas propias de javascript, así que solo tenía que coger el elemento 0.
Aunque si me resuelven, ya solo por curiosidad, lo de los casting, os lo agradecería mucho.
Tienes la función .type al que creo que le puedes asociar el tipo que quieras a un nodo, aunque como nunca lo he necesitado no lo he probado la verdad. Tendría que ser algo similar a: node.type="cm:folder";
Muchas gracias Cristina, en cuanto lo pruebe ya comentare que tal funcina… aunque hasta ahora las búsquedas de lucene devuelve los nodos con su tipo correcto y no como un objeto generico
no necesitas hacer un cast para lo que necesitas. Tal y como has dicho la búsqueda de lucene devuelve un array de nodos con los resultados devueltos por lucene. Si el nodo es de tipo cm:folder podrás implementar ciertos métodos y si no lo es obtendrás un error al intentar ejecutarlos. Puedes usar la función isSubType(string type) para comprobar si un nodo es de tipo cm:folder antes de intentar crear un espacio dentro de él. Para especializar un nodo lo puedes hacer directamente al crearlo o con el método specializeType(string type)