IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

le cast de IState pose problème


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut le cast de IState pose problème
    Bonjour,

    J'ai besoin d'assigner sDep, de type IState, à la méthode setLink :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			IState sDep = diagram.getInvokeState();
    			IMacroState sInv = (IMacroState)sDep;
    			Utils.setLink( diagram, sInv, Frequency.NORMAL, preconditionNormalized.Sujet, operState);
    or l'affectation de sDep à sInv déclenche une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.lang.ClassCastException: com.all4tec.matelo.datamodel.diagram.impl.State cannot be cast to com.all4tec.matelo.datamodel.diagram.IMacroState
    	at com.all4tec.matelo.linguistique.wizards.BuildModel.BuildMainModel(BuildModel.java:2688)
    	at com.all4tec.matelo.linguistique.wizards.BuildModel.buildModel(BuildModel.java:3759)
    	at com.all4tec.matelo.linguistique.wizards.LinguistiqueImportWizard.performFinish(LinguistiqueImportWizard.java:104)
    celui qui m'orientera sera

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Tout ce qu'on peut te dire, c'est que la méthode diagram.getInvokeState() renvoie un objet qui implémente IState, et que la classe réelle que tu récupères (com.all4tec.matelo.datamodel.diagram.impl.State) n'implémente pas IMacroState...


    Pour avoir un exemple plus parlant, c'est comme si tu demandais un MorceauDeViande à ton boucher et que tu voulais le faire passer pour un CoffreFort... Ca ne marchera pas...

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Je m'en suis sortie
    en implémentant 3 méthodes setLink:
    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
    	public static ITransition setLink(IDiagram diagram, IMacroState stateFrom, Frequency frequency, String name, IMacroState stateTo)
    	{
    		ITransition transition;
    		IDiagramFactory diagramFactory = IDiagramFactory.eINSTANCE;
    		transition = diagramFactory.createTransition(getProfilesOfCurrentProject(), getAttributesOfCurrentProject(), getTestPlatformAssociationNodes(), name, stateFrom, stateTo);
    		transition.setName( name);
    		Entry<IProfile, IProbability> probabilityEntry = transition.getProbabilities().get(0);
    		IProbability probability = probabilityEntry.getValue();
    		transition.setSourceState(stateFrom);
    		transition.setTargetState(stateTo);
    		probability.setFrequency(frequency);
    		diagram.getTransitions().add(transition);
    		return( transition);
    	}
    	public static ITransition setLink(IDiagram diagram, IState stateFrom, Frequency frequency, String name, IMacroState stateTo)
    	{
    		ITransition transition;
    		IDiagramFactory diagramFactory = IDiagramFactory.eINSTANCE;
    		transition = diagramFactory.createTransition(getProfilesOfCurrentProject(), getAttributesOfCurrentProject(), getTestPlatformAssociationNodes(), name, stateFrom, stateTo);
    		transition.setName( name);
    		Entry<IProfile, IProbability> probabilityEntry = transition.getProbabilities().get(0);
    		IProbability probability = probabilityEntry.getValue();
    		transition.setSourceState(stateFrom);
    		transition.setTargetState(stateTo);
    		probability.setFrequency(frequency);
    		diagram.getTransitions().add(transition);
    		return( transition);
    	}
    	public static ITransition setLink(IDiagram diagram, IMacroState stateFrom, Frequency frequency, String name, IState stateTo)
    	{
    		ITransition transition;
    		IDiagramFactory diagramFactory = IDiagramFactory.eINSTANCE;
    		transition = diagramFactory.createTransition(getProfilesOfCurrentProject(), getAttributesOfCurrentProject(), getTestPlatformAssociationNodes(), name, stateFrom, stateTo);
    		transition.setName( name);
    		Entry<IProfile, IProbability> probabilityEntry = transition.getProbabilities().get(0);
    		IProbability probability = probabilityEntry.getValue();
    		transition.setSourceState(stateFrom);
    		transition.setTargetState(stateTo);
    		probability.setFrequency(frequency);
    		diagram.getTransitions().add(transition);
    		return( transition);
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CFormView::OnIntialUpdate() pose problème
    Par jacklafrip dans le forum MFC
    Réponses: 1
    Dernier message: 26/09/2006, 15h37
  2. caractère \ pose problème
    Par questionneuse dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/07/2006, 16h25
  3. Un cast de SmartPointer qui pose probléme
    Par Higestromm dans le forum C++
    Réponses: 3
    Dernier message: 13/10/2005, 10h25
  4. jointure externe avec un where, me pose problème!
    Par Danae dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/07/2005, 17h37
  5. Réponses: 3
    Dernier message: 17/05/2005, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo