Ejercicio 5 de GDL: Definición de límites de nombres para diferentes características
Ejercicio
Con las plantillas del ejercicio 4, defina la construcción *Name: que aparece dentro de la *POption que forma parte de *PFeature: InputTray para que se limite a 16 caracteres como máximo y el *Nombre: que aparece dentro de la *POption que forma parte de *PFeature: PaperSize está limitado a 24 caracteres máximo.
Realice este cambio sin eliminar ni modificar ninguna de las plantillas definidas anteriormente. Cree un archivo de datos GDL simple para comprobar la templación adecuada de las entradas.
Solución de
La plantilla siguiente cumple las condiciones.
*Template: PAPER_SIZE_OPT_NAME
{
*Name: "*Name" *% isolate this branch from base templates
*Inherits: NAME
*MaxLength: 24 chars
}
*Template: INPUTTRAY_OPT_NAME
{
*Name: "*Name" *% isolate this branch from base templates
*Inherits: NAME
*MaxLength: 16 chars
}
*Template: INPUTTRAY_OPTION2
{
*Inherits: INPUTTRAY_OPTION
*Members: (INPUTTRAY_OPT_NAME)
*Instances: <ANY>
}
*Template: PAPERSIZE_OPTION2
{
*Inherits: PAPERSIZE_OPTION
*Members: (PAPER_SIZE_OPT_NAME)
*Instances: <ANY>
}
*PFeature: random
{
*Name:"Generic Feature"
*DefaultOption: First
*POption: First
{
*Name: "First Option"
*Command: "Select me"
}
}
*PFeature: PaperSize
{
*Name: "Paper Size"
*DefaultOption: Letter
*POption: Letter
{
*Name: "Letter"
*Command: "Select Letter"
*PaperSize: PAIR(8.5, 11) inches
}
*POption: Legal
{
*Name: "Legal"
*Command: "Select Legal"
*PaperSize: PAIR(8.5, 14) inches
}
*POption: A4
{
*Name: "A4"
*Command: "Select A4"
*PaperSize: PAIR(205, 317) mm
}
}
*PFeature: InputTray
{
*Name: "Paper Source"
*DefaultOption: Upper
*POption: Upper
{
*Name: "Upper Tray"
*Command: "Select Upper Tray"
*Capacity: 2000 sheets
}
*POption: Lower
{
*Name: "Lower Tray"
*Command: "Select Lower Tray"
*Capacity: 500 sheets
}
}
Nota Con la herencia, puede refinar y derivar variaciones en una clase base sin modificar ninguna de las plantillas anteriores ni subvertir la intención del esquema que establecieron las plantillas anteriores. Esta característica es otra fuerza de herencia. La herencia proporciona a un tercero la capacidad de ampliar el esquema maestro sin cambiar ni infringir el esquema maestro.