1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.joran.action;
15
16 import org.xml.sax.Attributes;
17
18 import ch.qos.logback.core.joran.spi.SaxEventInterpretationContext;
19 import ch.qos.logback.core.model.Model;
20 import ch.qos.logback.core.model.TimestampModel;
21 import ch.qos.logback.core.util.OptionHelper;
22
23
24
25
26
27
28
29
30
31 public class TimestampAction extends BaseModelAction {
32
33 public static final String DATE_PATTERN_ATTRIBUTE = "datePattern";
34 public static final String TIME_REFERENCE_ATTRIBUTE = "timeReference";
35
36 @Override
37 protected boolean validPreconditions(SaxEventInterpretationContext interpretationContext, String name,
38 Attributes attributes) {
39 boolean valid = true;
40 String keyStr = attributes.getValue(KEY_ATTRIBUTE);
41 if (OptionHelper.isNullOrEmptyOrAllSpaces(keyStr)) {
42 addError("Attribute named [" + KEY_ATTRIBUTE + "] cannot be empty");
43 valid = false;
44 }
45 String datePatternStr = attributes.getValue(DATE_PATTERN_ATTRIBUTE);
46 if (OptionHelper.isNullOrEmptyOrAllSpaces(datePatternStr)) {
47 addError("Attribute named [" + DATE_PATTERN_ATTRIBUTE + "] cannot be empty");
48 valid = false;
49 }
50 return valid;
51 }
52
53 @Override
54 protected Model buildCurrentModel(SaxEventInterpretationContext interpretationContext, String name,
55 Attributes attributes) {
56 TimestampModel timestampModel = new TimestampModel();
57
58 timestampModel.setKey(attributes.getValue(KEY_ATTRIBUTE));
59 timestampModel.setDatePattern(attributes.getValue(DATE_PATTERN_ATTRIBUTE));
60 timestampModel.setTimeReference(attributes.getValue(TIME_REFERENCE_ATTRIBUTE));
61 timestampModel.setScopeStr(attributes.getValue(SCOPE_ATTRIBUTE));
62
63 return timestampModel;
64
65 }
66
67 }