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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
| public Createur_XML(String filename,int id_j) {
//la tete du document XML
Document document = null;
DocumentBuilderFactory fabrique = null;
ResultSet rs_diagram;
//connection à la base de données
SGBD manager1=new SGBD();
manager1.connect("Diagramme","localhost:3307","root","root");
fabrique = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = fabrique.newDocumentBuilder();
}
catch (ParserConfigurationException ex1) {
}
document = builder.newDocument();
//l'élément uml:model
Element racine1 = (Element) document.createElement("uml:Model");
document.createAttribute("xmi:version");
document.createAttribute("xmlns:xmi");
document.createAttribute("xmlns:uml");
document.createAttribute("xmi:id");
racine1.setAttribute("xmi:version","2.1");
racine1.setAttribute("xmlns:xmi","http://schema.omg.org/spec/XMI/2.1");
racine1.setAttribute("xmlns:uml","http://www.eclipse.org/uml2/2.1.0/UML");
racine1.setAttribute("xmi:id","_kkgsMBeLEd60N8ipLbB6nA");
document.appendChild(racine1);
//rechercher les noeuds et les flux du diagramme selectionné par l'utilsateur
rs_diagram=manager1.getQuery("SELECT * FROM diagram WHERE id_diagram=" + id_j);
try {
//Entrer les champs du nom, type et identifiant du diagramme d'activité choisit par l'utilisateur
rs_diagram.next();
o=rs_diagram.getString("ref_diagram");
s=rs_diagram.getString("name_diagram");
Element racine = (Element) document.createElement("packagedElement");
document.createAttribute("xmi:id");
document.createAttribute("xmi:type");
document.createAttribute("name");
racine.setAttribute("xmi:id",o);
racine.setAttribute("xmi:type","uml:Activity");
racine.setAttribute("name",s);
racine1.appendChild(racine);
try {
JdbcRowSet rowset1 = new JdbcRowSetImpl();
JdbcRowSet rowset2 = new JdbcRowSetImpl();
JdbcRowSet rowset3 = new JdbcRowSetImpl();
JdbcRowSet rowset4 = new JdbcRowSetImpl();
JdbcRowSet rowset5 = new JdbcRowSetImpl();
//MISE EN PLACE DES DIFFERENTES PROPRIETES
String url1 = "jdbc:mysql://localhost:3307/Diagramme";
String user1 = "root";
String password1 = "root";
String command1 = "SELECT * FROM node WHERE id_diagram=" +id_j;
System.out.println(command1);
//propriétés nécessaires à la connexion
rowset1.setUrl(url1);
rowset1.setUsername(user1);
rowset1.setPassword(password1);
//propriétés nécessaires à l'exécution
rowset1.setCommand(command1);
//retourner tous les noeuds du diagramme choisit par l'utilisateur
rowset1.execute();
//parcours des résultats du dernier au premier tuple
while(rowset1.next()){
Element node = (Element) document.createElement("node");
String url2 = "jdbc:mysql://localhost:3307/Diagramme";
String user2 = "root";
String password2 = "root";
//chercher les flux sortants du noeuds en cours de création, ce noeud ne doit pas etre un noeud final
if (rowset1.getInt(4)!= 78)
{
String outgoing = "SELECT id_edge FROM edge e WHERE id_node_source= " + rowset1.getInt(1) ;
System.out.println(outgoing);
//propriétés nécessaires à la connexion
rowset2.setUrl(url2);
rowset2.setUsername(user2);
rowset2.setPassword(password2);
//propriétés nécessaires à l'exécution
rowset2.setCommand(outgoing);
//EXECUTION DU ROWSET POUR LE PEUPLER
rowset2.execute();
rowset2.next();
}
String url3 = "jdbc:mysql://localhost:3307/Diagramme";
String user3 = "root";
String password3 = "root";
//chercher les flux entrants du noeuds en cours de création, ce noeud ne doit pas etre un noeud initial
if (rowset1.getInt(4)!= 77)
{
String incoming = "SELECT id_edge FROM edge WHERE id_node_target= " + rowset1.getInt(1);
System.out.println(incoming);
//propriétés nécessaires à la connexion
rowset3.setUrl(url3);
rowset3.setUsername(user3);
rowset3.setPassword(password3);
rowset3.setCommand(incoming);
//EXECUTION DU ROWSET POUR LE PEUPLER
rowset3.execute();
rowset3.next();
}
String url4 = "jdbc:mysql://localhost:3307/Diagramme";
String user4 = "root";
String password4 = "root";
//rechercher le nom du type du noeud en cours de création
String name_type = "SELECT name_type_node FROM type_node WHERE id_type_node= " + rowset1.getInt(4);
rowset4.setUrl(url4);
rowset4.setUsername(user4);
rowset4.setPassword(password4);
rowset4.setCommand(name_type);
rowset4.execute();
rowset4.next();
document.createAttribute("xmi:type");
document.createAttribute("xmi:id");
document.createAttribute("name");
document.createAttribute("outgoing");
document.createAttribute("incoming");
node.setAttribute("xmi:id",rowset1.getString(1));
node.setAttribute("xmi:type",rowset4.getString(1));
node.setAttribute("name",rowset1.getString(3));
node.setAttribute("outgoing",rowset2.getString(1));
node.setAttribute("incoming",rowset3.getString(1));
racine.appendChild(node);
}
rowset2.close();
rowset1.close();
JdbcRowSet rowset = new JdbcRowSetImpl();
//MISE EN PLACE DES DIFFERENTES PROPRIETES
String url = "jdbc:mysql://localhost:3307/Diagramme";
String user = "root";
String password = "root";
//rechercher tous les flux appartenant au diagramme en cours d'exécution
String command = "SELECT * FROM edge WHERE id_diagram=" +id_j;
System.out.println(command);
//propriétés nécessaires à la connexion
rowset.setUrl(url);
rowset.setUsername(user);
rowset.setPassword(password);
//propriétés nécessaires à l'exécution
rowset.setCommand(command);
//EXECUTION DU ROWSET POUR LE PEUPLER
rowset.execute();
//parcours des résultats du dernier au premier tuple
while(rowset.next())
{
String url5 = "jdbc:mysql://localhost:3307/Diagramme";
String user5 = "root";
String password5 = "root";
//rechercher le nom du type du flux en cours de création
String edge_type = "SELECT name_type_edge FROM type_edge WHERE id_type_edge= " + rowset.getInt(4);
rowset5.setUrl(url5);
rowset5.setUsername(user5);
rowset5.setPassword(password5);
rowset5.setCommand(edge_type);
rowset5.execute();
rowset5.next();
Element edge = (Element) document.createElement("edge");
document.createAttribute("xmi:id");
document.createAttribute("name");
document.createAttribute("source");
document.createAttribute("target");
document.createAttribute("xmi:type");
edge.setAttribute("xmi:id",rowset.getString(1));
edge.setAttribute("name",rowset.getString(3));
edge.setAttribute("xmi:type",rowset5.getString(1));
edge.setAttribute("source",rowset.getString(5));
edge.setAttribute("target",rowset.getString(6));
racine.appendChild(edge);
}
XMLSerializer ser = new XMLSerializer(System.out, new OutputFormat("xml", "UTF-8", true));
ser.serialize(document);
}
catch(Exception e)
{
e.printStackTrace();
}
//-----enregistrement dans le fichier-------------------//
Enregistreur_XML Enregistreur=new Enregistreur_XML("C:\\doc_xml",s,document);
if(Enregistreur.enregistrer()==true)
{
JOptionPane.showMessageDialog(this,"Enregistrement effectuer ","Controle d'enregistrement",JOptionPane.DEFAULT_OPTION);
}
}
catch (SQLException ex) {
System.out.println("fin exportation");
}
} |
Partager