Skip to content

Commit 72e4281

Browse files
committed
rationalize diverse ways to split strings
+ a couple of other code cleanups Signed-off-by: Gavin King <[email protected]>
1 parent 6787da7 commit 72e4281

File tree

40 files changed

+160
-214
lines changed

40 files changed

+160
-214
lines changed

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/CockroachLegacyDialect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import org.hibernate.exception.spi.ViolatedConstraintNameExtractor;
4949
import org.hibernate.internal.CoreMessageLogger;
5050
import org.hibernate.internal.util.JdbcExceptionHelper;
51+
import org.hibernate.internal.util.StringHelper;
5152
import org.hibernate.query.SemanticException;
5253
import org.hibernate.query.sqm.IntervalType;
5354
import org.hibernate.dialect.NullOrdering;
@@ -169,7 +170,7 @@ protected static DatabaseVersion parseVersion(String versionString ) {
169170
// What the DB select returns is similar to "CockroachDB CCL v21.2.10 (x86_64-unknown-linux-gnu, built 2022/05/02 17:38:58, go1.16.6)"
170171
Matcher m = CRDB_VERSION_PATTERN.matcher( versionString == null ? "" : versionString );
171172
if ( m.find() ) {
172-
String[] versionParts = m.group().substring( 1 ).split( "\\." );
173+
String[] versionParts = StringHelper.split( ".", m.group().substring( 1 ) );
173174
// if we got to this point, there is at least a major version, so no need to check [].length > 0
174175
int majorVersion = Integer.parseInt( versionParts[0] );
175176
int minorVersion = versionParts.length > 1 ? Integer.parseInt( versionParts[1] ) : 0;

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.hibernate.internal.CoreLogging;
4747
import org.hibernate.internal.CoreMessageLogger;
4848
import org.hibernate.internal.util.JdbcExceptionHelper;
49+
import org.hibernate.internal.util.StringHelper;
4950
import org.hibernate.metamodel.mapping.EntityMappingType;
5051
import org.hibernate.metamodel.spi.RuntimeModelCreationContext;
5152
import org.hibernate.query.sqm.FetchClauseType;
@@ -189,7 +190,7 @@ private static int parseBuildId(DialectResolutionInfo info) {
189190
return 0;
190191
}
191192

192-
final String[] bits = databaseVersion.split("[. ]");
193+
final String[] bits = StringHelper.split( ". ", databaseVersion );
193194
return bits.length > 2 ? Integer.parseInt( bits[2] ) : 0;
194195
}
195196

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/MySQLLegacyDialect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ public MySQLLegacyDialect(DialectResolutionInfo info) {
173173

174174
protected static DatabaseVersion createVersion(DialectResolutionInfo info) {
175175
final String versionString = info.getDatabaseVersion();
176-
final String[] components = versionString.split( "\\." );
176+
final String[] components = StringHelper.split( ".", versionString );
177177
if ( components.length >= 3 ) {
178178
try {
179179
final int majorVersion = Integer.parseInt( components[0] );

hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/SingleStoreDialect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import org.hibernate.exception.spi.TemplatedViolatedConstraintNameExtractor;
5959
import org.hibernate.exception.spi.ViolatedConstraintNameExtractor;
6060
import org.hibernate.internal.util.JdbcExceptionHelper;
61+
import org.hibernate.internal.util.StringHelper;
6162
import org.hibernate.internal.util.collections.ArrayHelper;
6263
import org.hibernate.internal.util.config.ConfigurationHelper;
6364
import org.hibernate.mapping.Column;
@@ -184,7 +185,7 @@ public SingleStoreDialect(
184185
private static DatabaseVersion createVersion(DialectResolutionInfo info) {
185186
final String versionString = info.getDatabaseVersion();
186187
if ( versionString != null ) {
187-
final String[] components = versionString.split( "\\." );
188+
final String[] components = StringHelper.split( ".", versionString );
188189
if ( components.length >= 3 ) {
189190
try {
190191
final int majorVersion = Integer.parseInt( components[0] );

hibernate-core/src/main/java/org/hibernate/boot/beanvalidation/GroupsPerOperation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.hibernate.HibernateException;
1414
import org.hibernate.boot.registry.classloading.spi.ClassLoadingException;
1515
import org.hibernate.boot.spi.ClassLoaderAccess;
16+
import org.hibernate.internal.util.StringHelper;
1617
import org.hibernate.internal.util.collections.CollectionHelper;
1718

1819
import jakarta.validation.groups.Default;
@@ -72,7 +73,7 @@ public static Class<?>[] buildGroupsForOperation(Operation operation, Map settin
7273

7374
if ( property instanceof String ) {
7475
String stringProperty = (String) property;
75-
String[] groupNames = stringProperty.split( "," );
76+
String[] groupNames = StringHelper.split( ",", stringProperty );
7677
if ( groupNames.length == 1 && groupNames[0].isEmpty() ) {
7778
return EMPTY_GROUPS;
7879
}

hibernate-core/src/main/java/org/hibernate/boot/beanvalidation/ValidationMode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.Set;
1111

1212
import org.hibernate.HibernateException;
13+
import org.hibernate.internal.util.StringHelper;
1314
import org.hibernate.internal.util.collections.CollectionHelper;
1415

1516
/**
@@ -35,7 +36,7 @@ public static Set<ValidationMode> getModes(Object modeProperty) {
3536
modes.add( ValidationMode.AUTO );
3637
}
3738
else {
38-
for ( String modeInString : modeProperty.toString().split( "," ) ) {
39+
for ( String modeInString : StringHelper.split( ",", modeProperty.toString() ) ) {
3940
modes.add( getMode(modeInString) );
4041
}
4142
}

hibernate-core/src/main/java/org/hibernate/boot/internal/MetadataImpl.java

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,13 @@
99
import java.io.Serializable;
1010
import java.util.ArrayList;
1111
import java.util.Collections;
12-
import java.util.HashMap;
1312
import java.util.HashSet;
1413
import java.util.List;
1514
import java.util.Map;
1615
import java.util.Set;
1716
import java.util.UUID;
1817
import java.util.function.Consumer;
1918
import java.util.function.Supplier;
20-
import java.util.regex.Pattern;
2119

2220
import org.hibernate.HibernateException;
2321
import org.hibernate.MappingException;
@@ -62,19 +60,17 @@
6260
import org.hibernate.mapping.UserDefinedObjectType;
6361
import org.hibernate.mapping.UserDefinedType;
6462
import org.hibernate.metamodel.mapping.DiscriminatorType;
65-
import org.hibernate.procedure.spi.NamedCallableQueryMemento;
6663
import org.hibernate.query.internal.NamedObjectRepositoryImpl;
6764
import org.hibernate.query.named.NamedObjectRepository;
68-
import org.hibernate.query.sql.spi.NamedNativeQueryMemento;
6965
import org.hibernate.query.sqm.function.SqmFunctionDescriptor;
7066
import org.hibernate.query.sqm.function.SqmFunctionRegistry;
71-
import org.hibernate.query.sqm.spi.NamedSqmQueryMemento;
7267
import org.hibernate.service.spi.ServiceRegistryImplementor;
7368
import org.hibernate.tool.schema.Action;
7469
import org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator;
7570
import org.hibernate.type.spi.TypeConfiguration;
7671

7772
import static org.hibernate.cfg.AvailableSettings.EVENT_LISTENER_PREFIX;
73+
import static org.hibernate.internal.util.StringHelper.splitAtCommas;
7874

7975
/**
8076
* Container for configuration data collected during binding the metamodel.
@@ -84,7 +80,6 @@
8480
* @author Gail Badner
8581
*/
8682
public class MetadataImpl implements MetadataImplementor, Serializable {
87-
private static final Pattern LISTENER_SEPARATION_PATTERN = Pattern.compile( "\\s*,\\s*" );
8883

8984
private final UUID uuid;
9085
private final MetadataBuildingOptions metadataBuildingOptions;
@@ -370,30 +365,6 @@ public NamedObjectRepository buildNamedQueryRepository(SessionFactoryImplementor
370365
);
371366
}
372367

373-
private Map<String, NamedSqmQueryMemento<?>> buildNamedSqmMementos(SessionFactoryImplementor sessionFactory) {
374-
final HashMap<String, NamedSqmQueryMemento<?>> map = new HashMap<>();
375-
if ( namedQueryMap != null ) {
376-
namedQueryMap.forEach( (key, value) -> map.put( key, value.resolve( sessionFactory ) ) );
377-
}
378-
return map;
379-
}
380-
381-
private Map<String, NamedNativeQueryMemento<?>> buildNamedNativeMementos(SessionFactoryImplementor sessionFactory) {
382-
final HashMap<String, NamedNativeQueryMemento<?>> map = new HashMap<>();
383-
if ( namedNativeQueryMap != null ) {
384-
namedNativeQueryMap.forEach( (key, value) -> map.put( key, value.resolve( sessionFactory ) ) );
385-
}
386-
return map;
387-
}
388-
389-
private Map<String, NamedCallableQueryMemento> buildProcedureCallMementos(SessionFactoryImplementor sessionFactory) {
390-
final Map<String, NamedCallableQueryMemento> map = new HashMap<>();
391-
if ( namedProcedureCallMap != null ) {
392-
namedProcedureCallMap.forEach( (key, value) -> map.put( key, value.resolve( sessionFactory ) ) );
393-
}
394-
return map;
395-
}
396-
397368
@Override
398369
public void orderColumns(boolean forceOrdering) {
399370
final ColumnOrderingStrategy columnOrderingStrategy = metadataBuildingOptions.getColumnOrderingStrategy();
@@ -544,7 +515,7 @@ private <T> void appendListeners(
544515
String listeners,
545516
EventType<T> eventType) {
546517
final EventListenerGroup<T> eventListenerGroup = eventListenerRegistry.getEventListenerGroup( eventType );
547-
for ( String listenerImpl : LISTENER_SEPARATION_PATTERN.split( listeners ) ) {
518+
for ( String listenerImpl : splitAtCommas( listeners ) ) {
548519
@SuppressWarnings("unchecked")
549520
T listener = (T) instantiate( listenerImpl, classLoaderService );
550521
if ( !eventType.baseListenerInterface().isInstance( listener ) ) {

hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3370,7 +3370,7 @@ private static JaxbCascadeTypeImpl convertCascadeType(String s) {
33703370

33713371
if ( isNotEmpty( s ) ) {
33723372
s = s.toLowerCase( Locale.ROOT ).replaceAll( " ", "" );
3373-
final String[] split = s.split( "," );
3373+
final String[] split = StringHelper.split( ",", s );
33743374
for ( String hbmCascade : split ) {
33753375
if ( hbmCascade.contains( "all" ) ) {
33763376
cascadeType.setCascadeAll( new JaxbEmptyTypeImpl() );

hibernate-core/src/main/java/org/hibernate/boot/model/relational/QualifiedNameParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public NameParts parse(String text, Identifier defaultCatalog, Identifier defaul
134134
boolean schemaWasQuoted = false;
135135
boolean nameWasQuoted;
136136

137-
final String[] tokens = text.split( "\\." );
137+
final String[] tokens = StringHelper.split( ".", text );
138138
if ( tokens.length == 0 || tokens.length == 1 ) {
139139
// we have just a local name...
140140
name = text;

hibernate-core/src/main/java/org/hibernate/boot/model/source/internal/hbm/BasicAttributeColumnsAndFormulasSource.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmBasicAttributeType;
1313
import org.hibernate.boot.model.source.spi.SizeSource;
1414

15+
import static org.hibernate.internal.util.StringHelper.splitAtCommas;
16+
1517
/**
1618
* ColumnAndFormulaSource implementation handling basic attribute mappings.
1719
*
@@ -69,7 +71,7 @@ public Boolean isNullable() {
6971

7072
@Override
7173
public Set<String> getIndexConstraintNames() {
72-
return CommaSeparatedStringHelper.split( basicAttributeMapping.getIndex() );
74+
return Set.of( splitAtCommas( basicAttributeMapping.getIndex() ) );
7375
}
7476

7577
@Override
@@ -79,6 +81,6 @@ public boolean isUnique() {
7981

8082
@Override
8183
public Set<String> getUniqueKeyConstraintNames() {
82-
return CommaSeparatedStringHelper.split( basicAttributeMapping.getUniqueKey() );
84+
return Set.of( splitAtCommas( basicAttributeMapping.getUniqueKey() ) );
8385
}
8486
}

0 commit comments

Comments
 (0)