KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > cve > esecutori > components > specificaLV > ElementRel


1 /*
2 * @(#)ElementRel.java 1.00 22/02/02
3 *
4 * @Author Domenico Ventriglia
5 */

6 package cve.esecutori.components.specificaLV;
7
8 import java.io.*;
9 import java.util.*;
10
11 import org.jdom.*;
12 import org.jdom.input.SAXBuilder;
13 import org.jdom.output.XMLOutputter;
14
15 import org.apache.log4j.Logger;
16
17 import cve.staticLayout.*;
18
19 /**
20 * Questa classe contiene il riferimento ad un elemento relazione
21 */

22 public class ElementRel extends ElementAlphabet {
23
24    /**
25    * Insieme dei links. Ogni link e' di tipo LinkRelNonRel
26    */

27    private HashSet links;
28
29    public ElementRel(Element eleXml, String JavaDoc name) {
30       Cve.errLog.debug("");
31       this.eleXml=eleXml;
32       this.name=name;
33       links=new HashSet();
34    }
35
36    public ElementRel(Element eleXml, String JavaDoc name, String JavaDoc nameId) {
37       Cve.errLog.debug("");
38       this.eleXml=eleXml;
39       this.name=name;
40       this.nameId=nameId;
41       links=new HashSet();
42    }
43
44    public ElementRel(Element eleXml, String JavaDoc name, String JavaDoc nameId,Collection attribCons) {
45       Cve.errLog.debug("");
46       this.eleXml=eleXml;
47       this.name=name;
48       this.nameId=nameId;
49       links=new HashSet();
50       if (attribCons!=null){
51          attributeInCons=new Vector(attribCons);
52       }
53    }
54
55    /**
56    *post:ritorna il link contenente l'elemento non relazione con nome
57    * uguale al nome del parametro nonRel
58    * se non esiste lo crea
59    *
60    *Logica: controllo tutti i link relativi all'associazione corrente
61    */

62    public LinkRelNonRel setLink (Element nonRel) {
63       Cve.errLog.debug("");
64       // prendo il nome dell'elemento non relazione
65
String JavaDoc nameCercato=nonRel.getAttributeValue("name");
66       //controllo se vi e' gia' un link fra la relazione e questo elemento
67
Iterator iter=links.iterator();
68       while (iter.hasNext()){
69          LinkRelNonRel lST=(LinkRelNonRel)iter.next();
70          ElementNonRel eleNonRel=lST.getNonRel();
71          String JavaDoc name=((String JavaDoc)((Element)eleNonRel.getElementXml()).getAttributeValue("name"));
72          if ( name.equals(nameCercato) ){
73             return lST;
74          }
75       }
76       // se non esiste elemento non relazione cercato lo creo
77
ElementNonRel nonRelApp=new ElementNonRel(nonRel,nameCercato);
78       //System.out.println("*****creo nuovo link "+ nonRel.getAttributeValue("name"));
79
LinkRelNonRel linkNuovo=new LinkRelNonRel(this, nonRelApp);
80       insertLink(linkNuovo);
81       return linkNuovo;
82    }
83
84    public HashSet getLinkAll() {
85       Cve.errLog.debug("");
86       return links;
87    }
88
89    public void insertLink(LinkRelNonRel link) {
90       Cve.errLog.debug("");
91       links.add(link);
92    }
93 }
Popular Tags