23
23
import org .metafacture .metamorph .functions .Timestamp ;
24
24
import org .metafacture .metamorph .maps .FileMap ;
25
25
26
- import java .io .File ;
27
26
import java .io .IOException ;
28
27
import java .util .Arrays ;
29
28
import java .util .Collections ;
30
29
import java .util .Comparator ;
31
30
import java .util .HashMap ;
32
31
import java .util .List ;
33
32
import java .util .Map ;
33
+ import java .util .Optional ;
34
34
import java .util .Random ;
35
35
import java .util .concurrent .atomic .LongAdder ;
36
36
import java .util .function .Consumer ;
@@ -96,14 +96,19 @@ public void apply(final Metafix metafix, final Record record, final List<String>
96
96
put_rdfmap {
97
97
@ Override
98
98
public void apply (final Metafix metafix , final Record record , final List <String > params , final Map <String , String > options ) {
99
- final String resourceName = params .get (0 );
100
- final RdfMap rdf = new RdfMap ();
101
- rdf .setResource (metafix .resolvePath (resourceName ));
102
- withOption (options , RdfMap .TARGET , rdf ::setTarget );
103
- withOption (options , RdfMap .TARGET_LANGUAGE , rdf ::setTargetLanguage );
104
- withOption (options , Maps .DEFAULT_MAP_KEY , rdf ::setDefault );
105
- final String mapName = (params .size () > 1 ? params .get (1 ) : params .get (0 )) + options .get (RdfMap .TARGET ) + options .getOrDefault (RdfMap .TARGET_LANGUAGE , "" );
106
- metafix .putMap (mapName , rdf );
99
+ final String rdfMapName = params .size () == 1 ? params .get (0 ) : params .get (1 ) + options .get (RdfMap .TARGET ) + options .getOrDefault (RdfMap .TARGET_LANGUAGE , "" );
100
+ final String replaceTargets = options .get (RdfMap .TARGET ) + options .getOrDefault (RdfMap .TARGET_LANGUAGE , "" );
101
+ final String resourceName = Optional .ofNullable (params .get (0 ))
102
+ .map (str -> str .replaceAll (replaceTargets + "$" , "" ))
103
+ .orElse (params .get (0 ));
104
+ final RdfMap rdfMap = new RdfMap ();
105
+
106
+ rdfMap .setResource (metafix .resolvePath (resourceName ));
107
+ withOption (options , RdfMap .TARGET , rdfMap ::setTarget );
108
+ withOption (options , RdfMap .TARGET_LANGUAGE , rdfMap ::setTargetLanguage );
109
+ withOption (options , Maps .DEFAULT_MAP_KEY , rdfMap ::setDefault );
110
+
111
+ metafix .putMap (rdfMapName , rdfMap );
107
112
}
108
113
},
109
114
put_var {
@@ -484,6 +489,7 @@ public void apply(final Metafix metafix, final Record record, final List<String>
484
489
485
490
@ Override
486
491
public void apply (final Metafix metafix , final Record record , final List <String > params , final Map <String , String > options ) {
492
+ <<<<<<< HEAD
487
493
final Map <String , String > map ;
488
494
489
495
if (params .size () <= 1 ) {
@@ -534,11 +540,7 @@ public void apply(final Metafix metafix, final Record record, final List<String>
534
540
lookup_rdf {
535
541
@ Override
536
542
public void apply (final Metafix metafix , final Record record , final List <String > params , final Map <String , String > options ) {
537
- final Map <String , String > map = getMap (metafix , record , params , options , KIND_OF_RDFMAP );
538
- record .transform (params .get (0 ), oldValue -> {
539
- final String newValue = map .getOrDefault (oldValue , map .get (Maps .DEFAULT_MAP_KEY ));
540
- return newValue != null ? newValue : getBoolean (options , "delete" ) ? null : oldValue ;
541
- });
543
+ lookup (metafix , record , params , options , put_rdfmap );
542
544
}
543
545
},
544
546
prepend {
@@ -663,8 +665,6 @@ public void apply(final Metafix metafix, final Record record, final List<String>
663
665
}
664
666
};
665
667
666
- public static final String KIND_OF_RDFMAP = "rdfmap" ;
667
- public static final String KIND_OF_FILEMAP = "filemap" ;
668
668
private static final Pattern NAMED_GROUP_PATTERN = Pattern .compile ("\\ (\\ ?<(.+?)>" );
669
669
670
670
private static final String FILEMAP_SEPARATOR_OPTION = "sep_char" ;
@@ -674,35 +674,5 @@ public void apply(final Metafix metafix, final Record record, final List<String>
674
674
675
675
private static final Random RANDOM = new Random ();
676
676
677
- private static Map <String , String > getMap (final Metafix metafix , final Record record , final List <String > params , final Map <String , String > options , final String kindOfMap ) {
678
- final Map <String , String > map ;
679
- if (params .size () <= 1 ) {
680
- map = options ;
681
- }
682
- else {
683
- final String mapName ;
684
- if (kindOfMap .equals (KIND_OF_FILEMAP )) {
685
- mapName = params .get (1 );
686
- }
687
- else {
688
- mapName = params .get (1 ) + options .get (RdfMap .TARGET ) + options .getOrDefault (RdfMap .TARGET_LANGUAGE , "" );
689
- }
690
- if (!metafix .getMapNames ().contains (mapName )) {
691
- if (mapName .contains ("." ) || mapName .contains (File .separator )) {
692
- if (kindOfMap .equals (KIND_OF_FILEMAP )) {
693
- put_filemap .apply (metafix , record , Arrays .asList (mapName ), options );
694
- }
695
- if (kindOfMap .equals (KIND_OF_RDFMAP )) {
696
- put_rdfmap .apply (metafix , record , Arrays .asList (params .get (1 )), options );
697
- }
698
- }
699
- else {
700
- // Probably an unknown internal map? Log a warning?
701
- }
702
- }
703
- map = metafix .getMap (mapName );
704
- }
705
- return map ;
706
- }
707
677
708
678
}
0 commit comments