Class SingleEntityTypeGenerator
java.lang.Object
de.hybris.platform.odata2services.odata.schema.entity.SingleEntityTypeGenerator
- All Implemented Interfaces:
EntityTypeGenerator,SchemaElementGenerator<List<org.apache.olingo.odata2.api.edm.provider.EntityType>,IntegrationObjectItemModel>
- Direct Known Subclasses:
ComposedEntityTypeGenerator,LocalizedEntityTypeGenerator
Base implementation class for entity type generators, which generate either a single entity type or no entity types depending
on certain conditions.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionList<org.apache.olingo.odata2.api.edm.provider.EntityType>Generates the schema element whose type is defined by T.protected org.apache.olingo.odata2.api.edm.provider.EntityTypeGenerates a single entity type for the specified item delegating the entity parts creation to:generateEntityTypeName(IntegrationObjectItemModel)for the entity type name generationpropertiesGeneratorfor the entity type properties generationkeyGeneratorfor the entity type key generation.protected abstract StringGenerates name for the entity type being generated.protected org.apache.olingo.odata2.api.edm.provider.KeygenerateKey(String name, List<org.apache.olingo.odata2.api.edm.provider.Property> properties) protected KeyGeneratorprotected AbstractPropertyListGeneratorprotected abstract booleanDetermines whether this generator is applicable to the specified item and can generate at least a single EDMX entity type.voidsetKeyGenerator(KeyGenerator generator) void
-
Constructor Details
-
SingleEntityTypeGenerator
public SingleEntityTypeGenerator()
-
-
Method Details
-
generate
public List<org.apache.olingo.odata2.api.edm.provider.EntityType> generate(IntegrationObjectItemModel item) Generates the schema element whose type is defined by T. Implementation checks whether this generator is applicable to the specified item by callingisApplicable(IntegrationObjectItemModel)and depending on the result proceeds togenerateEntityType(IntegrationObjectItemModel)or returns an empty list.- Specified by:
generatein interfaceSchemaElementGenerator<List<org.apache.olingo.odata2.api.edm.provider.EntityType>,IntegrationObjectItemModel> - Parameters:
item- an item, for which an EDMX entity type has to be generated- Returns:
- a list with a single generated entity type or an empty list, if this generator is not
isApplicable().
-
isApplicable
Determines whether this generator is applicable to the specified item and can generate at least a single EDMX entity type.- Parameters:
item- an item, based on which the decision has to be made.- Returns:
true, if at least one entity type can be generated for the given item;false, otherwise.
-
generateEntityType
protected org.apache.olingo.odata2.api.edm.provider.EntityType generateEntityType(IntegrationObjectItemModel item) Generates a single entity type for the specified item delegating the entity parts creation to:generateEntityTypeName(IntegrationObjectItemModel) for the entity type name generation
propertiesGenerator for the entity type properties generation
keyGenerator for the entity type key generation. If the key is not generated, i.e.
!Optional<Key>.isPresent(), anIllegalStateExceptionis thrown.- Parameters:
item- an item to generate the EDMX entity type for.- Returns:
- the generated entity type.
Subclasses make sure never returnnullfrom this method. If item cannot be generated, thenisApplicable(IntegrationObjectItemModel)should returnfalseinstead.
-
generateKey
-
generateEntityTypeName
Generates name for the entity type being generated.- Parameters:
item- item, for which entity type is being generated.- Returns:
- a valid EDMX entity type name.
-
setPropertiesGenerator
-
setKeyGenerator
-
getPropertiesGenerator
-
getKeyGenerator
-