[
https://issues.apache.org/jira/browse/FLINK-6356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15984280#comment-15984280
]
ASF GitHub Bot commented on FLINK-6356:
---------------------------------------
Github user dawidwys commented on a diff in the pull request:
https://github.com/apache/flink/pull/3761#discussion_r113377152
--- Diff:
flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/pattern/Quantifier.java
---
@@ -18,51 +18,83 @@
package org.apache.flink.cep.pattern;
import java.util.EnumSet;
+import java.util.Objects;
-public enum Quantifier {
- ONE,
- ZERO_OR_MORE_EAGER(QuantifierProperty.LOOPING,
QuantifierProperty.EAGER),
- ZERO_OR_MORE_COMBINATIONS(QuantifierProperty.LOOPING),
- ZERO_OR_MORE_EAGER_STRICT(QuantifierProperty.EAGER,
QuantifierProperty.STRICT, QuantifierProperty.LOOPING),
- ZERO_OR_MORE_COMBINATIONS_STRICT(QuantifierProperty.STRICT,
QuantifierProperty.LOOPING),
- ONE_OR_MORE_EAGER(
- QuantifierProperty.LOOPING,
- QuantifierProperty.EAGER,
- QuantifierProperty.AT_LEAST_ONE),
- ONE_OR_MORE_EAGER_STRICT(
- QuantifierProperty.STRICT,
- QuantifierProperty.LOOPING,
- QuantifierProperty.EAGER,
- QuantifierProperty.AT_LEAST_ONE),
- ONE_OR_MORE_COMBINATIONS(QuantifierProperty.LOOPING,
QuantifierProperty.AT_LEAST_ONE),
- ONE_OR_MORE_COMBINATIONS_STRICT(
- QuantifierProperty.STRICT,
- QuantifierProperty.LOOPING,
- QuantifierProperty.AT_LEAST_ONE),
- TIMES(QuantifierProperty.TIMES),
- TIMES_STRICT(QuantifierProperty.TIMES, QuantifierProperty.STRICT),
- OPTIONAL;
+public class Quantifier {
private final EnumSet<QuantifierProperty> properties;
- Quantifier(final QuantifierProperty first, final QuantifierProperty...
rest) {
+ private Quantifier(final QuantifierProperty first, final
QuantifierProperty... rest) {
this.properties = EnumSet.of(first, rest);
}
- Quantifier() {
- this.properties = EnumSet.noneOf(QuantifierProperty.class);
+ public static Quantifier ONE() {
+ return new Quantifier(QuantifierProperty.SINGLE);
+ }
+
+ public static Quantifier ONE_OR_MORE() {
+ return new Quantifier(QuantifierProperty.LOOPING,
QuantifierProperty.EAGER);
+ }
+
+ public static Quantifier TIMES() {
+ return new Quantifier(QuantifierProperty.TIMES,
QuantifierProperty.EAGER);
}
public boolean hasProperty(QuantifierProperty property) {
return properties.contains(property);
}
+ public void combinations() {
+ if (!hasProperty(Quantifier.QuantifierProperty.EAGER)) {
+ throw new MalformedPatternException("Combinations
already allowed!");
+ }
+
+ if (hasProperty(Quantifier.QuantifierProperty.LOOPING) ||
hasProperty(Quantifier.QuantifierProperty.TIMES)) {
+ properties.remove(Quantifier.QuantifierProperty.EAGER);
+ } else {
+ throw new MalformedPatternException("Combinations not
applicable to " + this + "!");
+ }
+ }
+
+ public void consecutive() {
+ if (hasProperty(Quantifier.QuantifierProperty.CONSECUTIVE)) {
--- End diff --
Same here for the `ONE` quantifier.
> Make times() eager and enable allowing combinations.
> ----------------------------------------------------
>
> Key: FLINK-6356
> URL: https://issues.apache.org/jira/browse/FLINK-6356
> Project: Flink
> Issue Type: Bug
> Components: CEP
> Affects Versions: 1.3.0
> Reporter: Kostas Kloudas
> Assignee: Kostas Kloudas
> Fix For: 1.3.0
>
>
> This is the PR that addresses it https://github.com/apache/flink/pull/3761
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)