[Ooc-checkins] libpobj/src/PObj Sql.Mod,1.29,1.30 ParseClassDef.Mod,1.86,1.87 MetaData.Mod,1.76,1.77
Brought to you by:
mva
From: Michael v. A. <mv...@us...> - 2004-06-29 12:11:29
|
Update of /cvsroot/ooc/libpobj/src/PObj In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1362/src/PObj Modified Files: Sql.Mod ParseClassDef.Mod MetaData.Mod Log Message: Add element `stack'. Index: MetaData.Mod =================================================================== RCS file: /cvsroot/ooc/libpobj/src/PObj/MetaData.Mod,v retrieving revision 1.76 retrieving revision 1.77 diff -u -d -r1.76 -r1.77 --- MetaData.Mod 29 Jun 2004 10:05:07 -0000 1.76 +++ MetaData.Mod 29 Jun 2004 12:11:00 -0000 1.77 @@ -145,6 +145,12 @@ key-, value-: Field; derivedClass-: Class; END; + Stack* = POINTER TO StackDesc; + StackDesc = RECORD + (TypeDesc) + element-: Field; + derivedClass-: Class; + END; NestedClass* = POINTER TO NestedClassDesc; NestedClassDesc = RECORD (TypeDesc) @@ -1090,6 +1096,39 @@ END Parse; +PROCEDURE (t: Stack) INIT*(element: Field); + BEGIN + t.INIT^(NIL); + t.element := element; + t.derivedClass := NIL; + END INIT; + +PROCEDURE (t: Stack) IsScalar*(): BOOLEAN; + BEGIN + RETURN FALSE; + END IsScalar; + +PROCEDURE (t: Stack) Name*(currentModule: Module; + variant: SHORTINT): STRING; + BEGIN + CASE variant OF + | typeNameOberon: + RETURN "Stack"; + | typeValueOberon: + RETURN NIL; + | typeNameJava: + RETURN "pe.base.pobjects.Stack"; + | typeClassJava, typeClassJavaNoMap: + RETURN "pe.base.pobjects.StackType"; + END; + END Name; + +PROCEDURE (t: Stack) Parse*(value: STRING): Object.Object; + BEGIN + RETURN NIL; + END Parse; + + PROCEDURE (t: NestedClass) INIT*(javaTypeName: STRING; targetModule, targetName: STRING; targetClass: Class; @@ -1620,7 +1659,7 @@ schemaName, constrName: STRING; refType: RefType; idField: IdField; - fields: FieldList; + fields, fields2: FieldList; unique: Unique; constraints: ConstraintList; c: Class; @@ -1637,6 +1676,53 @@ NEW(constraints, 1); constrName := "pk_"+schemaName; + NEW(fields2, 2); + fields2[0] := fields[0]; + fields2[1] := fields[1]; + unique := NEW(Unique, constrName, fields2, NIL); + unique.SetPrimaryKey(TRUE); + constraints[0] := unique; + + c := NEW(Class, + class.name+Upcase(field.name), (* name *) + schemaName, (* schemaName *) + field.label, (* label *) + idField, (* idField *) + NIL, (* baseClass *) + FALSE, (* extensible *) + fields, (* fields *) + constraints, (* constraints *) + NIL); (* visualField *) + t.derivedClass := c; + RETURN c; + END Expand; + +PROCEDURE (t: Stack) Expand*(class: Class; field: Field): Class; + VAR + schemaName, constrName: STRING; + refType: RefType; + posType: Int32; + idField: IdField; + fields: FieldList; + unique: Unique; + constraints: ConstraintList; + c: Class; + BEGIN + schemaName := class.schemaName+"__"+field.schemaName; + idField := NIL; (*NEW(IdField, NEW(Sequence, "seq_"+schemaName));*) + + NEW(fields, 3); + refType := NEW(RefType, NIL, NIL, class.name, class, + onDeleteCascade, onUpdateRestrict); + fields[0] := NEW(Field, class.idField.name, class.idField.schemaName, + refType, FALSE, FALSE, "Parent", "Parent"); + posType := NEW(Int32, NIL); + fields[1] := NEW(Field, "position", "position_", + posType, FALSE, FALSE, "Position", "Position");; + fields[2] := t.element; + + NEW(constraints, 1); + constrName := "pk_"+schemaName; unique := NEW(Unique, constrName, fields, NIL); unique.SetPrimaryKey(TRUE); constraints[0] := unique; Index: ParseClassDef.Mod =================================================================== RCS file: /cvsroot/ooc/libpobj/src/PObj/ParseClassDef.Mod,v retrieving revision 1.86 retrieving revision 1.87 diff -u -d -r1.86 -r1.87 --- ParseClassDef.Mod 29 Jun 2004 11:37:13 -0000 1.86 +++ ParseClassDef.Mod 29 Jun 2004 12:10:59 -0000 1.87 @@ -815,6 +815,11 @@ value := ParseComponent(token, "value"); type := NEW(MetaData.Hash, key, value); + ELSIF start.IsStartTag("stack", NIL) THEN + token := p.NextData(); + element := ParseField(token); + type := NEW(MetaData.Stack, element); + ELSIF start.IsStartTag("nestedClass", NIL) THEN token := p.NextData(); module := start.GetAttValue("module", NIL); Index: Sql.Mod =================================================================== RCS file: /cvsroot/ooc/libpobj/src/PObj/Sql.Mod,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- Sql.Mod 29 Jun 2004 11:12:20 -0000 1.29 +++ Sql.Mod 29 Jun 2004 12:10:58 -0000 1.30 @@ -99,6 +99,8 @@ RETURN NIL; | type: MetaData.Hash DO RETURN NIL; + | type: MetaData.Stack DO + RETURN NIL; | type: MetaData.NestedClass DO RETURN NIL; END; |