Module: environment-protocols Synopsis: Environment protocols Author: Andy Armstrong Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND /// Variable objects define abstract class () end class ; define abstract class (, ) end class ; define class () end class ; define class () end class ; define open generic variable-value (server :: , variable :: , #key thread) => (value :: false-or()); define open generic variable-type (server :: , variable :: ) => (type :: false-or()); /// Project dispatching methods define method variable-value (project :: , variable :: , #key thread) => (value :: false-or()) let server = ensure-application-server(project, variable); server & variable-value(server, variable, thread: thread) end method variable-value; define method variable-type (project :: , variable :: ) => (type :: false-or()) let server = choose-server(project, variable); server & variable-type(server, variable) end method variable-type; /// Implementation define method environment-object-type (server :: , object :: ) => (type :: false-or()) variable-type(server, object) end method environment-object-type; define method environment-object-type-name (object :: ) => (label :: ) "Variable" end method environment-object-type-name; define method environment-object-type-name (object :: ) => (label :: ) "Variable" end method environment-object-type-name;