Re: [mdr-users] NullPointerException
Cheng yong <[email protected]> Tue, 19 Jul 2005 02:33:42 -0700 (PDT)
| Newsgroups | gmane.comp.java.netbeans.modules.mdr.user |
|---|---|
| Message-ID | <[email protected]> |
Hello, Leo and other MDR experts,
I'm still litte confused about using MDR to create one activty graph in XMI.
I tried to do following things:
// connect to the repository
MDRepository repository = MDRManager.getDefault().getDefaultRepository();
ModelPackage modelPackage=null;
// Init Repository with UML 1.4 metamodel (M2)
try{
modelPackage = (ModelPackage)repository.createExtent("TEST MODEL");
URL xmiSpemMetamodel = this.getClass().getResource("01-02-15_Diff.xml");
System.out.println( xmiSpemMetamodel.getContent().toString());
XMIReader xmiReader = XMIReaderFactory.getDefault().createXMIReader();
xmiReader.read(xmiSpemMetamodel.toString(), modelPackage);
} catch(Exception e){
e.printStackTrace();
}
According to the Leo's clues, I should init the activity model extent (M1), I found the MofPackage with the name "Activity_Graphs", but I don't know which resource file I should provide as metamodel. The metamodel is already included in 01-02-15_Diff.xml, istn't it? Why should do it again?
I'm sorry to bother you with such questions. I hope that you can help me.
regards
lucia
Leonardo Gresta Paulino Murta <[email protected]> wrote:
Hello,
You need to load your metamodel first... Take a look on the following
code (it uses SPEM metamodel, but the idea is almost the same for UML -
In the case of UML you will need to search for a package named Model and
instantiate it...):
// Init Repository with SPEM metamodel (M2)
ModelPackage modelPackage =
(ModelPackage)repository.createExtent(METAMODEL_EXTENT);
URL xmiSpemMetamodel = this.getClass().getResource(SPEM_METAMODEL);
xmiReader.read(xmiSpemMetamodel.toString(), modelPackage);
// Init the SPEM model extent (M1)
Iterator iterator = modelPackage.getMofPackage().refAllOfClass().iterator();
while (iterator.hasNext()) {
MofPackage mofPackage = (MofPackage)iterator.next();
if ("SPEM".equals(mofPackage.getName())) {
spemPackage = (SpemPackage)repository.createExtent(MODEL_EXTENT,
mofPackage);
URL xmiSpemModel = this.getClass().getResource(SPEM_MODEL);
xmiReader.read(xmiSpemModel.toString(), spemPackage);
break;
}
}
Leo
Cheng yong wrote:
> Hello, everyone,
>
> I'm now making my own example according to the online document and try
> to figure out how the MDR works. Now I have got an NullPointerException
> Error. Can anyone help me?
>
> What I did is as following:
> 1. NetBeans IDE 3.5.1: imported Metadata UML 1.4 (01-02-15_Diff.xml) and
> generated the JMI Interfaces.
> 2. Eclipse 3.1: created a new project, added all .jar files which I can
> find in the installation folder, imported all generated files.
> 3. Eclipse 3.1: created a new demo class,
>
> package demo;
> import java.io.OutputStream;
> import java.util.Iterator;
> import org.netbeans.api.mdr.MDRManager;
> import org.netbeans.api.mdr.MDRepository;
> import org.netbeans.api.xmi.XMIWriterFactory;
> import org.omg.uml.*;
> import org.omg.uml.behavioralelements.activitygraphs.*;
> public class Demo {
>
> public static void main(String[] args) {
>
> OutputStream out = null;
>
> MDRepository repository =
> MDRManager.getDefault().getDefaultRepository();
>
> UmlPackage extent = (UmlPackage) repository.getExtent("Projects
> metadata");
> try{
>
> XMIWriterFactory.getDefault().createXMIWriter().write(out,extent,"1.2");
> System.out.println(out.toString());
> } catch(Exception e){
> System.out.println("ERROR!");
> }
> }
> }
> 4. Eclipse 3.1: runed the demo, got the error:
>
> java.lang.NullPointerException
> at
> org.netbeans.modules.mdr.MDRManagerImpl.refreshChildren(MDRManagerImpl.java:61)
> at org.netbeans.modules.mdr.MDRManagerImpl.init(MDRManagerImpl.java:84)
> at
> org.netbeans.modules.mdr.MDRManagerImpl.getRepository(MDRManagerImpl.java:94)
> at
> org.netbeans.modules.mdr.MDRManagerImpl.getDefaultRepository(MDRManagerImpl.java:105)
> at demo.Demo.main(Demo.java:18)
> Exception in thread "main"
>
> thanks
>
> Lucia
>
> ------------------------------------------------------------------------
> Start your day with Yahoo! - make it your home page
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com