55import java .util .List ;
66import java .util .Map ;
77import java .util .regex .Matcher ;
8- import ru .feodorkek .dev .mcremapper .dto .EntryPosition ;
9- import ru .feodorkek .dev .mcremapper .dto .RemapResult ;
108import ru .feodorkek .dev .mcremapper .domain .RemapperProvider ;
9+ import ru .feodorkek .dev .mcremapper .dto .EntryPosition ;
1110import ru .feodorkek .dev .mcremapper .dto .RemapEntry ;
12- import ru .feodorkek .dev .mcremapper .exception . RemapperProviderException ;
11+ import ru .feodorkek .dev .mcremapper .dto . RemapResult ;
1312import ru .feodorkek .dev .mcremapper .exception .RemappingException ;
1413import ru .feodorkek .dev .mcremapper .properties .RemapperProperties ;
1514import ru .feodorkek .dev .mcremapper .service .RemappingService ;
@@ -18,7 +17,6 @@ public class RemappingServiceImpl implements RemappingService {
1817
1918 private final Map <String , RemapperProvider > providers ;
2019 private final RemapperProperties properties ;
21- private RemapperProvider currentProvider ;
2220
2321 public RemappingServiceImpl ( final RemapperProperties properties ) {
2422 this .providers = new HashMap <>();
@@ -40,24 +38,8 @@ public void registerProvider( final RemapperProvider provider ) {
4038 }
4139
4240 @ Override
43- public void setCurrentProvider ( final String providerName ) {
44- if ( providerName == null || providerName .isBlank () ) {
45- throw new RemapperProviderException ( "Minecraft version name cannot be blank" );
46- }
47-
48- if ( !providers .containsKey ( providerName ) ) {
49- throw new RemapperProviderException ( "Minecraft remapper provider {0} not registered" , providerName );
50- }
51-
52- currentProvider = providers .get ( providerName );
53- }
54-
55- @ Override
56- public RemapResult maybeRemap ( final String mappedSource ) {
57- if ( currentProvider == null ) {
58- throw new RemappingException ( "Current provider not set" );
59- }
60-
41+ public RemapResult maybeRemap ( final String providerName ,
42+ final String mappedSource ) {
6143 if ( mappedSource == null || mappedSource .isBlank () ) {
6244 throw new RemappingException ( "Mapped source cannot be blank" );
6345 }
@@ -68,6 +50,16 @@ public RemapResult maybeRemap( final String mappedSource ) {
6850 throw new RemappingException ( "Mapped source length should be less than {0} chars" , properties .getRemapSourceMaxLen () );
6951 }
7052
53+ if ( providerName == null || providerName .isBlank () ) {
54+ throw new RemappingException ( "Minecraft remapper provider name cannot be blank" );
55+ }
56+
57+ if ( !providers .containsKey ( providerName ) ) {
58+ throw new RemappingException ( "Minecraft remapper provider {0} not registered" , providerName );
59+ }
60+
61+ final var provider = providers .get ( providerName );
62+
7163 final var result = new StringBuilder ();
7264 final var remapEntries = new ArrayList <RemapEntry >();
7365 final var lines = mappedSource .split ( "\n " );
@@ -76,13 +68,13 @@ public RemapResult maybeRemap( final String mappedSource ) {
7668 for ( int lineNumber = 0 ; lineNumber < lines .length ; lineNumber ++ ) {
7769 final var line = lineNumber < lines .length - 1 ? lines [ lineNumber ] + "\n " : lines [ lineNumber ];
7870
79- final var matcher = currentProvider .getRemapPattern ().matcher ( line );
71+ final var matcher = provider .getRemapPattern ().matcher ( line );
8072
8173 var offset = 0 ;
8274
8375 while ( matcher .find () ) {
8476 var mappedValue = matcher .group ();
85- var remappedValue = currentProvider .getMappings ().getOrDefault ( mappedValue , mappedValue );
77+ var remappedValue = provider .getMappings ().getOrDefault ( mappedValue , mappedValue );
8678 matcher .appendReplacement ( result , Matcher .quoteReplacement ( remappedValue ) );
8779
8880 if ( !mappedValue .equals ( remappedValue ) ) {
0 commit comments