1 package org.csc.phynixx.loggersystem.logger.channellogger;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import java.util.regex.Matcher;
25 import java.util.regex.Pattern;
26
27 class LogFilenameMatcher {
28
29 static class LogFilenameParts {
30 private String loggerName = null;
31 private String loggerSystemName = null;
32 private int logfileIndex = -1;
33
34 private LogFilenameParts(String loggerSystemName, String loggerName, int logfileIndex) {
35 super();
36 this.loggerSystemName = loggerSystemName;
37 this.loggerName = loggerName;
38 this.logfileIndex = logfileIndex;
39 }
40
41 String getLoggerSystemName() {
42 return loggerSystemName;
43 }
44
45
46 String getLoggerName() {
47 return loggerName;
48 }
49
50 int getLogfileIndex() {
51 return logfileIndex;
52 }
53
54 }
55
56
57 private java.util.regex.Pattern regexPattern = null;
58
59 LogFilenameMatcher(String pattern) {
60 this.regexPattern = Pattern.compile(pattern);
61 }
62
63
64 LogFilenameParts matches(String input) {
65
66 Matcher m = this.regexPattern.matcher(input);
67
68 if (!m.matches()) {
69 return null;
70 }
71
72 Matcher result = m;
73
74
75 String g1 = result.group(1);
76 String g2 = result.group(2);
77 String g3 = result.group(3);
78
79
80 return new LogFilenameParts(g1, g2, Integer.parseInt(g3));
81 }
82
83 }