Opened 15 years ago
Closed 14 years ago
#325 closed task (fixed)
obtención de direcciones de objetos
Reported by: | josp | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | major | Milestone: | Development 0.6 |
Component: | General | Keywords: | ObjectAddress |
Cc: | livanr68 |
Description
Desde el GUI se necesita obtener las direcciones de las instancia de objetos MMS. Cuando decimos direcciones nos referimos al resultado de la funcion nativa GetObjectAddress.
Pudiera ser algo como:
Text MMS::GetObjectAddress( Anything ObjectReference );
lo cual retornaría la dirección de un objeto referenciado por ObjectReference, ó
Set MMS::GetAllObjectAddress( Set Objects );
que retornaría las direcciones de los objetos referenciados en el conjunto Objects, pudiera estar implementado a partir de la función anterior.
Change History (7)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Status: | new → accepted |
---|
Se plantea una solución alternativa a la dirección de memoria del objeto.
Se trata de un nombre TOL único que permite el acceso sin ambigüedad al objeto.
Por ejemplo:
MMS::Container::_.models::Mat.Veh__1.0::_.submodels::Veh.Tur.Mat::_.expTerms::Pib.es.Men::_.parametersLinear::Linear.0
identificaría al parámetro lineal de un término explicativo del modelo de ejemplo de matriculación de vehículos.
Entiendo que esto es tan útil como tener la dirección de memoria y quizá menos propenso
a "fracasos" o problemas de referencias que dejan de existir.
comment:3 Changed 15 years ago by
comment:4 Changed 14 years ago by
comment:5 Changed 14 years ago by
(In [1881]) Se introduce el método ::GetAbsoluteIdentifier en algunas clases de resultados y previsiones.
El método no puede implementarse como en otras clases al ser clases adaptadoras y no puede
generalizarse ya que el nombre del objeto adaptado "_<objectType>_" varía de una clase a otra.
Así que de momento los añadimos clase a clase según la necesidad.
Refs #325
comment:6 Changed 14 years ago by
Priority: | critical → major |
---|
El método ::GetAbsoluteIdentifier está incluido en la mayoría de las clases que se desplegarán en la GUI de MMS.
Falta el método en algunas clases de resultados y previsiones que pudieran aparecer en la GUI y que se tratarán cuando aparezca la necesidad.
También falta en las clases tipo Strategy, Settings y ResultsAdapter y en las clases diseñadas como clases independientes: @Transformation, @Interval, @NonLinearFilter y las clases de RandVar.
Para estas últimas habría que idear un mecanismo adecuado o buscar una alternativa válida para la interfaz gráfica.
comment:7 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Las instancias de @Transformation, @Interval, @NonLinearFilter, @Settings o incluso de las variables aleatorias (como las del condicionamiento) se pueden tratar desde el formulario de su objeto padre o desde un formulario tipo tabla, de modo que no es necesario desplegarlas en forma de árbol.
Por esta razón se cierra el tique sin incorporar el método ::GetAbsoluteIdentifier a estas clases.
Créese un tique nuevo si surge cualquier necesidad respecto a este método o estás clases.
Para obtener esa lista de direcciones de memoria basta con aplicar
GetAddressFromObject
a los respectivos métodosGetObject
oGetObjects
. Por ejemplo:ó simplemente:
Si se considera podrían hacerse funciones locales a la GUI para obtener con una sola llamada estas direcciones de memoria, aunque el uso de las expresiones anteriores no parece muy engorroso.