Extender y reemplazar IDOs
El sistema de desarrollo IDO permite al desarrollador crear un nuevo IDO que hereda todas las propiedades, métodos, tablas y clase de extensión de un IDO existente. La relación entre el IDO creado y el IDO base se llama relación de "extensión". El nuevo IDO hereda del IDO base y lo amplía.
El desarrollador puede indicar de manera opcional una extensión de IDO como repuesto del IDO base. Cuando una extensión de IDO reemplaza a su IDO base, todas las solicitudes de IDO dirigidas al IDO base se desvían a través de la extensión de IDO. Estas solicitudes son las solicitudes Obtener información de propiedad, Cargar recopilación, Actualizar recopilación, e Invocar.
Las opciones Extensiones y Extender y reemplazar están disponibles en el Nuevo asistente IDO, usadas para añadir un IDO.
Una extensión de IDO (uno con un IDO base) solo puede hacer cambios aditivos al IDO base. Esto es, se pueden añadir nuevas propiedades, métodos, tablas y una clase de extensión, pero ninguna de las propiedades, métodos, tablas o clases de extensión base se pueden modificar o eliminar. Las propiedades enlazadas nuevas pueden enlazarse a columnas desde tablas en la extensión de IDO o en cualquier IDO base. Del mismo modo, propiedades derivadas nuevas pueden referenciar propiedades en la extensión de IDO así como propiedades en cualquier IDO base.
Una extensión de IDO puede ser ampliada a su vez por uno o más IDOs. No hay un límite estricto al número de niveles en una cadena de herencia. Mientras que cualquier número de extensiones de IDOs puede compartir el mismo IDO base, no más de un IDO secundario puede indicarse como repuesto para el IDO base.
Cuando el tiempo de ejecución de IDO procesa solicitudes de IDO, genera eventos que pueden ser controlados por clases de extensión IDO. Si una extensión IDO tiene uno o más IDOs base que tienen clases de extensión asociadas a ellas, los eventos se desencadenarán en todas las clases de extensión pero el orden es indeterminado.
El IDO base y el indicador de repuesto solo se pueden establecer cuando se crea un nuevo IDO. Los atributos son de solo lectura para los IDOs existentes.