Fix -F -T option combination
Change-Id: I1dd87e6b12118db44cac5c209d737a0d4fee63e1
diff --git a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
index c0f8dba..a843d82 100644
--- a/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
+++ b/app/src/main/kotlin/de/ids_mannheim/korapxmltools/KorapXmlTool.kt
@@ -1955,23 +1955,29 @@
// Determine output zip label. Prefer combined label if both tagger and parser are active
var targetFoundry = "base"
val labelParts = mutableListOf<String>()
- if (taggerName != null) {
- val tagger = AnnotationToolBridgeFactory.getTagger(taggerName!!, taggerModel!!, LOGGER)
- if (tagger != null) {
- labelParts.add(tagger.foundry)
+
+ // Check if foundry override is set - if so, use it directly
+ if (foundryOverride != null) {
+ targetFoundry = foundryOverride!!
+ } else {
+ if (taggerName != null) {
+ val tagger = AnnotationToolBridgeFactory.getTagger(taggerName!!, taggerModel!!, LOGGER)
+ if (tagger != null) {
+ labelParts.add(tagger.foundry)
+ }
}
- }
- if (parserName != null) {
- // Only add parser foundry if it's different from tagger foundry
- if (taggerName == null || taggerName != parserName) {
- labelParts.add(parserName!!)
+ if (parserName != null) {
+ // Only add parser foundry if it's different from tagger foundry
+ if (taggerName == null || taggerName != parserName) {
+ labelParts.add(parserName!!)
+ }
}
- }
- if (labelParts.isNotEmpty()) {
- targetFoundry = labelParts.joinToString("-")
- } else if (annotateWith.isNotEmpty()) {
- targetFoundry = externalFoundry ?: detectFoundryFromAnnotateCmd(annotateWith)
- LOGGER.info("Detected foundry '$targetFoundry' from annotation command: $annotateWith")
+ if (labelParts.isNotEmpty()) {
+ targetFoundry = labelParts.joinToString("-")
+ } else if (annotateWith.isNotEmpty()) {
+ targetFoundry = externalFoundry ?: detectFoundryFromAnnotateCmd(annotateWith)
+ LOGGER.info("Detected foundry '$targetFoundry' from annotation command: $annotateWith")
+ }
}
dbFactory = DocumentBuilderFactory.newInstance()
dBuilder = dbFactory!!.newDocumentBuilder()
@@ -2977,8 +2983,8 @@
output.setLength(0)
} else {
// Direct ZIP output without external annotation: write morpho.xml and, if parser is active, dependency.xml
- val morphoDir = taggerToolBridges[Thread.currentThread().threadId()]?.foundry ?: morphoFoundry
- val depDir = parserName ?: morphoDir
+ val morphoDir = foundryOverride ?: (taggerToolBridges[Thread.currentThread().threadId()]?.foundry ?: morphoFoundry)
+ val depDir = foundryOverride ?: (parserName ?: morphoDir)
var wroteOne = false
// Always write morpho.xml if we have morpho annotations (tagger or from input)
if (morpho[docId] != null && morpho[docId]!!.isNotEmpty()) {