<> <<>> <> <> DIRECTORY IP USING [Any, Identifier, Integer, MasterError, Vector, VectorRep, VectorShape]; IPEnvironmentImpl: CEDAR PROGRAM IMPORTS IP <> = BEGIN OPEN IP; EnvShape: PROC[data: REF] RETURNS[VectorShape] ~ { MasterError[$undefinedOperation, "SHAPE is undefined for the external environment."]; RETURN[[0, 0]]; }; EnvGet: PROC[data: REF, j: Integer] RETURNS[Any] ~ { MasterError[$undefinedOperation, "GET is undefined for the external environment."]; RETURN[NIL]; }; fonts, decompressionOps, colors, colorOps, colorModelOps: Vector _ NIL; EnvGetProp: PROC[data: REF, propName: Any] RETURNS[value: Any, found: BOOL] ~ { WITH propName SELECT FROM id: Identifier => SELECT id FROM $fonts => RETURN[fonts, TRUE]; $decompressionOps => RETURN[decompressionOps, TRUE]; $colors => RETURN[colors, TRUE]; $colorOps => RETURN[colorOps, TRUE]; $colorModelOps => RETURN[colorModelOps, TRUE]; ENDCASE; ENDCASE; RETURN[NIL, FALSE]; }; externalEnvironment: Vector ~ NEW[VectorRep _ [class: $ExternalEnvironment, shape: EnvShape, get: EnvGet, getProp: EnvGetProp, data: NIL]]; GetExternalEnvironment: PUBLIC PROC RETURNS[Vector] ~ { RETURN[externalEnvironment] }; END.