merge of localization branch into HEAD. mh and zap
[mir.git] / source / mir / producer / FileDateSettingProducerNode.java
1 package mir.producer;
2
3 import java.util.*;
4 import java.io.*;
5 import mir.util.*;
6 import mir.producer.*;
7 import mir.generator.*;
8 import mircoders.global.*;
9 import mircoders.localizer.*;
10
11 public class FileDateSettingProducerNode extends FileOperationProducerNode {
12   String dateExpression;
13
14   public FileDateSettingProducerNode(String aFileIdentifier, String aDateExpression) {
15     super(aFileIdentifier);
16
17     dateExpression = aDateExpression;
18   }
19
20   protected void perform(File aFile, Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
21     try {
22       Object date = ParameterExpander.findValueForKey( aValueMap, dateExpression );
23
24       if (!(date instanceof Date))
25         throw new ProducerFailure("FileDateSettingProducerNode: expression " + dateExpression + " does not evaluate to a Date!", null );
26
27       if (!aFile.setLastModified(((Date) date).getTime())) {
28         aLogger.println("Can't set date for " + aFile.getName());
29       }
30     }
31     catch (Throwable t) {
32       throw new ProducerFailure(t.getMessage(), t);
33     }
34   }
35 }