» Diferencias entre OgnlScript y Ognl
Diferencias entre OgnlScript y Ognl
Si ya conoces Ognl y tienes experiencia con Java, es necesario que tengas en cuenta lo siguiente:
Construcción de objetos
- El operador
newcrea objetos específicos de OgnlScript, no de Java. Por lo tanto, es imposible crear nuevos objetos a partir de clases Java del JDK. - No se permite la creación de arrays, aunque si su uso. En su lugar, se recomienda listas.
- No se pueden llamar a métodos estáticos de clases Java del JDK.
Colecciones
- Se han eliminado todas las pseudo-propiedades de los objetos Set (conjuntos) y Map (mapas).
- Las propiedades de List (listas) y arrays se han unificado: es posible utilizar
sizeylengthpara obtener el tamaño tanto en list como en arrays.isEmptyyemptydevuelven true si el array o lista esta vacío. Y se ha añadido la propiedaditeratora los arrays. - Las colecciones tienen nuevos métodos y algunos otros se han mejorado. Ver colecciones.
- Se pueden añadir nuevos elementos a los conjuntos (Set) asignando a true el elemento como propiedad:
conjunto.clave = true. Para quitar un elemento, se hace asignándolo a false:conjunto.clave = false. Y para saber si un elemento existe en el conjunto, una propiedad con el nombre de la clave a buscar retornará true si existe y false si no existe:conjunto.clave == true
Más información de las pseudo-propiedades originales de Ognl http://www.opensymphony.com/ognl/html/LanguageGuide/specialCollectionsProperties.html
Variables
En Ognl, es posible crear al vuelo variables nuevas con el formato #nombreVariable. En OgnlScript no se pueden crear variables nuevas, tan solo se pueden acceder a las variables locales, globales y atributos de objetos que previamente hayamos declarado. No es peor ni mejor, simplemente obliga al programador a ser previsor y definir previamente que variables va a necesitar usar en cada función con local y en cada objeto con var.
Sin embargo, si que existen variables con el formato #nombreVariable. Son variables de solo lectura que contienen información dinámica, objetos especiales de sistema o funciones.
Estructuras
Mientras que Ognl no permite la creación de funciones, estructuras condicionales ni bucles iterativos, OgnlScript si lo permite. Todas estas características son nuevas funcionalidades que añade OgnlScript.