/** * Wrap the raw name of a database object in it's Identifier form accounting for quoting from * any of:<ul> * <li>explicit quoting in the name itself</li> * <li>global request to quote all identifiers</li> * </ul> * <p/> * NOTE : quoting from database keywords happens only when building physical identifiers * * @param text The raw object name * * @return The wrapped Identifier form */ public Identifier toIdentifier(String text) { return text == null ? null : jdbcEnvironment.getIdentifierHelper().toIdentifier( text ); }
@Override public boolean isReservedWord(String word) { return this.helper.isReservedWord( word ); }
@Override public Identifier applyGlobalQuoting(String text) { return this.helper.applyGlobalQuoting( text ); } };
@Test @TestForIssue( jiraKey = "HHH_9768" ) public void testAnsiSqlKeyword() { // END is ANSI SQL keyword JdbcEnvironment jdbcEnvironment = serviceRegistry.getService( JdbcEnvironment.class ); assertTrue( jdbcEnvironment.getIdentifierHelper().isReservedWord( "end" ) ); assertTrue( jdbcEnvironment.getIdentifierHelper().isReservedWord( "END" ) ); Identifier identifier = jdbcEnvironment.getIdentifierHelper().toIdentifier( "end" ); assertTrue( identifier.isQuoted() ); } }
@Override public String toMetaDataObjectName(Identifier identifier) { return this.helper.toMetaDataObjectName( identifier ); }
@Override public Identifier normalizeQuoting(Identifier identifier) { Identifier normalizedIdentifier = this.helper.normalizeQuoting( identifier ); if ( normalizedIdentifier == null ) { return null; } // need to quote names containing special characters like ':' if ( !normalizedIdentifier.isQuoted() && !normalizedIdentifier.getText().matches( "\\w+" ) ) { normalizedIdentifier = Identifier.quote( normalizedIdentifier ); } return normalizedIdentifier; }
@Override public String toMetaDataSchemaName(Identifier schemaIdentifier) { return this.helper.toMetaDataSchemaName( schemaIdentifier ); }
@Override public String toMetaDataCatalogName(Identifier catalogIdentifier) { return this.helper.toMetaDataCatalogName( catalogIdentifier ); }
@Override public ColumnInformation getColumn(Identifier columnIdentifier) { return columns.get( new Identifier( identifierHelper.toMetaDataObjectName( columnIdentifier ), false ) ); }
public Identifier normalizeIdentifierQuoting(Identifier identifier) { return getBuildingContext().getMetadataCollector() .getDatabase() .getJdbcEnvironment() .getIdentifierHelper() .normalizeQuoting( identifier ); }
private String determineSchemaFilter(Identifier schema) throws SQLException { Identifier identifierToUse = schema; if ( identifierToUse == null ) { identifierToUse = extractionContext.getDefaultSchema(); } return extractionContext.getJdbcEnvironment().getIdentifierHelper().toMetaDataSchemaName( identifierToUse ); }
private String determineCatalogFilter(Identifier catalog) throws SQLException { Identifier identifierToUse = catalog; if ( identifierToUse == null ) { identifierToUse = extractionContext.getDefaultCatalog(); } return extractionContext.getJdbcEnvironment().getIdentifierHelper().toMetaDataCatalogName( identifierToUse ); }
/** * Determine the name of the column used to store the generator value in * the db. * <p/> * Called during {@link #configure configuration} <b>when resolving to a * physical table</b>. * * @param params The params supplied in the generator config (plus some standard useful extras). * @param jdbcEnvironment The JDBC environment * @return The value column name */ @SuppressWarnings({"UnusedParameters", "WeakerAccess"}) protected Identifier determineValueColumnName(Properties params, JdbcEnvironment jdbcEnvironment) { final String name = ConfigurationHelper.getString( VALUE_COLUMN_PARAM, params, DEF_VALUE_COLUMN ); return jdbcEnvironment.getIdentifierHelper().toIdentifier( name ); }
@Override public IndexInformation getIndex(Identifier indexName) { return indexes().get( new Identifier( identifierHelper.toMetaDataObjectName( indexName ), false ) ); }
/** * Determine the logical name give a (potentially {@code null}/empty) explicit name. * * @param explicitName The explicit, user-supplied name * @param namingStrategyHelper The naming strategy helper. * * @return The logical name */ public Identifier determineLogicalName(String explicitName, NamingStrategyHelper namingStrategyHelper) { Identifier logicalName; if ( StringHelper.isEmpty( explicitName ) ) { logicalName = namingStrategyHelper.determineImplicitName( getBuildingContext() ); } else { logicalName = namingStrategyHelper.handleExplicitName( explicitName, getBuildingContext() ); } logicalName = getBuildingContext().getMetadataCollector() .getDatabase() .getJdbcEnvironment() .getIdentifierHelper() .normalizeQuoting( logicalName ); return logicalName; }
/** * Intended only for use in handling quoting requirements for {@code column-definition} * as defined by {@link javax.persistence.Column#columnDefinition()}, * {@link javax.persistence.JoinColumn#columnDefinition}, etc. This method should not * be called in any other scenario. * * @param text The specified column definition * * @return The name with global quoting applied */ public String applyGlobalQuoting(String text) { return database().getJdbcEnvironment().getIdentifierHelper().applyGlobalQuoting( text ) .render( database().getDialect() ); }
@Override public boolean isReservedWord(String word) { return this.helper.isReservedWord( word ); }
@Override public String toMetaDataSchemaName(Identifier schemaIdentifier) { return this.helper.toMetaDataSchemaName( schemaIdentifier ); }
@Override public String toMetaDataCatalogName(Identifier catalogIdentifier) { return this.helper.toMetaDataCatalogName( catalogIdentifier ); }
protected QualifiedName determineGeneratorTableName(Properties params, JdbcEnvironment jdbcEnvironment) { final String tableName = ConfigurationHelper.getString( ID_TABLE, params, DEFAULT_TABLE ); if ( tableName.contains( "." ) ) { return QualifiedNameParser.INSTANCE.parse( tableName ); } else { // todo : need to incorporate implicit catalog and schema names final Identifier catalog = jdbcEnvironment.getIdentifierHelper().toIdentifier( ConfigurationHelper.getString( CATALOG, params ) ); final Identifier schema = jdbcEnvironment.getIdentifierHelper().toIdentifier( ConfigurationHelper.getString( SCHEMA, params ) ); return new QualifiedNameParser.NameParts( catalog, schema, jdbcEnvironment.getIdentifierHelper().toIdentifier( tableName ) ); } }