Returns metadata for datatypes, entities and dtos. These services are provided as OSGi-Services.
Get information about a datatype:
public interface IDatatypesMetadataService { /** * Returns the datatypes model for the given datatype name. * * @param datatypeName * @return */ LDataType getMetadata(String datatypeName);
The service will use the given qualified name of the datatype to return the proper LDataType eObject for it.
Qualified follows the pattern “{package}.{name}” like org.eclipse.osbp.datatypes.String
Get information about a entities:
public interface IEntityMetadataService { /** * Returns the entity model for the given class. * @param entityClass * @return */ LEntity getMetadata(Class<?> entityClass); /** * Returns the entity model for the given class name. * @param entityName * @return */ LEntity getMetadata(String entityName);
The service will use the given qualified name of the entity to return the proper LEntity eObject for it.
Qualified follows the pattern “{package}.{name}” like org.eclipse.osbp.carstore.entities.general.Customer
Get information about a entities:
public interface IDtoMetadataService { /** * Returns the dto model for the given class. * * @param dtoClass * @return */ LDto getMetadata(Class<?> dtoClass); /** * Returns the dto model for the given class name. * * @param dtoName * @return */ LDto getMetadata(String dtoName);
The service will use the given qualified name of the entity to return the proper LDto eObject for it.
Qualified follows the pattern “{package}.{name}” like org.eclipse.osbp.carstore.general.CustomerDto
Services are provided as OSGi Service. So you can consume them by DS (declarative services), get a reference by the bundleContext or even use a ServiceTracker.
The services also allow you to navigate along cross references.
public void foo(){ LDto customerDto = dtoService.getMetadata(CustomerDto.class); // access the entity LEntity customer = customerDto.getWrappedType(); List<LIndex> index = customer.getIndexes(); // navigate along attributes for(LEntityAttribute attribute : customer.getAllAttributes()) { LDataType datatype = attribute.getDatatype(); } }
Never ever change values in the given metadata objects. It is not constrainted and may lead to major problems.