1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.timeservice.core.rule;
19
20 import lombok.Getter;
21 import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
22 import org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
23 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
24 import org.apache.shardingsphere.timeservice.api.config.TimestampServiceRuleConfiguration;
25 import org.apache.shardingsphere.timeservice.spi.TimestampService;
26
27 import java.sql.Timestamp;
28 import java.util.Properties;
29
30
31
32
33 public final class TimestampServiceRule implements GlobalRule {
34
35 @Getter
36 private final TimestampServiceRuleConfiguration configuration;
37
38 private final TimestampService timestampService;
39
40 public TimestampServiceRule(final TimestampServiceRuleConfiguration ruleConfig) {
41 configuration = ruleConfig;
42 timestampService = TypedSPILoader.getService(TimestampService.class, ruleConfig.getType(), null == ruleConfig.getProps() ? new Properties() : ruleConfig.getProps());
43 }
44
45
46
47
48
49
50 public Timestamp getTimestamp() {
51 return timestampService.getTimestamp();
52 }
53
54 @Override
55 public RuleAttributes getAttributes() {
56 return new RuleAttributes();
57 }
58 }