mirror of
https://github.com/mapstruct/mapstruct.git
synced 2025-07-12 00:00:08 +08:00
#941 adapting strategy naming of safe variable names
This commit is contained in:
parent
d1388c3a45
commit
2fdd392e19
@ -156,11 +156,17 @@ public class Strings {
|
||||
Set<String> conflictingNames = new HashSet<String>( KEYWORDS );
|
||||
conflictingNames.addAll( existingVariableNames );
|
||||
|
||||
while ( conflictingNames.contains( name ) ) {
|
||||
name = name + "_";
|
||||
if ( !conflictingNames.contains( name ) ) {
|
||||
return name;
|
||||
}
|
||||
|
||||
return name;
|
||||
int c = 1;
|
||||
String seperator = Character.isDigit( name.charAt( name.length() - 1 ) ) ? "_" : "";
|
||||
while ( conflictingNames.contains( name + seperator + c ) ) {
|
||||
c++;
|
||||
}
|
||||
|
||||
return name + seperator + c;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,21 +73,27 @@ public class StringsTest {
|
||||
@Test
|
||||
public void testGetSaveVariableNameWithArrayExistingVariables() throws Exception {
|
||||
assertThat( Strings.getSaveVariableName( "int[]" ) ).isEqualTo( "intArray" );
|
||||
assertThat( Strings.getSaveVariableName( "Extends" ) ).isEqualTo( "extends_" );
|
||||
assertThat( Strings.getSaveVariableName( "class" ) ).isEqualTo( "class_" );
|
||||
assertThat( Strings.getSaveVariableName( "Class" ) ).isEqualTo( "class_" );
|
||||
assertThat( Strings.getSaveVariableName( "Case" ) ).isEqualTo( "case_" );
|
||||
assertThat( Strings.getSaveVariableName( "Synchronized" ) ).isEqualTo( "synchronized_" );
|
||||
assertThat( Strings.getSaveVariableName( "prop", "prop", "prop_" ) ).isEqualTo( "prop__" );
|
||||
assertThat( Strings.getSaveVariableName( "Extends" ) ).isEqualTo( "extends1" );
|
||||
assertThat( Strings.getSaveVariableName( "class" ) ).isEqualTo( "class1" );
|
||||
assertThat( Strings.getSaveVariableName( "Class" ) ).isEqualTo( "class1" );
|
||||
assertThat( Strings.getSaveVariableName( "Case" ) ).isEqualTo( "case1" );
|
||||
assertThat( Strings.getSaveVariableName( "Synchronized" ) ).isEqualTo( "synchronized1" );
|
||||
assertThat( Strings.getSaveVariableName( "prop", "prop", "prop_" ) ).isEqualTo( "prop1" );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSaveVariableNameVariablesEndingOnNumberVariables() throws Exception {
|
||||
assertThat( Strings.getSaveVariableName( "prop1", "prop1" ) ).isEqualTo( "prop1_1" );
|
||||
assertThat( Strings.getSaveVariableName( "prop1", "prop1", "prop1_1" ) ).isEqualTo( "prop1_2" );
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSaveVariableNameWithCollection() throws Exception {
|
||||
assertThat( Strings.getSaveVariableName( "int[]", new ArrayList<String>() ) ).isEqualTo( "intArray" );
|
||||
assertThat( Strings.getSaveVariableName( "Extends", new ArrayList<String>() ) ).isEqualTo( "extends_" );
|
||||
assertThat( Strings.getSaveVariableName( "prop", Arrays.asList( "prop", "prop_" ) ) ).isEqualTo( "prop__" );
|
||||
assertThat( Strings.getSaveVariableName( "Extends", new ArrayList<String>() ) ).isEqualTo( "extends1" );
|
||||
assertThat( Strings.getSaveVariableName( "prop", Arrays.asList( "prop", "prop1" ) ) ).isEqualTo( "prop2" );
|
||||
assertThat( Strings.getSaveVariableName( "prop.font", Arrays.asList( "propFont", "propFont_" ) ) )
|
||||
.isEqualTo( "propFont__" );
|
||||
.isEqualTo( "propFont1" );
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
x
Reference in New Issue
Block a user