Skip to content

Commit f6101f6

Browse files
author
Ľudovít Lučenič
committed
added second (optional) parameter to dec2hex function defining leading zero-padding length
Signed-off-by: Ľudovít Lučenič <ludovit.lucenic@digital-orchestra.sk>
1 parent 92c317c commit f6101f6

File tree

5 files changed

+22
-13
lines changed

5 files changed

+22
-13
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "HexDecFunctions",
3-
"version": "1.0.0-SNAPSHOT",
3+
"version": "1.1.0",
44
"description": "",
55
"repository": {
66
"type": "git",

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<groupId>sk.digitalorchestra.graylog.plugins</groupId>
1111
<artifactId>graylog-plugin-hexdec-functions</artifactId>
12-
<version>1.0.0-SNAPSHOT</version>
12+
<version>1.1.0</version>
1313
<packaging>jar</packaging>
1414

1515
<name>${project.artifactId}</name>

src/main/java/sk/digitalorchestra/graylog/plugins/hexdec/Dec2HexFunction.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,44 @@
66
import org.graylog.plugins.pipelineprocessor.ast.functions.FunctionDescriptor;
77
import org.graylog.plugins.pipelineprocessor.ast.functions.ParameterDescriptor;
88

9+
import java.util.Optional;
10+
911
/**
1012
* This is the plugin. Your class should implement one of the existing plugin
1113
* interfaces. (i.e. AlarmCallback, MessageInput, MessageOutput)
1214
*/
1315
public class Dec2HexFunction extends AbstractFunction<String> {
1416

1517
public static final String NAME = "dec2hex";
16-
private static final String PARAM = "long";
18+
private static final String PARAM = "longval";
19+
private static final String PARAM_LEN = "len";
20+
21+
private final ParameterDescriptor<Long, Long> valueParam = ParameterDescriptor
22+
.integer(PARAM)
23+
.description("A number, negative or positive.")
24+
.build();
25+
26+
private final ParameterDescriptor<Long, Long> lenParam = ParameterDescriptor
27+
.integer(PARAM_LEN)
28+
.description("Result string length. Result will be padded with leading zeroes to have at least len length. The sign of the parameter value is ignored. Defaults to 1.")
29+
.build();
1730

1831
@Override
1932
public String evaluate(FunctionArgs functionArgs, EvaluationContext evaluationContext) {
2033
Long number = valueParam.required(functionArgs, evaluationContext);
34+
Optional<Long> numLength = lenParam.optional(functionArgs, evaluationContext);
2135

2236
if (number == null) return null;
2337

24-
return Long.toHexString(number);
38+
return String.format("%0" + String.valueOf(Math.abs(numLength.orElse(1L))) + "x", number);
2539
}
2640

27-
private final ParameterDescriptor<Long, Long> valueParam = ParameterDescriptor
28-
.integer(PARAM)
29-
.description("A number, negative or positive.")
30-
.build();
31-
3241
@Override
3342
public FunctionDescriptor<String> descriptor() {
3443
return FunctionDescriptor.<String>builder()
3544
.name(NAME)
36-
.description("Returns hexadecimal lower case string representation of the given number. No prefix or leading zeros.")
37-
.params(valueParam)
45+
.description("Returns hexadecimal lower case string representation of the given number. No prefix, optionally left padded with zeros.")
46+
.params(valueParam, lenParam)
3847
.returnType(String.class)
3948
.build();
4049
}

src/main/java/sk/digitalorchestra/graylog/plugins/hexdec/Hex2DecFunction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class Hex2DecFunction extends AbstractFunction<Long> {
1414

1515
public static final String NAME = "hex2dec";
16-
private static final String PARAM = "string";
16+
private static final String PARAM = "hexstring";
1717

1818
@Override
1919
public Long evaluate(FunctionArgs functionArgs, EvaluationContext evaluationContext) {

src/main/java/sk/digitalorchestra/graylog/plugins/hexdec/HexDecFunctionsMetaData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public URI getURL() {
3737
@Override
3838
public Version getVersion() {
3939
return Version.fromPluginProperties(getClass(), PLUGIN_PROPERTIES, "version",
40-
Version.from(1, 0, 0));
40+
Version.from(1, 1, 0));
4141
}
4242

4343
@Override

0 commit comments

Comments
 (0)