DIRECTORY Buttons USING[ ButtonProc, Button ], DB USING [DataType, Domain, Relation, Attribute, Segment], Rope USING [ROPE], Labels, ViewerClasses; Schema: CEDAR DEFINITIONS = BEGIN OPEN DB, Rope, ViewerClasses; AttributeInfo: TYPE = REF AttributeInfoRecord; AttributeInfoRecord: TYPE = RECORD[ relation: Relation, segment: Segment, nameLabel: Buttons.Button, name: Viewer, typeLabel: Labels.Label, type: Viewer, lengthLabel: Labels.Label, length: Viewer, uniqueness: Buttons.Button ]; DomainInfo: TYPE = REF DomainInfoRecord; DomainInfoRecord: TYPE = RECORD[ dName: ROPE, domain: Domain, segment: Segment, subTypes: Viewer, superTypes: Viewer, deleted: LIST OF Relation, -- deleted properties properties: LIST OF AttributeInfo]; RelationInfo: TYPE = REF RelationInfoRecord; RelationInfoRecord: TYPE = RECORD[ rName: ROPE, segment: Segment, relation: Relation, -- NIL indicates a new relation attributes: LIST OF AttributeInfo]; CopyDomainContents: PROCEDURE[oldD, newD: DB.Domain]; CopyRelships: PROCEDURE[oldR, newR: DB.Relation]; GetRelationsOf: PROC[d: DB.Domain] RETURNS[relations: LIST OF DB.Relation]; SubType: PROC[sub, super: DB.Domain] RETURNS[BOOLEAN]; GetDataType: PROC[type: ROPE, segment: DB.Segment] RETURNS[dt: DB.DataType]; Optimized: PROCEDURE [d: Domain] RETURNS [opt: BOOLEAN]; SaveProperty: PROCEDURE [d: Domain, info: AttributeInfo]; NewAttribute: Buttons.ButtonProc; AddAttribute: PROC[ button: Viewer, segment: DB.Segment, oldList: LIST OF AttributeInfo ] RETURNS[ newList: LIST OF AttributeInfo ]; RemoveAttribute: PROCEDURE[button: Viewer, oldList: LIST OF AttributeInfo] RETURNS[newList: LIST OF AttributeInfo, relation: Relation]; DisplayAttribute: PROC[r: Relation, a: Attribute, lastV: Viewer, segment: Segment _ NIL] RETURNS[info: AttributeInfo]; CheckProperty: PROCEDURE[d: Domain, info: AttributeInfo, deleted: LIST OF Relation] RETURNS[ok: BOOLEAN _ TRUE]; Reverse: PROCEDURE[old: LIST OF AttributeInfo] RETURNS[new: LIST OF AttributeInfo]; RemoveDeleted: PROCEDURE[info: AttributeInfo, relations: LIST OF Relation] RETURNS[LIST OF Relation]; NextName: PROCEDURE[list: ROPE] RETURNS[token, newList: ROPE, ok: BOOLEAN _ TRUE]; END . . Schema.mesa edited by Maxwell, May 26, 1982 8:18 am Last Edited by: Willie-Sue, February 22, 1983 3:46 pm Last Edited by: Donahue, May 11, 1983 4:12 pm Last Edited by: Cattell, July 22, 1983 1:57 pm ******************************************************* copy the elements of a schemata coerce the data on a per-attribute data ******************************************************* ******************************************************* useful routines ******************************************************* Êb˜J˜Jšœ ™ Jšœ(™(Jšœ5™5Jšœ-™-Jšœ.™.J˜šÏk ˜ Jšœœ˜$Jšœœ2˜:Jšœœœ˜J˜J˜—šœœ œ˜Jšœœœ˜#J˜Jšœœœ˜.šœœ˜šœ'˜-J˜(J˜&J˜*J˜J˜——Jšœ œœ˜(šœœœ˜ Jšœœ˜ J˜J˜J˜J˜Jšœ œœ Ïc˜0Jšœ œœ˜#J˜—Jšœœœ˜,šœœœ˜"Jšœœ˜ J˜Jšœž˜3Jšœ œœ˜#J˜J˜J˜—Jšœ7™7Jšœ™Jšœ'™'Jšœ7™7J˜JšÏnœ œ œ ˜5JšŸ œ œ œ ˜1J˜J˜Jšœ7™7Jšœ™Jšœ7™7J˜JšŸœœœ œ œœœ ˜KJš Ÿœœ œ œœ˜6Jš Ÿ œœœ œ œœ ˜LJšŸ œ œ œœ˜8JšŸ œ œ"˜9J˜!š Ÿ œœœœœ˜YJšœ œœ˜*—šŸœ œœœ˜KJšœ œœ$˜<—šŸœœ˜1Jšœ"œœ˜D—šŸ œ œ*œœ ˜TJšœœœ˜—JšŸœ œœœœœœ˜SšŸ œ œ!œœ ˜KJšœœœ ˜—JšŸœ œœœœœœ˜SJ˜Jšœ˜J˜——…—Ž ö