/** * 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; } }
public Object[] getList(SchemaEntry schemaEntry) { String elementName = schemaEntry.getElementName(); String elementParentName = schemaEntry.getElementParentName(); Object parentInstanceElement = null; if (schemaEntry.getParent() != null) parentInstanceElement = schemaEntry.getParent().getInstanceElement(); if ((elementName.compareTo(Tag.listaThread) == 0) && (elementParentName.compareTo(Tag.listaDP) == 0)) { ArrayList result = new ArrayList(); ListaDP listaDp = ((ListaDP) parentInstanceElement); for (int i = 0; i < listaDp.size(); i++) { result.add(listaDp.get(i)); } return (Object[]) result.toArray(new Object[result.size()]); } if ((elementName.compareTo(Tag.threadElement) == 0) && (elementParentName.compareTo(Tag.listaThread) == 0)) { ArrayList result = new ArrayList(); ListaThread listaThread = ((ListaThread) parentInstanceElement); Iterator ite = listaThread.iterator(); while (ite.hasNext()) { ThreadElement te = (ThreadElement) ite.next(); result.add(te); } return (Object[]) result.toArray(new Object[result.size()]); } if ((elementName.compareTo(Tag.elementoStato) == 0) && (elementParentName.compareTo(Tag.listaStato) == 0)) { ArrayList result = new ArrayList(); ListaStato listaStato = ((ListaStato) parentInstanceElement); Iterator ite = listaStato.iterator(); while (ite.hasNext()) { ElementoStato es = (ElementoStato) ite.next(); result.add(es); } return (Object[]) result.toArray(new Object[result.size()]); } if ((elementName.compareTo(Tag.elementoMessaggio) == 0) && (elementParentName.compareTo(Tag.listaMessaggio) == 0)) { ArrayList result = new ArrayList(); ListaMessaggio listaMessaggio = ((ListaMessaggio) parentInstanceElement); Iterator ite = listaMessaggio.iterator(); while (ite.hasNext()) { ElementoMessaggio em = (ElementoMessaggio) ite.next(); result.add(em); } return (Object[]) result.toArray(new Object[result.size()]); } if ((elementName.compareTo(Tag.elementoParam) == 0) && (elementParentName.compareTo(Tag.parametri) == 0)) { LinkedList listaParametri = ((ElementoMessaggio) (schemaEntry.getParent().getParent().getInstanceElement())) .getParameters(); ArrayList result = new ArrayList(); Iterator ite = listaParametri.iterator(); while (ite.hasNext()) { result.add(ite.next()); } return (Object[]) result.toArray(new Object[result.size()]); } return null; }