1 6 package cve.esecutori.components.specificaLV; 7 8 import cve.esecutori.servizioEACesec.*; 9 import cve.staticLayout.*; 10 import cve.util.*; 11 12 import java.io.*; 13 import java.util.*; 14 15 import org.jdom.*; 16 import org.jdom.input.SAXBuilder; 17 import org.jdom.output.XMLOutputter; 18 19 import org.apache.log4j.Logger; 20 21 26 final public class Specifica implements ISpecifica, Cloneable { 27 28 31 private Document docReg,docAlf; 32 33 37 private HashMap relationSet, nonRelSet; 38 39 42 private HashSet elementFree; 43 44 47 private HashSet elementAlf; 48 49 54 private HashMap scheletro; 55 56 60 private HashMap rappresentation; 61 62 private Rules rules; 63 64 66 67 74 public Specifica(String FileReg,String FileAlf)throws java.io.IOException { 75 Cve.errLog.debug(""); 76 relationSet=new HashMap(); 77 nonRelSet=new HashMap(); 78 scheletro=new HashMap(); 79 rappresentation=new HashMap(); 80 elementFree=new HashSet(); 81 elementAlf=new HashSet(); 82 rules=new Rules(); 83 buildDocument(FileAlf,FileReg); 85 Element rootReg=docReg.getRootElement(); 86 AnalizzaRegoleW.freeCreation(rootReg); 88 partitionElement(); 90 setRules(); 93 creaGrafoAssociazioni(); 96 } 97 98 105 public Specifica(String FileAlf)throws java.io.IOException { 106 Cve.errLog.debug(""); 107 relationSet=new HashMap(); 108 nonRelSet=new HashMap(); 109 scheletro=new HashMap(); 110 rappresentation=new HashMap(); 111 elementAlf=new HashSet(); 112 buildDocument(FileAlf); 114 partitionElement(); 117 } 118 119 public Object clone() { 120 Cve.errLog.debug(""); 121 try { 122 Specifica spe=(Specifica)super.clone(); 123 return (Object )spe; 124 }catch(CloneNotSupportedException e){ 125 Cve.errLog.error(e.toString()); 126 throw new InternalError (e.toString()); 127 } 128 } 129 130 135 public Collection getRelation() { 136 Cve.errLog.debug(""); 137 return ((Collection)(relationSet.values())); 138 } 139 140 145 public Rules getRules() { 146 Cve.errLog.debug(""); 147 return rules; 148 } 149 150 155 public Collection getNonRelation() { 156 Cve.errLog.debug(""); 157 return ((Collection)(nonRelSet.values())); 158 } 159 160 165 public Map getScheletro() { 166 Cve.errLog.debug(""); 167 return (scheletro); 168 } 169 170 176 public Map getRappresentation() { 177 Cve.errLog.debug(""); 178 return (rappresentation); 179 } 180 181 186 public Collection getRelationAssociation(){ 187 Cve.errLog.debug(""); 188 return ((Collection)(relationSet.values())); 189 } 190 191 201 public Set getTarget (ElementRel relAss, ElementNonRel ele) { 202 Cve.errLog.debug(""); 205 System.out.println(" Specifica.getTarget: relazione: "+ relAss.getName() + " NonRel: " + ele.getName()); 206 207 Element eleNonRel=ele.getElementXml(); 208 Element relAlf=relAss.getElementXml(); 209 if (relAss!=null){ 210 HashSet linkAll=new HashSet(relAss.getLinkAll()); 212 Iterator itLinks=linkAll.iterator(); 214 while (itLinks.hasNext()){ 215 LinkRelNonRel linkCercato=(LinkRelNonRel)itLinks.next(); 216 String nameEleLink=((ElementNonRel)linkCercato.getNonRel()).getElementXml().getAttributeValue("name"); 217 String nameEleCercato=eleNonRel.getAttributeValue("name"); 218 if (nameEleLink.equals(nameEleCercato)) { 219 Vector app=new Vector(linkCercato.getTarget()); 220 for (int i=0;i<app.size();i++) { 222 System.out.println(" Specifica.getTarget: per la relazione: "+ relAlf.getAttributeValue("name") + " ed elemento: " + eleNonRel.getAttributeValue("name") + " Il TARGET è: " + (String )app.get(i)); 225 226 } return linkCercato.getTarget(); 228 } 229 } 230 } 231 return null; 232 } 233 234 239 public Collection getFreeCreation() { 240 Cve.errLog.debug(""); 241 return elementFree; 242 } 243 244 248 public Collection getElementAlf(){ 249 Cve.errLog.debug(""); 250 return elementAlf; 251 } 252 253 263 public Set getSource (ElementRel relAss,ElementNonRel ele) { 264 Cve.errLog.debug(""); 268 System.out.println(" Specifica.getSource: relazione: "+ relAss.getName() + " NonRel: " + ele.getName()); 269 270 Element eleNonRel=ele.getElementXml(); 271 if (relAss!=null){ 273 HashSet linkAll=new HashSet(relAss.getLinkAll()); 274 Iterator itLinks=linkAll.iterator(); 276 while (itLinks.hasNext()){ 277 LinkRelNonRel linkCercato=(LinkRelNonRel)itLinks.next(); 278 String nameEleLink=((ElementNonRel)linkCercato.getNonRel()).getElementXml().getAttributeValue("name"); 279 String nameEleCercato=eleNonRel.getAttributeValue("name"); 280 if (nameEleLink.equals(nameEleCercato)){ 281 if (linkCercato.getSource()!=null){ 283 Vector app=new Vector(linkCercato.getSource()); 284 for (int i=0;i<app.size();i++){ 285 ViewLog.writeInLog(" Rispetto alla relazione= "+((Element)(relAss.getElementXml())).getAttributeValue("name")+" e all'elemento="+eleNonRel.getAttributeValue("name")+"\n" ); 286 ViewLog.writeInLog(" Il source e' "+(String )app.get(i)+"\n" ); 287 System.out.println(" Specifica.getSource: per la relazione: "+ ((Element)(relAss.getElementXml())).getAttributeValue("name") + " ed elemento: " + eleNonRel.getAttributeValue("name") + " Il SOURCE è: " + (String )app.get(i)); 288 } 289 } 290 return linkCercato.getSource(); 291 } 292 } 293 } 294 return null; 295 } 296 297 305 public Set getSourceTarget (ElementRel relAss, ElementNonRel ele) { 306 Cve.errLog.debug(""); 310 System.out.println(" Specifica.getSourceTarget: relazione: "+ relAss.getName() + " NonRel: " + ele.getName()); 311 312 Element eleNonRel=ele.getElementXml(); 313 Element relAlf=relAss.getElementXml(); 314 if (relAss!=null) { 316 HashSet linkAll=new HashSet(relAss.getLinkAll()); 317 Iterator itLinks=linkAll.iterator(); 319 while (itLinks.hasNext()) { 320 LinkRelNonRel linkCercato=(LinkRelNonRel)itLinks.next(); 321 String nameEleLink=((ElementNonRel)linkCercato.getNonRel()).getElementXml().getAttributeValue("name"); 322 String nameEleCercato=eleNonRel.getAttributeValue("name"); 323 if (nameEleLink.equals(nameEleCercato)) { 325 if (linkCercato.getSourceTarget()!=null) { 327 Vector app=new Vector(linkCercato.getSourceTarget()); 328 for (int i=0;i<app.size();i++){ 329 ViewLog.writeInLog(" Rispetto alla relazione= "+relAlf.getAttributeValue("name")+" e all'elemento= "+eleNonRel.getAttributeValue("name") +"\n"); 330 ViewLog.writeInLog(" Un sourceTarget e' "+(String )app.get(i)+"\n" ); 331 System.out.println(" Specifica.getSourceTarget: per la relazione: "+ relAlf.getAttributeValue("name") + " ed elemento: " + eleNonRel.getAttributeValue("name") + " Il SOURCETARGET è: " + (String )app.get(i)); 332 } 333 } 334 return linkCercato.getSourceTarget(); 335 } 336 } 337 } 338 return null; 339 } 340 341 344 public static void main(String [] args) throws java.io.IOException { 345 InputStreamReader ir,ir1; 346 System.out.println("dammi l'alfabeto da caricare"); 347 ir=new InputStreamReader(System.in); BufferedReader in=new BufferedReader (ir); String filealfa=in.readLine(); 350 System.out.println("dammi le regole da caricare"); 351 ir1=new InputStreamReader(System.in); BufferedReader in1=new BufferedReader (ir1); String filerego=in1.readLine(); 354 355 System.out.println(""); 356 System.out.println(" SIMULAZIONE DELL'ANALISI DI UNA SPECIFICA: ALFABETO e REGOLE. (Specifica.class)"); 357 System.out.println(""); 358 Specifica spe=new Specifica(filerego,filealfa); 359 360 System.out.println(""); 361 System.out.println(" SIMULAZIONE SPECIFICA solo alfabeto"); 362 System.out.println(""); 363 Specifica spe1=new Specifica(filealfa); 364 } 365 366 368 369 386 private void trovaSourceTarget (Element relAlf){ 387 Cve.errLog.debug(""); 388 System.out.println(" Specifica.trovaSourceTarget: elemento: "+ relAlf.getName()); 389 Element rootReg=docReg.getRootElement(); 390 HashSet elementSource=new HashSet(); 391 List setRule=rootReg.getChildren("Rule"); 392 for(int j=0; j<setRule.size();j++) { boolean trovatoRel=false; 394 Element rule=(Element)(setRule.get(j)); 395 Element relRule=AnalizzaRegoleW.isInConseguente(rule, relAlf); 398 if (relRule!=null) { Object nonO=((Object )( relAlf.getChild("Relation").getChild("Orientation"))); 400 if ( nonO==null ){ List cons=rule.getChild("Conseguente").getChildren(); 402 System.out.println(" Specifica.trovaSourceTarget: RELAZIONE NON ORIENTATA"); 403 if (cons.size()==3){ associazione(relAlf,(Element)cons.get(0),(Element)cons.get(1), "sourceTarget"); 407 associazione(relAlf,(Element)cons.get(1),(Element)cons.get(0), "sourceTarget"); 410 } 411 } 412 else { System.out.println(" Specifica.trovaSourceTarget: RELAZIONE ORIENTATA"); 414 String idSource=AnalizzaRegoleW.findValueAttriEle("source", relRule); 416 idSource=idSource.trim(); 417 System.out.println(" Specifica.trovaSourceTarget: RELAZIONE ORIENTATA source: "+idSource); 418 Element eleSource=AnalizzaRegoleW.findIdElementAnt(rule, idSource); 420 String idTarget=AnalizzaRegoleW.findValueAttriEle("target", relRule); 422 idTarget=idTarget.trim(); 423 System.out.println(" Specifica.trovaSourceTarget: RELAZIONE ORIENTATA target: "+idTarget); 424 425 Element eleTarget=AnalizzaRegoleW.findIdElementAnt(rule, idTarget); 427 if (eleSource!=null&&eleTarget!=null){ 428 System.out.println(" Specifica.trovaSourceTarget: RELAZIONE ORIENTATA: creazione Associazione "); 429 430 associazione(relAlf,eleSource,eleTarget, "target"); 432 associazione(relAlf,eleTarget,eleSource, "source"); 434 } 435 } 436 } 437 } 438 } 439 440 441 451 private void partitionElement(){ 452 Cve.errLog.debug(""); 453 ViewLog.writeInLog(""+"\n"); 454 Element rootAlf=docAlf.getRootElement(); 455 boolean orientationB,relationB; 457 String nameS="",nameT=""; 458 List figliAlf=rootAlf.getChildren(); ViewLog.writeInLog(" ANALISI DELLO SCHELETRO DEGLI ELEMENTI (AnalizzaAlfabetoW.getScheltro() ************"+"\n"); 460 for (int i=0; i<figliAlf.size(); i++){ 461 Representation rap; 462 orientationB=false; 464 relationB=false; 465 Element ele=(Element)(figliAlf.get(i)); List eleAttribute=ele.getAttributes(); 467 List relation=ele.getChildren("Relation"); 470 String name=ele.getAttributeValue("name"); 471 System.out.println(" name --> "+name); 472 elementAlf.add(name); 474 Vector attributi=AnalizzaAlfabetoW.setScheletro(ele,name); 476 scheletro.put(name,(Object )attributi); 477 if (relation.size()==1){ 479 relationB=true; 481 List orient=ele.getChildren("Orientation"); 482 if (orient!=null){ 483 List source=ele.getChildren("Source"); 484 nameS=ele.getAttributeValue("name"); 485 List target=ele.getChildren("Target"); 486 nameT=ele.getAttributeValue("name"); 487 orientationB=true; 488 } 489 rap=AnalizzaAlfabetoW.setRappres(ele,name,relationB,orientationB,nameS,nameT); 490 ElementRel eleRel=new ElementRel(ele,name); 492 relationSet.put((Object )name, (Object )eleRel); 493 ViewLog.writeInLog(" e' una relazione "+"\n"); 494 System.out.println(" name --> "+name+" è una relazione con Source: " + nameS+ " Target: " + nameT); 495 }else { rap=AnalizzaAlfabetoW.setRappres(ele,name,relationB,orientationB,"",""); 498 String nameid=AnalizzaAlfabetoW.findNameId(name,rootAlf); 499 ElementNonRel eleNonRel=new ElementNonRel(ele,name,nameid); 500 System.out.println(" name --> "+name+" nameid ->"+nameid); 501 nonRelSet.put((Object )name, (Object )eleNonRel); 502 ViewLog.writeInLog(" non e' relazione "+"\n"); 503 System.out.println(" name --> "+name+" NON è una relazione"); 504 505 } 506 rappresentation.put(name,rap); 507 } 508 } 509 510 527 private void associazione (Element rel, Element eleEsaminato, Element sourceTarget, String cosafare) { 528 Cve.errLog.debug(""); 529 System.out.println(" Specifica.associazione: relazione: "+ rel.getName() +" eleEsaminato: " + eleEsaminato.getName()+ " SourceTarget: "+sourceTarget.getName()+" CosaFare: "+ cosafare ); 530 531 ElementRel eleRel=(ElementRel)relationSet.get((Object )rel.getAttributeValue("name")); 533 if (eleRel!=null){ 534 LinkRelNonRel lST= eleRel.setLink(eleEsaminato); 536 String nameST=sourceTarget.getAttributeValue("name"); 537 if (cosafare.equals("source")) 539 lST.insertSource(nameST); 540 if (cosafare.equals("sourceTarget")) 541 lST.insertSourceTarget(nameST); 542 if (cosafare.equals("target")) 543 lST.insertTarget(nameST); 544 } 545 } 546 547 private void buildDocument(String FileAlf,String FileReg){ 549 Cve.errLog.debug(""); 550 try { 551 SAXBuilder builder = new SAXBuilder(false); 553 docReg = builder.build(new File(FileReg)); 554 docAlf = builder.build(new File(FileAlf)); 555 } catch (JDOMException e) { 557 Cve.errLog.error(e.toString()); 558 } catch (Exception e) { 559 Cve.errLog.error(e.toString()); 560 } 561 } 562 563 private void buildDocument(String FileAlf){ 565 Cve.errLog.debug(""); 566 try { 567 SAXBuilder builder = new SAXBuilder(false); 569 docAlf = builder.build(new File(FileAlf)); 570 } catch (JDOMException e) { 572 Cve.errLog.error(e.toString()); 573 } catch (Exception e) { 574 Cve.errLog.error(e.toString()); 575 } 576 } 577 578 584 private void creaGrafoAssociazioni() { 585 Cve.errLog.debug(""); 586 ViewLog.writeInLog(" "+"\n"); 587 ViewLog.writeInLog(" CREO LE ASSOCIAZIONI FRA LE RELAZIONI E I SUOI MEMBRI (.creaGrafoAssociazioni() ************"+"\n"); 588 ViewLog.writeInLog(" Per ogni relazione mi interessa sapere quali possono essere i suoi possibili target, source, source-target "+"\n"); 589 ViewLog.writeInLog(" Per otenere tali informazioni devo analizzare tutte le regole dove la relazione e' contenuta"+"\n"); 590 System.out.println(" Specifica.creaGrafoAssociazioni"); 591 Vector rel=new Vector(getRelation()); 594 System.out.println(" Specifica.creaGrafoAssociazioni: numero relazioni: " + rel.size()); 595 596 Vector nonRel=new Vector(getNonRelation()); 598 System.out.println(" Specifica.creaGrafoAssociazioni: numero NON relazioni: " + nonRel.size()); 599 600 for (int i=0;i<rel.size();i++){ 601 ElementRel relAnalizzata=(ElementRel)rel.get(i); 602 String name=((Element)relAnalizzata.getElementXml()).getAttributeValue("name"); 603 trovaSourceTarget( ((Element)relAnalizzata.getElementXml()) ); 606 System.out.println(" Specifica.creaGrafoAssociazioni: STRUTTURA CALCOLATA "); 608 for (int j=0;j<nonRel.size();j++){ 609 ElementNonRel eleAnalizzato=(ElementNonRel)nonRel.get(j); 610 getSource(relAnalizzata,eleAnalizzato); 611 getTarget(relAnalizzata,eleAnalizzato); 612 getSourceTarget(relAnalizzata,eleAnalizzato); 613 } 614 } 615 } 616 617 624 private void setRules(){ 625 Cve.errLog.debug(""); 626 ViewLog.writeInLog(""+"\n"); 627 ViewLog.writeInLog(" CREAZIONE DEI DESCRITTORI DELLE REGOLE (setRules() ************"+"\n"); 628 System.out.println(" CREAZIONE DEI DESCRITTORI DELLE REGOLE (setRules() ************"); 629 630 Vector rels=new Vector(getRelation()); 632 Element rootReg=docReg.getRootElement(); 633 HashSet elementSource=new HashSet(); 634 List setRule=rootReg.getChildren("Rule"); 635 for(int j=0; j<setRule.size();j++) { 637 ViewLog.writeInLog(" Regola "+j+"\n"); 638 System.out.println(" Regola "+j); 639 Rule rul=new Rule(); 641 boolean trovataRelCons=false; 642 Element rule=(Element)(setRule.get(j)); 643 setComment(rule,rul); 645 setId(rule,rul); 646 for (int i=0;i<rels.size();i++){ 649 ElementRel relAnalizzata=(ElementRel)rels.get(i); 650 String nameRel=((Element)relAnalizzata.getElementXml()).getAttributeValue("name"); 651 Element relAlf=((Element)relAnalizzata.getElementXml()); 652 Element relRule=AnalizzaRegoleW.isInConseguente(rule, relAlf); 653 if (relRule!=null) { 655 trovataRelCons=true; 656 rul.setType("rel"); 657 System.out.println(" La Regola "+ j + " Contiene la relazione "+ nameRel); 658 rul.setRel(relAnalizzata); 659 setCondition(rule,rul); 661 setPrecondition(nameRel,rule,rul); 662 setPostcondition(nameRel,rule,rul); 663 Object nonO=((Object )( relAlf.getChild("Relation").getChild("Orientation"))); 664 if ( nonO==null ){ 666 setRelationNonO (nameRel,rule,rul); 667 } else { 669 setRelationO (relRule,rule,rul); 670 } 671 } 672 } 673 if (!(trovataRelCons)){ 674 rul.setType("kfree"); 675 setPostFree(rule,rul); 676 } 677 rules.addRule(rul); 679 } 680 } 681 682 686 private void setPrecondition(String nameRel,Element rule,Rule istRul) { 687 Cve.errLog.debug(""); 688 Vector attrListAnt; 689 Element rootAlf=docAlf.getRootElement(); 690 List ant=rule.getChild("Antecedent").getChildren(); 691 Iterator itAnt=ant.iterator(); 692 while (itAnt.hasNext()){ 694 Element ele=(Element)itAnt.next(); 695 String nameNon=(String )ele.getAttributeValue("name"); 696 if (!(nameNon.equals(nameRel))){ 698 String nameId=AnalizzaAlfabetoW.findNameId(nameNon,rootAlf); 699 System.out.println(" #### Specifica.setPrecondition: Metto in antecedente "+nameNon+ " nome id "+nameId); 701 List attr=ele.getChildren("Attribute"); 702 Iterator itAttr=attr.iterator(); 703 attrListAnt=new Vector(); 704 while (itAttr.hasNext()){ 706 String nameAttr=(String )((Element)itAttr.next()).getAttributeValue("name"); 707 attrListAnt.addElement(nameAttr); 708 System.out.println(" #### Specifica.setPrecondition: In antecedente trovato l'attributo "+nameAttr); 710 } 711 System.out.println(" #### Specifica.setPrecondition: specifica dimensioni attrListAnt sono "+attrListAnt.size() ); 715 ElementNonRel eleNonRel=new ElementNonRel(ele,nameNon,nameId,attrListAnt,null); 716 istRul.addPrecondition(eleNonRel); 718 } 719 } 720 } 721 722 726 private void setPostcondition(String nameRel,Element rule,Rule istRul) { 727 Cve.errLog.debug(""); 728 Element rootAlf=docAlf.getRootElement(); 729 List cons=rule.getChild("Conseguente").getChildren(); 730 Iterator itCons=cons.iterator(); 731 while (itCons.hasNext()){ 733 Element ele=(Element)itCons.next(); 734 setCalcoliPost(ele,istRul); 736 Collection attributeCons=setAttributePost(ele); 738 String nameNon=(String )ele.getAttributeValue("name"); 739 String nameId=AnalizzaAlfabetoW.findNameId(nameNon,rootAlf); 740 if (!(nameNon.equals(nameRel))){ 744 ElementNonRel eleNonRel=new ElementNonRel(ele,nameNon,nameId,null,attributeCons); 746 747 istRul.addConseguent(eleNonRel); 749 } else { ElementRel eleRel=new ElementRel(ele,nameNon,nameId,attributeCons); 751 istRul.addConseguent(eleRel); 753 } 754 755 System.out.println(" #### Specifica.setPostcondition: Metto in Conseguente "+nameNon+ " nome id "+nameId); 756 757 } 758 } 759 760 private void setCalcoliPost(Element ele,Rule istRule) { 762 Cve.errLog.debug(""); 763 List assig=ele.getChildren(); 764 Iterator itAss=assig.iterator(); 765 while (itAss.hasNext()){ 766 Element assignament=(Element)itAss.next(); 767 Element copiaAss=(Element)assignament.clone(); 768 istRule.addAssignmentCons(copiaAss); 769 } 770 } 771 772 private Collection setAttributePost(Element ele) { 775 Cve.errLog.debug(""); 776 String name=ele.getAttributeValue("name"); 777 Vector attributes=new Vector(); 778 List assig=ele.getChildren(); 779 Iterator itAss=assig.iterator(); 780 while (itAss.hasNext()){ 781 Element assignament=(Element)itAss.next(); 782 Element var=assignament.getChild("Var"); 783 if (var!=null){ 784 attributes.add(var.getAttributeValue("name")); 785 System.out.println(" Per l'elemento : " + name + " trovato attributo conseguente "+var.getAttributeValue("name")); 786 } 787 } 788 return attributes; 789 } 790 791 private void setComment(Element rule,Rule istRul) { 793 Cve.errLog.debug(""); 794 String descr=(String )rule.getAttributeValue("description"); 795 istRul.setComment(descr); 797 } 798 799 private void setId(Element rule,Rule istRul) { 801 Cve.errLog.debug(""); 802 String id=(String )rule.getAttributeValue("id"); 803 istRul.setId(id); 805 } 806 807 813 private void setPostFree(Element rule,Rule istRul) { 814 Cve.errLog.debug(""); 815 Element rootAlf=docAlf.getRootElement(); 816 List cons=rule.getChild("Conseguente").getChildren(); 817 Iterator itCons=cons.iterator(); 818 while (itCons.hasNext()){ 819 Element ele=(Element)itCons.next(); 820 String nameNon=(String )ele.getAttributeValue("name"); 821 String nameId=AnalizzaAlfabetoW.findNameId(nameNon,rootAlf); 823 ElementNonRel eleNonRel=new ElementNonRel(ele,nameNon,nameId); 824 istRul.addPostFree(eleNonRel); 826 } 827 } 828 829 830 831 837 private void setCondition(Element rule,Rule istRul){ 838 Cve.errLog.debug(""); 839 if (rule.getChild("Condition")!=null){ 841 List cond=rule.getChild("Condition").getChildren(); 842 Iterator itCond=cond.iterator(); 843 while (itCond.hasNext()){ 844 Element eleCond=(Element)itCond.next(); 845 Element copiaCond=(Element)eleCond.clone(); 846 istRul.addCondition(copiaCond); 847 } 849 } 850 } 851 852 859 private void setRelationNonO (String nameRel,Element rule,Rule istRul) { 860 Cve.errLog.debug(""); 861 List cons=rule.getChild("Conseguente").getChildren(); 862 Iterator itCons=cons.iterator(); 863 while (itCons.hasNext()){ 864 Element ele=(Element)itCons.next(); 865 String nameNon=(String )ele.getAttributeValue("name"); 866 if (!(nameNon.equals(nameRel))){ 868 ElementNonRel eleNonRel=new ElementNonRel(ele,nameNon); 869 System.out.println(" Inserisco come source e come target della relazioneN "+nameNon); 871 istRul.addSource(eleNonRel); 872 istRul.addTarget(eleNonRel); 873 } 874 } 875 } 876 877 884 private void setRelationO (Element relRule,Element rule,Rule istRul) { 885 Cve.errLog.debug(""); 886 ViewLog.writeInLog(" RELAZIONE ORIENTATA"+"\n"); 887 888 System.out.println(" RELAZIONE esaminata-->"+rule.toString()); 890 891 String idSource=AnalizzaRegoleW.findValueAttriEle("source", relRule); 893 894 System.out.println(" rel orientata source cercato :"+idSource); 895 idSource=idSource.trim(); 896 Element eleSource=AnalizzaRegoleW.findIdElementAnt(rule, idSource); 898 String idTarget=AnalizzaRegoleW.findValueAttriEle("target", relRule); 900 idTarget=idTarget.trim(); 901 System.out.println(" rel orientata target cercato "+idTarget); 902 Element eleTarget=AnalizzaRegoleW.findIdElementAnt(rule, idTarget); 904 if (eleSource!=null&&eleTarget!=null){ 905 String nameS=(String )eleSource.getAttributeValue("name"); 907 System.out.println(" metto source "+nameS); 908 String nameT=(String )eleTarget.getAttributeValue("name"); 909 System.out.println(" metto target "+nameT); 910 ViewLog.writeInLog(" Inserisco come source della relazioneO "+nameS+"\n"); 911 ViewLog.writeInLog(" Inserisco come target della relazioneO "+nameT+"\n"); 912 ElementNonRel eleNonRelS=new ElementNonRel(eleSource,nameS); 913 ElementNonRel eleNonRelT=new ElementNonRel(eleTarget,nameT); 914 istRul.addSource (eleNonRelS); 915 istRul.addTarget (eleNonRelT); 916 } 917 } 918 } 919 920 921 | Popular Tags |