[ https://issues.apache.org/jira/browse/FLINK-3708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15249599#comment-15249599 ]
ASF GitHub Bot commented on FLINK-3708: --------------------------------------- Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/1905#discussion_r60383097 --- Diff: flink-libraries/flink-cep-scala/src/main/scala/org/apache/flink/cep/scala/pattern/Pattern.scala --- @@ -0,0 +1,186 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flink.cep.scala.pattern + +import org.apache.flink.api.common.functions.FilterFunction +import org.apache.flink.cep +import org.apache.flink.cep.pattern.{Pattern => JPattern} +import org.apache.flink.streaming.api.windowing.time.Time + +import scala.reflect.ClassTag + +/** + * Base class for a pattern definition. + * <p> + * A pattern definition is used by { @link org.apache.flink.cep.nfa.compiler.NFACompiler} to create + * a { @link NFA}. + * + * <pre>{ @code + * Pattern<T, F> pattern = Pattern.<T>begin("start") + * .next("middle").subtype(F.class) + * .followedBy("end").where(new MyFilterFunction()); + * } + * </pre> + * + * @param jPattern Underlying Java API Pattern + * @tparam T Base type of the elements appearing in the pattern + * @tparam F Subtype of T to which the current pattern operator is constrained + */ +class Pattern[T: ClassTag, F <: T : ClassTag](jPattern: JPattern[T, F]) { + + private[flink] def getWrappedPattern = jPattern + + + /** + * + * @return Name of the pattern operator + */ + def getName: String = jPattern.getName + + /** + * + * @return Window length in which the pattern match has to occur + */ + def getWindowTime: Option[Time] = { + val time = jPattern.getWindowTime + if (time == null) None else Some(time) --- End diff -- It's easier to simply write `Option(jPattern.getWindowTime())` > Scala API for CEP > ----------------- > > Key: FLINK-3708 > URL: https://issues.apache.org/jira/browse/FLINK-3708 > Project: Flink > Issue Type: Improvement > Components: CEP > Affects Versions: 1.1.0 > Reporter: Till Rohrmann > Assignee: Stefan Richter > > Currently, The CEP library does not support Scala case classes, because the > {{TypeExtractor}} cannot handle them. In order to support them, it would be > necessary to offer a Scala API for the CEP library. -- This message was sent by Atlassian JIRA (v6.3.4#6332)