1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.script;
18
19 import org.apache.logging.log4j.core.config.Configuration;
20 import org.apache.logging.log4j.core.config.Node;
21 import org.apache.logging.log4j.core.config.plugins.Plugin;
22 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
23 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
24 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
25
26
27
28
29 @Plugin(name = "ScriptRef", category = Node.CATEGORY, printObject = true)
30 public class ScriptRef extends AbstractScript {
31
32 private final ScriptManager scriptManager;
33
34 public ScriptRef(final String name, final ScriptManager scriptManager) {
35 super(name, null, null);
36 this.scriptManager = scriptManager;
37 }
38
39 @Override
40 public String getLanguage() {
41 final AbstractScript script = this.scriptManager.getScript(getName());
42 return script != null ? script.getLanguage() : null;
43 }
44
45
46 @Override
47 public String getScriptText() {
48 final AbstractScript script = this.scriptManager.getScript(getName());
49 return script != null ? script.getScriptText() : null;
50 }
51
52 @PluginFactory
53 public static ScriptRef createReference(
54
55 @PluginAttribute("ref") final String name,
56 @PluginConfiguration final Configuration configuration) {
57
58 if (name == null) {
59 LOGGER.error("No script name provided");
60 return null;
61 }
62 return new ScriptRef(name, configuration.getScriptManager());
63
64 }
65
66 @Override
67 public String toString() {
68 return "ref=" + getName();
69 }
70 }