Re: use of refVerifyConstraints method
Bin Fu <[email protected]> Tue, 30 Sep 2003 15:49:11 +0200
| Newsgroups | gmane.comp.java.netbeans.modules.mdr.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
I've read specification of method "refVerifyConstraints", but I still
don't know how to import an XMI file and then invoke this method. Do you
know anywhere that I can find a little sample code for use of
refVerifyConstraints?
I found the following text from
http://mdr.netbeans.org/custom_implementations.html: "
The second possibility to implement some constraint checks is
implementing the *_verify(...)*method. This method is invoked as a
callback from refVerifyConstraints(...), thus, it serves for an "on
demand" verification of element's constraints. A correct implementation
of the _verify(...) method should always call super._verify(...).
protected Collection _verify(Collection verify) {
super._verify(verify);
// do your stuff here
}
"
But this is too rough for me.
And as a beginner of MDR I've got so much support from you, thanks again!
Regards
Bin
Martin Matula wrote:
> Hi,
> no, this is not possible. Moreover, the problem you probably have is
> not with the incorrectness of the XMI file - the XMI file is correct,
> but the model serialized in it is not wellformed in a sense that it
> seems to break some deferred constraints. One way to find out which
> elements break this constraint is to try to call refVerifyConstraints
> on them programatically.
> Martin
>
> Bin Fu wrote:
>
>> Hi, Martin,
>>
>> is there any way to execute the XML file with MDR step by step (such
>> like "debug mode"), so that I can find what is needed in my XML file?
>> I found that there is a link to "source code" under mdr.netbeans.org,
>> but I failed to find source code of MDR.
>>
>> Thanks!
>> Kind regards
>>
>> Bin
>>
>>
>>
>> Martin Matula wrote:
>>
>>> Hi,
>>> it seems that for some reason, scope of an attribute (whether it is
>>> a classifier level or instance level) is not set, so the metamodel
>>> you are trying to generate the interfaces from is not well-formed.
>>> Martin
>>>
>>> Bin Fu wrote:
>>>
>>>> Dear Martin,
>>>>
>>>> thanks for your answer. I found out the problem that is exactly as
>>>> what you said.
>>>> After I solved this problem, I am able to load xml file into MDR
>>>> without problem. And then I selected some packages that I need and
>>>> clicked righ mouse to try to export them as JMI interfaces.
>>>> Afterwards one error message came: "Exception occurred in Request
>>>> Processor" (Details is shown following)
>>>>
>>>> Now that xml file can already be loaded, why is there still problem?
>>>> Thanks again!
>>>>
>>>> Bin
>>>>
>>>>
>>>> Annotation: Exception occurred in Request Processor
>>>> java.lang.NullPointerException
>>>> at
>>>> org.netbeans.lib.jmi.mapping.JavaMapper$ClassContents.<init>(JavaMapper.java:621)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.JavaMapper$ClassContents.<init>(JavaMapper.java:592)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.JavaMapper.getClassContents(JavaMapper.java:587)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.JavaMapper.classInstanceTemplate(JavaMapper.java:548)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:344)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:331)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:335)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:335)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefObject(GenericMapper.java:335)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.GenericMapper.visitRefBaseObject(GenericMapper.java:399)
>>>>
>>>> at
>>>> org.netbeans.lib.jmi.mapping.JMIMapperImpl.generate(JMIMapperImpl.java:57)
>>>>
>>>> at
>>>> org.netbeans.modules.mdrexplorer.looks.reflect.actions.Map2JavaAction$1.run(Map2JavaAction.java:75)
>>>>
>>>> at org.openide.util.Task.run(Task.java:136)
>>>> at
>>>> org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:328)
>>>> [catch] at
>>>> org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:670)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Martin Matula wrote:
>>>>
>>>>> The reason for this error usually is that there is xmi.idref
>>>>> element pointing to an object that does not exist. In this case,
>>>>> it seems that there is xmi.idref="String" (something references an
>>>>> object with id="String"), but there seems to be no object defined
>>>>> in the XMI file that would have the xmi.id attribute set to "String".
>>>>> Martin
>>>>>
>>>>> Bin Fu wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> If I use MDR to process a parsered XML file, following error
>>>>>> message will occur
>>>>>> What could be the reason?
>>>>>>
>>>>>> Bin
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> javax.jmi.xmi.MalformedXMIException:
>>>>>> org.netbeans.lib.jmi.util.DebugException: Unknown reference or
>>>>>> circularity in instance dependences detected, bad reference: String
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:77)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:59)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.modules.mdrexplorer.looks.reflect.actions.LoadXMIAction$1.run(LoadXMIAction.java:111)
>>>>>>
>>>>>> at org.openide.util.Task.run(Task.java:136)
>>>>>> at
>>>>>> org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:328)
>>>>>>
>>>>>> [catch] at
>>>>>> org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:670)
>>>>>>
>>>>>> ==>
>>>>>> Annotation: XMI parsing error at line: 16685: Unknown reference
>>>>>> or circularity in instance dependences detected, bad reference:
>>>>>> String
>>>>>> org.netbeans.lib.jmi.util.DebugException: Unknown reference or
>>>>>> circularity in instance dependences detected, bad reference: String
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiSAXReader.endElement(XmiSAXReader.java:252)
>>>>>>
>>>>>> at
>>>>>> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1683)
>>>>>> at org.apache.crimson.parser.Parser2.content(Parser2.java:1926)
>>>>>> at
>>>>>> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654)
>>>>>> at
>>>>>> org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634)
>>>>>> at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
>>>>>> at
>>>>>> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
>>>>>>
>>>>>> at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiSAXReader.read(XmiSAXReader.java:118)
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiSAXReader.read(XmiSAXReader.java:99)
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:71)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:59)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.modules.mdrexplorer.looks.reflect.actions.LoadXMIAction$1.run(LoadXMIAction.java:111)
>>>>>>
>>>>>> at org.openide.util.Task.run(Task.java:136)
>>>>>> at
>>>>>> org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:328)
>>>>>>
>>>>>> [catch] at
>>>>>> org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:670)
>>>>>>
>>>>>> ==>
>>>>>> org.netbeans.lib.jmi.util.DebugException: Unknown reference or
>>>>>> circularity in instance dependences detected, bad reference: String
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiElement$Content.endElement(XmiElement.java:395)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiSAXReader.endElement(XmiSAXReader.java:240)
>>>>>>
>>>>>> at
>>>>>> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1683)
>>>>>> at org.apache.crimson.parser.Parser2.content(Parser2.java:1926)
>>>>>> at
>>>>>> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654)
>>>>>> at
>>>>>> org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634)
>>>>>> at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
>>>>>> at
>>>>>> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
>>>>>>
>>>>>> at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiSAXReader.read(XmiSAXReader.java:118)
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XmiSAXReader.read(XmiSAXReader.java:99)
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:71)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.lib.jmi.xmi.XMISaxReaderImpl.read(XMISaxReaderImpl.java:59)
>>>>>>
>>>>>> at
>>>>>> org.netbeans.modules.mdrexplorer.looks.reflect.actions.LoadXMIAction$1.run(LoadXMIAction.java:111)
>>>>>>
>>>>>> at org.openide.util.Task.run(Task.java:136)
>>>>>> at
>>>>>> org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:328)
>>>>>>
>>>>>> [catch] at
>>>>>> org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:670)
>>>>>>
>>>>>> ==>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>