Skip to content

Commit 6088005

Browse files
committed
move JoinedSubclassEntityPersister.reverse() methods to ArrayHelper
1 parent 18291d8 commit 6088005

File tree

2 files changed

+48
-48
lines changed

2 files changed

+48
-48
lines changed

hibernate-core/src/main/java/org/hibernate/internal/util/collections/ArrayHelper.java

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,12 +431,50 @@ public static int countNonNull(Object[] array) {
431431
return i;
432432
}
433433

434+
/**
435+
* Reverse the elements of the incoming array
436+
*
437+
* @return New array with all elements in reversed order
438+
*/
434439
public static String[] reverse(String[] source) {
435440
final int length = source.length;
436441
final String[] destination = new String[length];
437442
for ( int i = 0; i < length; i++ ) {
438-
final int x = length - i - 1;
439-
destination[x] = source[i];
443+
destination[length - i - 1] = source[i];
444+
}
445+
return destination;
446+
}
447+
448+
/**
449+
* Reverse the first n elements of the incoming array
450+
*
451+
* @return New array with the first n elements in reversed order
452+
*/
453+
public static String[] reverseFirst(String[] objects, int n) {
454+
final int length = objects.length;
455+
final String[] destination = new String[length];
456+
for ( int i = 0; i < n; i++ ) {
457+
destination[i] = objects[n - i - 1];
458+
}
459+
for ( int i = n; i < length; i++ ) {
460+
destination[i] = objects[i];
461+
}
462+
return destination;
463+
}
464+
465+
/**
466+
* Reverse the first n elements of the incoming array
467+
*
468+
* @return New array with the first n elements in reversed order
469+
*/
470+
public static String[][] reverseFirst(String[][] objects, int n) {
471+
final int length = objects.length;
472+
final String[][] destination = new String[length][];
473+
for ( int i = 0; i < n; i++ ) {
474+
destination[i] = objects[n - i - 1];
475+
}
476+
for ( int i = n; i < length; i++ ) {
477+
destination[i] = objects[i];
440478
}
441479
return destination;
442480
}
@@ -485,4 +523,5 @@ public static <T> void forEach(T[] array, Consumer<T> consumer) {
485523
public static <T> T[] newInstance(Class<T> elementType, int length) {
486524
return (T[]) Array.newInstance( elementType, length );
487525
}
526+
488527
}

hibernate-core/src/main/java/org/hibernate/persister/entity/JoinedSubclassEntityPersister.java

Lines changed: 7 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import org.jboss.logging.Logger;
6666

6767
import static java.util.Collections.emptyMap;
68+
import static org.hibernate.internal.util.collections.ArrayHelper.reverseFirst;
6869
import static org.hibernate.internal.util.collections.ArrayHelper.to2DStringArray;
6970
import static org.hibernate.internal.util.collections.ArrayHelper.toIntArray;
7071
import static org.hibernate.internal.util.collections.ArrayHelper.toStringArray;
@@ -341,12 +342,12 @@ public JoinedSubclassEntityPersister(
341342
// the first table as it will the driving table.
342343
// tableNames -> CLIENT, PERSON
343344

344-
this.tableNames = reverse( naturalOrderTableNames, coreTableSpan );
345-
tableKeyColumns = reverse( naturalOrderTableKeyColumns, coreTableSpan );
346-
tableKeyColumnReaders = reverse( naturalOrderTableKeyColumnReaders, coreTableSpan );
347-
tableKeyColumnReaderTemplates = reverse( naturalOrderTableKeyColumnReaderTemplates, coreTableSpan );
348-
subclassTableNameClosure = reverse( naturalOrderSubclassTableNameClosure, coreTableSpan );
349-
subclassTableKeyColumnClosure = reverse( naturalOrderSubclassTableKeyColumnClosure, coreTableSpan );
345+
this.tableNames = reverseFirst( naturalOrderTableNames, coreTableSpan );
346+
tableKeyColumns = reverseFirst( naturalOrderTableKeyColumns, coreTableSpan );
347+
tableKeyColumnReaders = reverseFirst( naturalOrderTableKeyColumnReaders, coreTableSpan );
348+
tableKeyColumnReaderTemplates = reverseFirst( naturalOrderTableKeyColumnReaderTemplates, coreTableSpan );
349+
subclassTableNameClosure = reverseFirst( naturalOrderSubclassTableNameClosure, coreTableSpan );
350+
subclassTableKeyColumnClosure = reverseFirst( naturalOrderSubclassTableKeyColumnClosure, coreTableSpan );
350351

351352
spaces = ArrayHelper.join( this.tableNames, toStringArray( persistentClass.getSynchronizedTables() ) );
352353

@@ -800,46 +801,6 @@ public boolean isPropertyOfTable(int property, int j) {
800801
return naturalOrderPropertyTableNumbers[property] == j;
801802
}
802803

803-
/**
804-
* Reverse the first n elements of the incoming array
805-
*
806-
* @return New array with the first n elements in reversed order
807-
*/
808-
private static String[] reverse(String[] objects, int n) {
809-
810-
int size = objects.length;
811-
String[] temp = new String[size];
812-
813-
for ( int i = 0; i < n; i++ ) {
814-
temp[i] = objects[n - i - 1];
815-
}
816-
817-
for ( int i = n; i < size; i++ ) {
818-
temp[i] = objects[i];
819-
}
820-
821-
return temp;
822-
}
823-
824-
/**
825-
* Reverse the first n elements of the incoming array
826-
*
827-
* @return New array with the first n elements in reversed order
828-
*/
829-
private static String[][] reverse(String[][] objects, int n) {
830-
int size = objects.length;
831-
String[][] temp = new String[size][];
832-
for ( int i = 0; i < n; i++ ) {
833-
temp[i] = objects[n - i - 1];
834-
}
835-
836-
for ( int i = n; i < size; i++ ) {
837-
temp[i] = objects[i];
838-
}
839-
840-
return temp;
841-
}
842-
843804
@Override
844805
public String getTableName() {
845806
return tableNames[0];

0 commit comments

Comments
 (0)