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 );
|
Set<String> conflictingNames = new HashSet<String>( KEYWORDS );
|
||||||
conflictingNames.addAll( existingVariableNames );
|
conflictingNames.addAll( existingVariableNames );
|
||||||
|
|
||||||
while ( conflictingNames.contains( name ) ) {
|
if ( !conflictingNames.contains( name ) ) {
|
||||||
name = 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
|
@Test
|
||||||
public void testGetSaveVariableNameWithArrayExistingVariables() throws Exception {
|
public void testGetSaveVariableNameWithArrayExistingVariables() throws Exception {
|
||||||
assertThat( Strings.getSaveVariableName( "int[]" ) ).isEqualTo( "intArray" );
|
assertThat( Strings.getSaveVariableName( "int[]" ) ).isEqualTo( "intArray" );
|
||||||
assertThat( Strings.getSaveVariableName( "Extends" ) ).isEqualTo( "extends_" );
|
assertThat( Strings.getSaveVariableName( "Extends" ) ).isEqualTo( "extends1" );
|
||||||
assertThat( Strings.getSaveVariableName( "class" ) ).isEqualTo( "class_" );
|
assertThat( Strings.getSaveVariableName( "class" ) ).isEqualTo( "class1" );
|
||||||
assertThat( Strings.getSaveVariableName( "Class" ) ).isEqualTo( "class_" );
|
assertThat( Strings.getSaveVariableName( "Class" ) ).isEqualTo( "class1" );
|
||||||
assertThat( Strings.getSaveVariableName( "Case" ) ).isEqualTo( "case_" );
|
assertThat( Strings.getSaveVariableName( "Case" ) ).isEqualTo( "case1" );
|
||||||
assertThat( Strings.getSaveVariableName( "Synchronized" ) ).isEqualTo( "synchronized_" );
|
assertThat( Strings.getSaveVariableName( "Synchronized" ) ).isEqualTo( "synchronized1" );
|
||||||
assertThat( Strings.getSaveVariableName( "prop", "prop", "prop_" ) ).isEqualTo( "prop__" );
|
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
|
@Test
|
||||||
public void testGetSaveVariableNameWithCollection() throws Exception {
|
public void testGetSaveVariableNameWithCollection() throws Exception {
|
||||||
assertThat( Strings.getSaveVariableName( "int[]", new ArrayList<String>() ) ).isEqualTo( "intArray" );
|
assertThat( Strings.getSaveVariableName( "int[]", new ArrayList<String>() ) ).isEqualTo( "intArray" );
|
||||||
assertThat( Strings.getSaveVariableName( "Extends", new ArrayList<String>() ) ).isEqualTo( "extends_" );
|
assertThat( Strings.getSaveVariableName( "Extends", new ArrayList<String>() ) ).isEqualTo( "extends1" );
|
||||||
assertThat( Strings.getSaveVariableName( "prop", Arrays.asList( "prop", "prop_" ) ) ).isEqualTo( "prop__" );
|
assertThat( Strings.getSaveVariableName( "prop", Arrays.asList( "prop", "prop1" ) ) ).isEqualTo( "prop2" );
|
||||||
assertThat( Strings.getSaveVariableName( "prop.font", Arrays.asList( "propFont", "propFont_" ) ) )
|
assertThat( Strings.getSaveVariableName( "prop.font", Arrays.asList( "propFont", "propFont_" ) ) )
|
||||||
.isEqualTo( "propFont__" );
|
.isEqualTo( "propFont1" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user