Questa interfaccia fornisce la possibilità di effettuare un'annotazione blob conforme al modello BOTypeMetadata e la trasforma in una serie di SDO (service data object) (ed esegue la trasformazione prenotata).
Le annotazioni possono essere lette al runtime utilizzando la serie di API specifici dell'implementazione SDO. Tuttavia, il problema con tali API è che restituiscono un blob. Pertanto, business object framework fornisce BOTypeMetadata per leggere il blob, convalidarlo e trasformarlo in una struttura utilizzabile di oggetto dati.
L'esempio di seguito riportato illustra il modo in cui utilizzare l'interfaccia BOTypeMetadata.
BOFactory factoryService = (BOFactory) new ServiceManager().locateService("com/ibm/websphere/bo/BOFactory"); BOTypeMetadata typeMetadataService = (BOTypeMetadata) new ServiceManager().locateService("com/ibm/websphere/bo/BOTypeMetadata"); DataObject product = factoryService.create("http://www.scm.com/ProductTypes", "Product"); // Utilizzare EMF per ottenere il blob dell'annotazione, quindi utilizzare il sevizio BOTypeMetadata // per convertirlo in un oggetto dati. String productIDPropertyInfoString = (String) ((EObject)product). eClass().getEStructuralFeature("iD"). getEAnnotation("http://www.ibm.com/xmlns/prod/websphere/bo/6.0.0"). getDetails().get("appinfo"); DataObject productIDPropertyInfo = typeMetadataService.transformAnnotationToDataObject (productIDPropertyInfoString); // Leggere ed aggiornare l'annotazione. // ... // Utilizzare il servizio BOTypeMetadata per trasformare il grafico dell'oggetto dati di nuovo in // una stringa, quindi utilizzare EMF per impostare la stringa nello schema XML. String productIDPropertyInfoString2 = typeMetadataService.transformDataObjectToAnnotation (productIDPropertyInfo); ((EObject)product).eClass().getEStructuralFeature("iD"). getEAnnotation("http://www.ibm.com/xmlns/prod/websphere/bo/6.0.0"). getDetails().put("appinfo",productIDPropertyInfoString2);