L'accesso ai metadati dell'istanza dell'evento viene eseguito tramite l'EMF (Eclipse Modeling Framework) basato su Java.
Il pacchetto org.eclipse.hyades.logging.events.cbe, che fornisce le classi e le interfacce necessarie per utilizzare gli oggetti eventi, è basato sull'EMF (Eclipse Modeling Framework). EMF è un framework Java utilizzato per generare il codice applicazione in base a un modello dati strutturato; fornisce inoltre le interfacce nel codice generato che possono essere utilizzate per accedere ai metadati che descrivono il modello dati. (Fare riferimento alla documentazione di Eclipse Modeling Framework al seguente indirizzo http://www.eclipse.org/emf per ulteriori informazioni su EMF.)
Grazie all'uso di queste interfacce, strumenti compatibili con EMF possono interagire con i dati dell'evento CommonBaseEvent senza dover necessariamente conoscere il modello dati o l'accesso all'implementazione. In questo modo, gli strumenti di sviluppo possono generare il codice che trasferisce nel modello CommonBaseEvent i dati di altri modelli. Gli sviluppatori di applicazioni possono quindi concentrarsi sulla scrittura del codice che usa i dati anziché del codice che li crea.
Ad esempio, considerare un'origine eventi che esegue il monitoraggio degli eventi di rete e descrive il proprio modello dati in termini EMF. Con l'accesso a entrambi i modelli dati, uno strumento di sviluppo può visualizzare i campi del modello dati dell'origine eventi insieme ai campi del modello CommonBaseEvent. Uno sviluppatore può quindi utilizzare un'interfaccia grafica per indicare in che modo i campi del modello dell'origine eventi vengono associati ai campi nel modello CommonBaseEvent; ad esempio, un campo denominato Workstation.name nel modello dati dell'origine eventi potrebbe corrispondere al campo CommonBaseEvent.sourceComponentId.location nel modello dati CommonBaseEvent. Dal momento che entrambi i modelli dati vengono descritti tramite le interfacce EMF standard, lo strumento potrebbe generare il codice che gestisce il trasferimento dei dati tra i due modelli.
Il frammento di codice che segue rappresenta un semplice esempio di come uno strumento di sviluppo può utilizzare le interfacce EMF per richiedere informazioni sul modello dati CommonBaseEvent e utilizzare tali informazioni per interagire con un'istanza dell'evento. Questo esempio potrebbe essere parte di un semplice event consumer; si ripete attraverso tutti i campi di un'istanza dell'evento e, per ciascuno di essi, scrive il nome e il valore sul campo
// l'evento è un'istanza valida di CommonBaseEvent // Richiamare l'elenco delle funzioni strutturali (campi) dell'istanza evento List features = event.eClass().getEAllStructuralFeatures(); // Ripetere lungo l'elenco; scrivere i nomi e i valori for (int i = 0 ; i < features.size() ; i++) { EStructuralFeature feature = (EStructuralFeature)features.get(i); Object value = eObj.eGet(feature); System.out.println(feature.getName() + ":" + value); }
Il modello dati CommonBaseEvent è descritto nei file EMF cbe.ecore e cbe.genmodel. Questi file sono inclusi nell'SDK della Common Event Infrastructure; è possibile importarli in un ambiente di sviluppo basato su Eclipse e utilizzare quindi EMF per generare il codice che interagisce con gli oggetti CommonBaseEvent.