public void endElement(String elementName) { if (elementName.equals(Tag.listaDP)) { bListaDP = false; return; } if (elementName.equals(Tag.threadElement)) { bThreadElement = false; return; } if (elementName.equals(Tag.listaStato)) { bListaStato = false; return; } if (elementName.equals(Tag.elementoStato)) { bElementoStato = false; ElementoStato es = new ElementoStato(new Point(0, 0), tipo, nome, true, id, null); es.setOnEntryCode(onEntryCode); es.setOnExitCode(onExitCode); threadElement.getListaStato().addElement(es); return; } // lista Messaggio if (elementName.equals(Tag.listaMessaggio)) { bListaMessaggio = false; return; } if (elementName.equals(Tag.elementoMessaggio)) { ElementoStato from = (ElementoStato) threadElement.getListaStato().getElementoById(idStatoFrom); ElementoStato to = (ElementoStato) threadElement.getListaStato().getElementoById(idStatoTo); bElementoMessaggio = false; ElementoMessaggio em = new ElementoMessaggio(threadElement, from, to, tipo, nome, rff, true, id, null); em.setGuard(guard); em.setOperations(operations); em.setParameters(parameters); em.setSendReceive(modality); threadElement.getListaMessaggio().addElement(em); guard = ""; operations = ""; parameters = new LinkedList(); return; } // fine ListaMessaggio }
/** * controlla ThreadElement * * @param eName tag da controllare * @param attrs Attributi */ private void createThreadElement(String eName, Attributes attrs) { // thread element if (bThreadElement) { if (bListaStato) { if (!bElementoStato) { tipo = Integer.parseInt(attrs.getValue(Tag.att_EST_tipo)); id = util.strToId(attrs.getValue(Tag.att_EST_id)); nome = attrs.getValue(Tag.att_EST_nome); bElementoStato = true; return; } if (eName.equals(Tag.onEntryCode)) { bOnEntryCode = true; return; } if (eName.equals(Tag.onExitCode)) { bOnExitCode = true; return; } } // sto nei messaggi if (bListaMessaggio) { if (!bElementoMessaggio) { // primo elemento messaggio incontrato tipo = Integer.parseInt(attrs.getValue(Tag.att_EME_tipo)); id = util.strToId(attrs.getValue(Tag.att_EME_id)); nome = attrs.getValue(Tag.att_EME_nome); modality = Integer.parseInt(attrs.getValue(Tag.att_EME_sendReceive)); flussodiretto = util.strToBool(attrs.getValue(Tag.att_EME_flussodiretto)); rff = Integer.parseInt(attrs.getValue(Tag.att_EME_rff)); bElementoMessaggio = true; return; } if (eName.equals(Tag.elementoStatoFrom)) { idStatoFrom = util.strToId(attrs.getValue(Tag.att_ESFrom_idref)); return; } if (eName.equals(Tag.elementoStatoTo)) { idStatoTo = util.strToId(attrs.getValue(Tag.att_ESTo_idref)); return; } if (eName.equals(Tag.guard)) { bGuard = true; return; } if (eName.equals(Tag.parametri)) { parameters = new LinkedList(); bParameters = true; return; } if (eName.equals(Tag.elementoParam)) { bElementoParam = true; return; } if (eName.equals(Tag.operations)) { bOperations = true; return; } } if (eName.equals(Tag.listaStato)) { bListaStato = true; return; } if (eName.equals(Tag.listaMessaggio)) { bListaMessaggio = true; return; } } // fine thread Element // preleva gli attributi di threadElement e lo costruisce if (eName.equals(Tag.threadElement)) { bThreadElement = true; if (plugData != null) { listaThread = plugData.getListaDP().getListaThread(idProcessoDP); threadElement = new ThreadElement(attrs.getValue(Tag.att_TE_nome), listaThread, plugData); threadElement.setNumStato(new Long(attrs.getValue(Tag.att_TE_numStato)).longValue()); listaThread.add(threadElement); } return; } // preleva il riferimento al processo if (eName.equals(Tag.listaThread)) { idProcessoDP = util.strToId(attrs.getValue(Tag.att_LT_processo)); return; } }