From c954f2df497b6435c5f5059eed19ae4cb83b8325 Mon Sep 17 00:00:00 2001 From: zapata Date: Fri, 5 Jul 2002 04:00:28 +0000 Subject: [PATCH] generatingProducerNode now has an encoding parameter --- .../localizer/MirProducerAssistantLocalizer.java | 2 +- .../basic/MirBasicProducerAssistantLocalizer.java | 10 +++++++-- .../mircoders/producer/GeneratingProducerNode.java | 26 +++++++++++++--------- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/source/mircoders/localizer/MirProducerAssistantLocalizer.java b/source/mircoders/localizer/MirProducerAssistantLocalizer.java index d7af9e03..102e0af3 100755 --- a/source/mircoders/localizer/MirProducerAssistantLocalizer.java +++ b/source/mircoders/localizer/MirProducerAssistantLocalizer.java @@ -5,7 +5,7 @@ import java.io.*; public interface MirProducerAssistantLocalizer { public void initializeGenerationValueSet(Map aValueSet) throws MirLocalizerException, MirLocalizerFailure; - public PrintWriter openWriter(String anIdentifier) throws MirLocalizerException, MirLocalizerFailure; + public PrintWriter openWriter(String anIdentifier, String anEncoding) throws MirLocalizerException, MirLocalizerFailure; public void closeWriter(PrintWriter aWriter) throws MirLocalizerException, MirLocalizerFailure; public String filterText(String aText) throws MirLocalizerException, MirLocalizerFailure; } diff --git a/source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java b/source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java index 761fe585..e4db3399 100755 --- a/source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicProducerAssistantLocalizer.java @@ -70,10 +70,16 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL aValueSet.put("articletype", articleTypeMap); }; - public PrintWriter openWriter(String anIdentifier) throws MirLocalizerFailure { + public PrintWriter openWriter(String anIdentifier, String anEncoding) throws MirLocalizerFailure { + String encoding; File file; File dir; + if (anEncoding!=null && !anEncoding.equals("")) + encoding = anEncoding; + else + encoding = MirGlobal.getConfigProperty("Mir.DefaultEncoding"); + try { file = new File( anIdentifier ); dir = new File(file.getParent()); @@ -83,7 +89,7 @@ public class MirBasicProducerAssistantLocalizer implements MirProducerAssistantL return new PrintWriter( new OutputStreamWriter( - new FileOutputStream(file), MirGlobal.getConfigProperty("Mir.DefaultEncoding") + new FileOutputStream(file), anEncoding ) ); } diff --git a/source/mircoders/producer/GeneratingProducerNode.java b/source/mircoders/producer/GeneratingProducerNode.java index 53be0872..c19b90dc 100755 --- a/source/mircoders/producer/GeneratingProducerNode.java +++ b/source/mircoders/producer/GeneratingProducerNode.java @@ -11,10 +11,15 @@ import mircoders.localizer.*; public class GeneratingProducerNode implements ProducerNode { private String generatorExpression; private String destinationExpression; + private String encodingExpression; - public GeneratingProducerNode(String aGenerator, String aDestination) { + public GeneratingProducerNode(String aGenerator, String aDestination, String anEncoding) { generatorExpression=aGenerator; destinationExpression=aDestination; + encodingExpression=anEncoding; + } + public GeneratingProducerNode(String aGenerator, String aDestination) { + this(aGenerator, aDestination, ""); } public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure { @@ -22,25 +27,26 @@ public class GeneratingProducerNode implements ProducerNode { PrintWriter printWriter; String generatorIdentifier; String destinationIdentifier; + String encodingIdentifier; - long startTime; - long endTime; + long startTime; + long endTime; - startTime = System.currentTimeMillis(); + startTime = System.currentTimeMillis(); try { - destinationIdentifier = ParameterExpander.expandExpression( aValueMap, destinationExpression ); generatorIdentifier = ParameterExpander.expandExpression( aValueMap, generatorExpression ); + encodingIdentifier = ParameterExpander.expandExpression( aValueMap, encodingExpression ); - aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier); + aLogger.println("Generating " + generatorIdentifier + " into " + destinationIdentifier + " using encoding " + encodingIdentifier); aLogger.flush(); - printWriter = MirGlobal.localizer().producerAssistant().openWriter( destinationIdentifier ); + printWriter = MirGlobal.localizer().producerAssistant().openWriter( destinationIdentifier, encodingIdentifier); generator = MirGlobal.localizer().generators().makeGenerator( generatorIdentifier ); generator.generate(printWriter, aValueMap, aLogger); MirGlobal.localizer().producerAssistant().closeWriter( printWriter ); - } - catch (Throwable t) { - aLogger.println(" error while generating: " + t.getMessage()); + } + catch (Throwable t) { + aLogger.println(" error while generating: " + t.getMessage()); aLogger.flush(); } endTime = System.currentTimeMillis(); -- 2.11.0