public RelationalObjectBinder(MetadataBuildingContext buildingContext) { this.database = buildingContext.getMetadataCollector().getDatabase(); this.physicalNamingStrategy = buildingContext.getBuildingOptions().getPhysicalNamingStrategy(); }
@Override public ObjectNameNormalizer getObjectNameNormalizer() { return rootBuildingContext.getObjectNameNormalizer(); }
private void addPropertyToMappedSuperclass(Property prop, XClass declaringClass) { final Class type = getContext().getBootstrapContext().getReflectionManager().toClass( declaringClass ); MappedSuperclass superclass = getContext().getMetadataCollector().getMappedSuperclass( type ); superclass.addDeclaredProperty( prop ); }
final ObjectNameNormalizer normalizer = context.getObjectNameNormalizer(); final Database database = context.getMetadataCollector().getDatabase(); final ImplicitNamingStrategy implicitNamingStrategy = context.getBuildingOptions() .getImplicitNamingStrategy(); logicalColumnName = implicitName.render( database.getDialect() ); context.getMetadataCollector().addColumnNameBinding( value.getTable(), logicalColumnName, getMappingColumn() );
@Override public MetadataBuildingOptions getBuildingOptions() { return rootBuildingContext.getBuildingOptions(); }
@Override public InFlightMetadataCollector getMetadataCollector() { return rootBuildingContext.getMetadataCollector(); }
static PropertyData getPropertyOverriddenByMapperOrMapsId( boolean isId, PropertyHolder propertyHolder, String propertyName, MetadataBuildingContext buildingContext) { final XClass persistentXClass; try { persistentXClass = buildingContext.getBootstrapContext().getReflectionManager() .classForName( propertyHolder.getPersistentClass().getClassName() ); } catch ( ClassLoadingException e ) { throw new AssertionFailure( "PersistentClass name cannot be converted into a Class", e); } if ( propertyHolder.isInIdClass() ) { PropertyData pd = buildingContext.getMetadataCollector().getPropertyAnnotatedWithIdAndToOne( persistentXClass, propertyName ); if ( pd == null && buildingContext.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) { pd = buildingContext.getMetadataCollector().getPropertyAnnotatedWithMapsId( persistentXClass, propertyName ); } return pd; } String propertyPath = isId ? "" : propertyName; return buildingContext.getMetadataCollector().getPropertyAnnotatedWithMapsId( persistentXClass, propertyPath ); }
); final String implicitCatalogName = buildingContext.getBuildingOptions().getMappingDefaults().getImplicitCatalogName(); if ( implicitCatalogName != null ) { params.put( PersistentIdentifierGenerator.CATALOG, implicitCatalogName ); final String implicitSchemaName = buildingContext.getBuildingOptions().getMappingDefaults().getImplicitSchemaName(); if ( implicitSchemaName != null ) { params.put( PersistentIdentifierGenerator.SCHEMA, implicitSchemaName ); params.put( PersistentIdentifierGenerator.IDENTIFIER_NORMALIZER, buildingContext.getObjectNameNormalizer() ); params.put( IdentifierGenerator.GENERATOR_NAME, generatorName );
if ( context.getMappingDefaults().getImplicitSchemaName() != null ) { definitionBuilder.addParam( PersistentIdentifierGenerator.SCHEMA, context.getMappingDefaults().getImplicitSchemaName() ); if ( context.getMappingDefaults().getImplicitCatalogName() != null ) { definitionBuilder.addParam( PersistentIdentifierGenerator.CATALOG, context.getMappingDefaults().getImplicitCatalogName() ); context.getBuildingOptions().getIdGenerationTypeInterpreter().interpretTableGenerator( (TableGenerator) generatorAnn, definitionBuilder context.getBuildingOptions().getIdGenerationTypeInterpreter().interpretSequenceGenerator( (SequenceGenerator) generatorAnn, definitionBuilder
MetadataBuildingContext context) { final ObjectNameNormalizer normalizer = context.getObjectNameNormalizer(); String defaultName = context.getMetadataCollector().getLogicalColumnName( identifier.getTable(), col.getQuotedName() name = context.getObjectNameNormalizer().normalizeIdentifierQuotingAsString( colName ); defaultName = context.getObjectNameNormalizer().normalizeIdentifierQuotingAsString( defaultName ); return new Ejb3JoinColumn( null,
@Override public BootstrapContext getBootstrapContext() { return rootBuildingContext.getBootstrapContext(); }
@Override public Identifier determineDiscriminatorColumnName(ImplicitDiscriminatorColumnNameSource source) { return toIdentifier( source.getBuildingContext().getMappingDefaults().getImplicitDiscriminatorColumnName(), source.getBuildingContext() ); }
public void redefineColumnName(String columnName, String propertyName, boolean applyNamingStrategy) { final ObjectNameNormalizer normalizer = context.getObjectNameNormalizer(); final Database database = context.getMetadataCollector().getDatabase(); final ImplicitNamingStrategy implicitNamingStrategy = context.getBuildingOptions().getImplicitNamingStrategy(); final PhysicalNamingStrategy physicalNamingStrategy = context.getBuildingOptions().getPhysicalNamingStrategy();
public ServiceRegistry getServiceRegistry() { return metadataBuildingContext.getBuildingOptions().getServiceRegistry(); }
public SimpleValue(MetadataBuildingContext buildingContext) { this(buildingContext.getMetadataCollector()); this.buildingContext = buildingContext; }
property, propertyContainer.getClassLevelAccessType().getType(), context.getBootstrapContext().getReflectionManager() ); if ( context.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) { if ( element.isAnnotationPresent( Id.class ) && element.isAnnotationPresent( Column.class ) ) { String columnName = element.getAnnotation( Column.class ).name(); context.getBootstrapContext().getReflectionManager() ); context.getMetadataCollector().addPropertyAnnotatedWithMapsIdSpecj( entity, specJPropertyData, context.getMetadataCollector().addToOneAndIdProperty( entity, propertyAnnotatedElement ); context.getMetadataCollector().addPropertyAnnotatedWithMapsId( entity, propertyAnnotatedElement );
@Override protected void addColumnBinding(SimpleValue value) { if ( StringHelper.isEmpty( mappedBy ) ) { // was the column explicitly quoted in the mapping/annotation // TODO: in metamodel, we need to better split global quoting and explicit quoting w/ respect to logical names boolean isLogicalColumnQuoted = StringHelper.isQuoted( getLogicalColumnName() ); final ObjectNameNormalizer nameNormalizer = getBuildingContext().getObjectNameNormalizer(); final String logicalColumnName = nameNormalizer.normalizeIdentifierQuotingAsString( getLogicalColumnName() ); final String referencedColumn = nameNormalizer.normalizeIdentifierQuotingAsString( getReferencedColumn() ); final String unquotedLogColName = StringHelper.unquote( logicalColumnName ); final String unquotedRefColumn = StringHelper.unquote( referencedColumn ); String logicalCollectionColumnName = StringHelper.isNotEmpty( unquotedLogColName ) ? unquotedLogColName : getPropertyName() + '_' + unquotedRefColumn; logicalCollectionColumnName = getBuildingContext().getMetadataCollector() .getDatabase() .getJdbcEnvironment() .getIdentifierHelper() .toIdentifier( logicalCollectionColumnName, isLogicalColumnQuoted ) .render(); getBuildingContext().getMetadataCollector().addColumnNameBinding( value.getTable(), logicalCollectionColumnName, getMappingColumn() ); } }
@Override public ConverterDescriptor toConverterDescriptor(MetadataBuildingContext context) { return new InstanceBasedConverterDescriptor( attributeConverter, null, context.getBootstrapContext().getClassmateContext() ); } }
@Override public Identifier determineTenantIdColumnName(ImplicitTenantIdColumnNameSource source) { return toIdentifier( source.getBuildingContext().getMappingDefaults().getImplicitTenantIdColumnName(), source.getBuildingContext() ); }
public ModelBinder(final MetadataBuildingContext context) { this.metadataBuildingContext = context; this.database = context.getMetadataCollector().getDatabase(); this.objectNameNormalizer = new ObjectNameNormalizer() { @Override protected MetadataBuildingContext getBuildingContext() { return context; } }; this.implicitNamingStrategy = context.getBuildingOptions().getImplicitNamingStrategy(); this.relationalObjectBinder = new RelationalObjectBinder( context ); }