Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoViviana Bello Modificato 8 anni fa
1
Agile Group – DIEE, Università degli studi di Cagliari Eclipse Modeling Framework (EMF) Lavoro di: Antonio Cuccu
2
Agile Group – DIEE, Università degli studi di Cagliari Sommario Che cosa è EMF Ecore di EMF Come installare EMF Come lavorare con EMF La persistenza degli oggetti con EMF Conclusioni
3
Agile Group – DIEE, Università degli studi di Cagliari Che cosa è EMF EMF è un plug-in di Eclipse EMF è un progetto open source EMF consente: -La generazione automatica di codice Java a partire da un modello preesistente -La generazione di un XMI Schema a partire dal modello dei dati -La serializzazione delle istanze (oggetti) del modello in XMI -La deserializzazione di un’istanza del modello a partire da un documento XMI
4
Agile Group – DIEE, Università degli studi di Cagliari Ecore di EMF
5
Agile Group – DIEE, Università degli studi di Cagliari Come installare EMF EMF Download http://www.eclipse.org/emf Aggiungere EMF nella cartella plugins di Eclipse
6
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF EMF consente la generazione di codice Java a partire da un modello che può essere specificato in diversi modi: 1) XML Schema 2) Annotated Java interfaces 3) Rational Rose
7
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF XML schema <xsd:schema targetNamespace="http:///library.ecore" xmlns=http:///library.ecore xmlns:xsd="http://www.w3.org/2001/XMLSchema">http:///library.ecore
8
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Annotated Java interfaces /** @model */ public interface Book { /** * @model */ String getTitle(); /** * @model */ int getPages(); }
9
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Rational Rose (UML)
10
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Un esempio in Rational Rose
11
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML
12
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML
13
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML
14
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML
15
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML
16
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Importazione del modello UML
17
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema
18
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema
19
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema
20
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema XMI Schema
21
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema
22
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione dell’XMI Schema
23
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione del codice Java
24
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF Generazione del codice Java
25
Agile Group – DIEE, Università degli studi di Cagliari Come lavorare con EMF public interface Videocassetta extends EObject { String getTitolo(); void setTitolo(String value); String getCodice(); void setCodice(String value); Videoteca getVideoteca(); void setVideoteca(Videoteca value); } Generazione del codice Java
26
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF EMF fornisce un insieme di classi che consentono la creazione oggetti persistenti EMF fornisce un insieme di classi che consentono di “manipolare” oggetti persistenti La creazione degli oggetti persistenti avviene attraverso una serializzazione XMI
27
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione //Crea un'istanza della EsempioemfFactory EsempioemfFactory factory = EsempioemfFactory.eINSTANCE; //L'oggetto factory crea un oggetto della classe videoteca Videoteca videoteca=factory.createVideoteca(); videoteca.setIndirizzo("Via Is Maglias 12 Cagliari"); videoteca.setNome("UnicaVideo"); //L'oggetto factory crea un oggetto della classe videocassetta Videocassetta videoOne = factory.createVideocassetta(); videoOne.setCodice("vid12cc"); videoOne.setTitolo("Kill Bill volume primo"); videoOne.setVideoteca(videoteca);
28
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione //L'oggetto factory crea un oggetto della classe videocassetta Videocassetta videoTwo = factory.createVideocassetta(); videoTwo.setCodice("vid13cc"); videoTwo.setTitolo("Kill Bill volume secondo"); videoTwo.setVideoteca(videoteca); //Creazione di un resource set. ResourceSet resourceSet = new ResourceSetImpl(); //Inizializzazione del resource set. resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().p ut(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
29
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione //Viene creato l'URI per il file. URI fileURI = URI.createFileURI(new File("Videoteca.xmi").getAbsolutePath()); //Creazione di una resource a cui andranno associati gli oggetti da serializzare Resource resource = resourceSet.createResource(fileURI); //Gli oggetti da serializzare vengono associati alla resource resource.getContents().add(videoteca); resource.getContents().add(videoOne); resource.getContents().add(videoTwo); //Il file con gli oggetti serializzati vengono salvati nel workspace del progetto try { resource.save(Collections.EMPTY_MAP); } catch (IOException e) { }
30
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF Serializzazione
31
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF //Creazione di un resource set. ResourceSet resourceSet2 = new ResourceSetImpl(); //Inizializzazione del resource set. resourceSet2.getResourceFactoryRegistry().getExtensionToFactoryMap().put( Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); //Si ottiene una URI per il file. URI fileURI = URI.createFileURI(new File("Videoteca.xmi").getAbsolutePath()); // Creazione di una risorsa per il file. Resource resource=resourceSet2.getResource(fileURI,true); Deserializzazione
32
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF for(int i=0;i<resource.getContents().size();i++) if(resource.getContents().get(i) instanceof Videocassetta) { videocassetteArray[x]=(Videocassetta)resource.getVideoteca.get(i); x=x+1; } else { videotecaArray[y]=(Videoteca)resource.getVideoteca.get(i); y=y+1; } Deserializzazione
33
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF for(int i=0;i<NumVideocassette;i++) { System.out.println(videocassetteArray[i].getTitolo()); System.out.println("reperibile nella videoteca:“ +videocassetteArray[i].getContiene().getNome()+ videocassetteArray[i].getContiene().getIndirizzo()); } Deserializzazione
34
Agile Group – DIEE, Università degli studi di Cagliari Persistenza degli oggetti in EMF “Kill Bill volume primo reperibile nella videoteca:UnicaVideo Via Is Maglias 12 Cagliari” “Kill Bill volume secondo reperibile nella videoteca:UnicaVideo Via Is Maglias 12 Cagliari” Deserializzazione
35
Agile Group – DIEE, Università degli studi di Cagliari Conclusioni Caratteristiche principali del software EMF: –Generazione automatica di codice Java –Generazione dell’XMI Schema del modello –Serializzazione degli oggetti in XMI –Deserializzazione degli oggetti
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.