Re: EOModeler Editor

From: Mike Schrag (mschra..dimension.com)
Date: Sun Jul 09 2006 - 13:14:39 EDT

  • Next message: Mike Schrag: "Re: EOModeler Editor"

    I think it's a bug on both EOModeler's and WO's. EOModeler's that it
    let you create this to begin with, and WO's that it doesn't even warn
    that there are duplicate attribute definitions. It looks like when
    you call EOEntity.attributeNamed, it just makes an NSDictionary of
    all the attributes, meaning the second one would just win the name
    competition, potentially silently really causing weird problems. For
    what it's worth, the new EOModeler eclipse plugin won't let you do
    this. I'm not exactly sure what I should do if you try to open a
    broken model, though, because it's going to cause really strange
    problems in the plugin (in all the same ways). I can't decide if I
    should reject it outright, or whether I should automatically rename
    the second one with an underscore and give you a warning? The
    problem is that I can't really just leave it and let you have both
    names, because it's just going to break things. I'm leaning towards
    automatically renaming -- I think maybe I would need to rename the
    FIRST one when a second one appears, so the second one wins (to match
    WO's resultant behavior).

    ms

    On Jul 9, 2006, at 11:54 AM, Pierre Frisch wrote:

    > Sorry Mike, when you stare at things you dont see them anymore. I
    > don't think it is legal but I don't understand why WO does not
    > complain about it. I have been running with that for a long time. I
    > think it is because it was not a class property but even then it is
    > bizarre.
    >
    > Thanks
    >
    > Pierre
    >
    > On 9-Jul-06, at 8:46 AM, Mike Schrag wrote:
    >
    >> So your EOJDBCPrototypes prototype file defines TWO attributes
    >> named "size". Is this actually legal? I can't imagine that it
    >> is ... I don't know how you would ever be able to resolve which
    >> prototype you mean.
    >>
    >> On Jul 9, 2006, at 11:37 AM, Pierre Frisch wrote:
    >>
    >>> Hi Mike
    >>>
    >>> I wanted to try the new EOModeler Editor but I immediately got an
    >>> error. The referenced file is there: /Users/pierre/Projects/
    >>> workspace/DatabaseTypes/build/DatabaseTypes.framework/Resources/
    >>> Prototypes.eomodeld/EOJDBCPrototypes.plist but of course the
    >>> fetchspec is not as it is a prototypes model. I have enclosed the
    >>> model.
    >>>
    >>> I have the latest WOLips (156) which is not exactly the latest
    >>> sources (the throw is at line 445 and not 416)? Could we possibly
    >>> reference the versions with the subversion number it would make
    >>> life easier as I have no way of knowing which sources correspond
    >>> to that version.
    >>>
    >>> Thanks
    >>>
    >>> Pierre
    >>>
    >>>
    >>> org.objectstyle.wolips.eomodeler.model.EOModelException: Failed
    >>> to load model from /Users/pierre/Projects/workspace/DatabaseTypes/
    >>> build/DatabaseTypes.framework/Resources/Prototypes.eomodeld/
    >>> EOJDBCPrototypes.plist (fetch spec = /Users/pierre/Projects/
    >>> workspace/DatabaseTypes/build/DatabaseTypes.framework/Resources/
    >>> Prototypes.eomodeld/EOJDBCPrototypes.fspec).
    >>> at org.objectstyle.wolips.eomodeler.model.EOEntity.loadFromFile
    >>> (EOEntity.java:416)
    >>> at org.objectstyle.wolips.eomodeler.model.EOModel.loadFromFolder
    >>> (EOModel.java:225)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EOModelGroup.addModelsFromFol
    >>> der(EOModelGroup.java:226)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EOModelGroup.addModelsFromFol
    >>> der(EOModelGroup.java:231)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EOModelGroup.addModelsFromFol
    >>> der(EOModelGroup.java:231)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EOModelGroup.addModelsFromFol
    >>> der(EOModelGroup.java:231)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EclipseEOModelGroupFactory.ad
    >>> dModelsFromFolderIfNecessary(EclipseEOModelGroupFactory.java:72)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EclipseEOModelGroupFactory.cr
    >>> eateModelGroup(EclipseEOModelGroupFactory.java:125)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EclipseEOModelGroupFactory.cr
    >>> eateModel(EclipseEOModelGroupFactory.java:78)
    >>> at
    >>> org.objectstyle.wolips.eomodeler.editors.EOModelEditorInput.<init>
    >>> (EOModelEditorInput.java:81)
    >>> at org.objectstyle.wolips.eomodeler.editors.EOModelEditor.init
    >>> (EOModelEditor.java:205)
    >>> at org.eclipse.ui.internal.EditorManager.createSite
    >>> (EditorManager.java:839)
    >>> at org.eclipse.ui.internal.EditorReference.createPartHelper
    >>> (EditorReference.java:583)
    >>> at org.eclipse.ui.internal.EditorReference.createPart
    >>> (EditorReference.java:372)
    >>> at org.eclipse.ui.internal.WorkbenchPartReference.getPart
    >>> (WorkbenchPartReference.java:566)
    >>> at org.eclipse.ui.internal.EditorReference.getEditor
    >>> (EditorReference.java:214)
    >>> at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched
    >>> (WorkbenchPage.java:2588)
    >>> at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor
    >>> (WorkbenchPage.java:2521)
    >>> at org.eclipse.ui.internal.WorkbenchPage.access$10
    >>> (WorkbenchPage.java:2513)
    >>> at org.eclipse.ui.internal.WorkbenchPage$9.run
    >>> (WorkbenchPage.java:2498)
    >>> at org.eclipse.swt.custom.BusyIndicator.showWhile
    >>> (BusyIndicator.java:67)
    >>> at org.eclipse.ui.internal.WorkbenchPage.openEditor
    >>> (WorkbenchPage.java:2493)
    >>> at org.eclipse.ui.actions.OpenWithMenu.openEditor
    >>> (OpenWithMenu.java:288)
    >>> at org.eclipse.ui.actions.OpenWithMenu.access$0
    >>> (OpenWithMenu.java:280)
    >>> at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent
    >>> (OpenWithMenu.java:184)
    >>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
    >>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1496)
    >>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
    >>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1505)
    >>> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
    >>> at org.eclipse.swt.widgets.Display.runDeferredEvents
    >>> (Display.java:3312)
    >>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:
    >>> 2941)
    >>> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:
    >>> 1914)
    >>> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
    >>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
    >>> (Workbench.java:419)
    >>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench
    >>> (PlatformUI.java:149)
    >>> at org.eclipse.ui.internal.ide.IDEApplication.run
    >>> (IDEApplication.java:95)
    >>> at org.eclipse.core.internal.runtime.PlatformActivator$1.run
    >>> (PlatformActivator.java:78)
    >>> at
    >>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppl
    >>> ication(EclipseAppLauncher.java:92)
    >>> at
    >>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start
    >>> (EclipseAppLauncher.java:68)
    >>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run
    >>> (EclipseStarter.java:400)
    >>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run
    >>> (EclipseStarter.java:177)
    >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    >>> at sun.reflect.NativeMethodAccessorImpl.invoke
    >>> (NativeMethodAccessorImpl.java:39)
    >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke
    >>> (DelegatingMethodAccessorImpl.java:25)
    >>> at java.lang.reflect.Method.invoke(Method.java:585)
    >>> at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
    >>> at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
    >>> at org.eclipse.core.launcher.Main.run(Main.java:977)
    >>> at org.eclipse.core.launcher.Main.main(Main.java:952)
    >>> Caused by:
    >>> org.objectstyle.wolips.eomodeler.model.DuplicateAttributeNameExcepti
    >>> on: There is already an attribute named 'size' in EOJDBCPrototypes.
    >>> at
    >>> org.objectstyle.wolips.eomodeler.model.EOEntity._checkForDuplicateAt
    >>> tributeName(EOEntity.java:298)
    >>> at org.objectstyle.wolips.eomodeler.model.EOEntity.addAttribute
    >>> (EOEntity.java:333)
    >>> at org.objectstyle.wolips.eomodeler.model.EOEntity.loadFromMap
    >>> (EOEntity.java:444)
    >>> at org.objectstyle.wolips.eomodeler.model.EOEntity.loadFromFile
    >>> (EOEntity.java:408)
    >>> ... 49 more
    >>>
    >>>
    >>> <Prototypes.eomodeld>
    >>
    >



    This archive was generated by hypermail 2.0.0 : Sun Jul 09 2006 - 13:14:46 EDT