metron-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mattf-horton <...@git.apache.org>
Subject [GitHub] incubator-metron pull request #516: METRON-830 Adding StringFunctions to Ste...
Date Fri, 07 Apr 2017 00:18:59 GMT
Github user mattf-horton commented on a diff in the pull request:

    https://github.com/apache/incubator-metron/pull/516#discussion_r110292164
  
    --- Diff: metron-platform/metron-common/src/main/java/org/apache/metron/common/dsl/functions/StringFunctions.java
---
    @@ -343,4 +343,89 @@ public Object apply(List<Object> args) {
           return String.format(format, formatArgs);
         }
       }
    +
    +  @Stellar( name="CHOP"
    +          , description = "Remove the last character from a String"
    +          , params = { "the String to chop last character from, may be null"}
    +          , returns = "String without last character, null if null String input"
    +  )
    +  public static class chop extends BaseStellarFunction {
    +
    +    @Override
    +    public Object apply(List<Object> strings) {
    +
    +      if(strings.size() == 0) {
    +        throw new IllegalArgumentException("[CHOP] missing argument: string to be chopped");
    +      }
    +
    +      String chop = StringUtils.chop((String) strings.get(0));
    +      return chop;
    +    }
    +  }
    +
    +  @Stellar( name = "PREPENDIFMISSING"
    +          , description = "Prepends the prefix to the start of the string if the string
does not already start with any of the prefixes"
    +          , params = { "str - The string.", "prefix - The prefix to prepend to the start
of the string", "prefixes - Additional prefixes that are valid" }
    +          , returns = "A new String if prefix was prepended, the same string otherwise."
    +  )
    +  public static class prependifmissing extends BaseStellarFunction {
    +
    +    @Override
    +    public Object apply(List<Object> strings) {
    +
    +      String prefixed;
    +      switch (strings.size()) {
    +        case 2: prefixed = org.apache.commons.lang3.StringUtils.prependIfMissing((String)
strings.get(0), (String) strings.get(1));
    +          break;
    +        case 3: prefixed = org.apache.commons.lang3.StringUtils.prependIfMissing((String)
strings.get(0), (String) strings.get(1), (String) strings.get(2));
    +          break;
    +        default: throw new IllegalArgumentException("[PREPENDIFMISSING] incorrect arguments.
Usage: PREPENDIFMISSING <String> <prefix> [<prefix>...]");
    +      }
    +      return prefixed;
    +    }
    +  }
    +
    +  @Stellar( name = "APPENDIFMISSING"
    +          , description = "Appends the suffix to the end of the string if the string
does not already end with any of the suffixes"
    +          , params = { "str - The string.", "suffix - The suffix to append to the end
of the string", "suffixes - Additional suffixes that are valid terminators" }
    +          , returns = "A new String if suffix was appended, the same string otherwise."
    +  )
    +  public static class appendifmissing extends BaseStellarFunction {
    +
    +    @Override
    +    public Object apply(List<Object> strings) {
    +
    +      String suffixed;
    +      switch (strings.size()) {
    +        case 2:
    +          suffixed = org.apache.commons.lang3.StringUtils.appendIfMissing((String) strings.get(0),
(String) strings.get(1));
    +          break;
    +        case 3:
    +          suffixed = org.apache.commons.lang3.StringUtils.appendIfMissing((String) strings.get(0),
(String) strings.get(1), (String) strings.get(2));
    +          break;
    +        default:
    +          throw new IllegalArgumentException("[APPENDIFMISSING] incorrect arguments.
Usage: APPENDIFMISSING <String> <prefix> [<prefix>...]");
    +      }
    +      return suffixed;
    +    }
    +  }
    +
    +  @Stellar( name = "COUNTMATCHES"
    +          , description = "Counts how many times the substring appears in the larger
string"
    +          , params = { "str - the CharSequence to check, may be null", "sub - the substring
to count, may be null"}
    +          , returns = "the number of occurrences, 0 if either CharSequence is null"
    --- End diff --
    
    "the number of non-overlapping occurrences..."


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message