Update of /cvsroot/pymerase/pymerase/pymerase/input
In directory sc8-pr-cvs1:/tmp/cvs-serv25406
Modified Files:
parseXMI.py
Log Message:
Attempt to handle one to one links
Index: parseXMI.py
===================================================================
RCS file: /cvsroot/pymerase/pymerase/pymerase/input/parseXMI.py,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** parseXMI.py 25 Jul 2003 00:41:07 -0000 1.25
--- parseXMI.py 9 Sep 2003 21:50:15 -0000 1.26
***************
*** 266,284 ****
otherEndType = otherEnd.getType()
if thisEnd.getMultiplicity() != fkeyTypes.OneToOne and otherEnd.getMultiplicity() != fkeyTypes.OneToOne:
err = "Pymerase doesn't support Many To Many relationships"+ os.linesep
err += "please add a linking table"
warn(err, RuntimeWarning)
- elif thisEnd.getMultiplicity() != fkeyTypes.OneToOne:
- # put the key in this end
- # FIXME: should we use the association name or the primary key name?
- #fkeyName = otherEndType.getRootClass().getName(None) + "_fk"
- fkeyName = otherEnd.getType().getName(None) + "_fk"
- #fkeyName = thisEnd.getAssociation().getName(None) +"_fk"
- if thisEndType.getAttributeByName(fkeyName, None) is None:
- foreignKey = constructForeignKey(pymeraseConfig,
- classesInModel,
- fkeyName)
- thisEndType.addAttribute(foreignKey)
elif otherEnd.getMultiplicity() != fkeyTypes.OneToOne:
# put the key in the other end
#fkeyName = thisEndType.getRootClass().getName(None) + "_fk"
--- 266,275 ----
otherEndType = otherEnd.getType()
if thisEnd.getMultiplicity() != fkeyTypes.OneToOne and otherEnd.getMultiplicity() != fkeyTypes.OneToOne:
+ # Handle: (or at least faily informatively about many to many)
err = "Pymerase doesn't support Many To Many relationships"+ os.linesep
err += "please add a linking table"
warn(err, RuntimeWarning)
elif otherEnd.getMultiplicity() != fkeyTypes.OneToOne:
+ # Handle: one to many
# put the key in the other end
#fkeyName = thisEndType.getRootClass().getName(None) + "_fk"
***************
*** 293,297 ****
otherEndType.addAttribute(foreignKey)
else:
! raise SyntaxError("Unrecognized multiplicity")
--- 284,298 ----
otherEndType.addAttribute(foreignKey)
else:
! # Handel: many to one or one to one
! # put the key in this end
! # FIXME: should we use the association name or the primary key name?
! #fkeyName = otherEndType.getRootClass().getName(None) + "_fk"
! fkeyName = otherEnd.getType().getName(None) + "_fk"
! #fkeyName = thisEnd.getAssociation().getName(None) +"_fk"
! if thisEndType.getAttributeByName(fkeyName, None) is None:
! foreignKey = constructForeignKey(pymeraseConfig,
! classesInModel,
! fkeyName)
! thisEndType.addAttribute(foreignKey)
|