Bonjour,

J'essaye de générer un modèle UML avec la librairie UML2 d'Eclipse.
Seulement quand je veux appliquer un stéréotype sur une classe, il lève une erreur :
Exception in thread "main" java.lang.IllegalArgumentException: org.eclipse.uml2.uml.internal.impl.StereotypeImpl@210b5b (name: type, visibility: <unset>) (isLeaf: false, isAbstract: false) (isActive: false)
at org.eclipse.uml2.uml.internal.operations.ElementOperations.applyStereotype(ElementOperations.java:1410)
at org.eclipse.uml2.uml.internal.impl.ElementImpl.applyStereotype(ElementImpl.java:501)
at TestUML.create(TestUML.java:104)
at TestUML.main(TestUML.java:178)
Pourtant j'ai créé un profil, il s'applique bien à mon modèle (si je sauvegarde sans appliquer le stéréotype, je vois bien le profile dans le fichier uml généré), donc là je suis un peu perdu et mes recherches ne m'ont pas aidé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
ResourceSet metaResourceSet = new ResourceSetImpl();
 
        metaResourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
                .put("uml", new UMLResourceFactoryImpl());
 
        Resource metaResource = metaResourceSet.createResource(URI.createURI("./bookUML.uml"));
 
        Model model = UMLFactory.eINSTANCE.createModel();
        String name = "test";
        model.setName(name);
        String packageName = "library";
        org.eclipse.uml2.uml.Package package_ = model.createNestedPackage(packageName);
 
 
        Profile profile = UMLFactory.eINSTANCE.createProfile();
        profile.setName("profile");
        System.out.println("Profile '" + profile.getQualifiedName() + "' created.");
        Stereotype stereotype = profile.createOwnedStereotype("type", false);
        System.out.println("Stereotype '" + stereotype.getQualifiedName() + "' created.");       
 
 
        org.eclipse.uml2.uml.Class class_ = package_.createOwnedClass(name,    false);
 
        PrimitiveType primitiveType = (PrimitiveType) package_.createOwnedPrimitiveType(name);
        Property attribute = class_.createOwnedAttribute("book", primitiveType,    0, 1);
        Property attribute2 = class_.createOwnedAttribute("movie",    primitiveType, 0, 1);
 
        metaResource.getContents().add(model);
        metaResource.getContents().add(profile);
 
        profile.define();
 
        model.applyProfile(profile);
        class_.applyStereotype(stereotype);
 
        try {
            if(metaResource == null)
                System.out.println("pas de resource");
            metaResource.save(null);
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
Est-ce qu'il y a quelque chose que je fais mal, ou ai-je juste oublié quelque chose ?

Merki d'avance pour toute aide