本文整理汇总了Java中com.espertech.esper.epl.spec.OuterJoinDesc.getOuterJoinType方法的典型用法代码示例。如果您正苦于以下问题:Java OuterJoinDesc.getOuterJoinType方法的具体用法?Java OuterJoinDesc.getOuterJoinType怎么用?Java OuterJoinDesc.getOuterJoinType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.espertech.esper.epl.spec.OuterJoinDesc
的用法示例。
在下文中一共展示了OuterJoinDesc.getOuterJoinType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: optionalStreamsIfAny
import com.espertech.esper.epl.spec.OuterJoinDesc; //导入方法依赖的package包/类
public static boolean optionalStreamsIfAny(OuterJoinDesc[] outerJoinDescList) {
if (outerJoinDescList == null || outerJoinDescList.length == 0) {
return false;
}
for (OuterJoinDesc outerJoinDesc : outerJoinDescList) {
if (outerJoinDesc.getOuterJoinType() != OuterJoinType.INNER) {
return true;
}
}
return false;
}
示例2: graphInnerJoins
import com.espertech.esper.epl.spec.OuterJoinDesc; //导入方法依赖的package包/类
public static InnerJoinGraph graphInnerJoins(int numStreams, OuterJoinDesc[] outerJoinDescList) {
if ((outerJoinDescList.length + 1) != numStreams) {
throw new IllegalArgumentException("Number of outer join descriptors and number of streams not matching up");
}
Set<InterchangeablePair<Integer, Integer>> graph = new HashSet<InterchangeablePair<Integer, Integer>>();
boolean allInnerJoin = true;
for (int i = 0; i < outerJoinDescList.length; i++) {
OuterJoinDesc desc = outerJoinDescList[i];
int streamMax = i + 1; // the outer join must references streams less then streamMax
// Check outer join on-expression, if provided
if (desc.getOptLeftNode() != null) {
int streamOne = desc.getOptLeftNode().getStreamId();
int streamTwo = desc.getOptRightNode().getStreamId();
if ((streamOne > streamMax) || (streamTwo > streamMax) ||
(streamOne == streamTwo)) {
throw new IllegalArgumentException("Outer join descriptors reference future streams, or same streams");
}
if (desc.getOuterJoinType() == OuterJoinType.INNER) {
graph.add(new InterchangeablePair<Integer, Integer>(streamOne, streamTwo));
}
}
if (desc.getOuterJoinType() != OuterJoinType.INNER) {
allInnerJoin = false;
}
}
if (allInnerJoin) {
return new InnerJoinGraph(numStreams, true);
}
return new InnerJoinGraph(numStreams, graph);
}
示例3: graphOuterJoins
import com.espertech.esper.epl.spec.OuterJoinDesc; //导入方法依赖的package包/类
/**
* Builds a graph of outer joins given the outer join information from the statement.
* Eliminates right and left joins and full joins by placing the information in a graph object.
*
* @param numStreams - is the number of streams
* @param outerJoinDescList - list of outer join stream numbers and property names
* @return graph object
*/
protected static OuterInnerDirectionalGraph graphOuterJoins(int numStreams, OuterJoinDesc[] outerJoinDescList) {
if ((outerJoinDescList.length + 1) != numStreams) {
throw new IllegalArgumentException("Number of outer join descriptors and number of streams not matching up");
}
OuterInnerDirectionalGraph graph = new OuterInnerDirectionalGraph(numStreams);
for (int i = 0; i < outerJoinDescList.length; i++) {
OuterJoinDesc desc = outerJoinDescList[i];
int streamMax = i + 1; // the outer join must references streams less then streamMax
// Check outer join on-expression, if provided
int streamOne;
int streamTwo;
int lowerStream;
int higherStream;
if (desc.getOptLeftNode() != null) {
streamOne = desc.getOptLeftNode().getStreamId();
streamTwo = desc.getOptRightNode().getStreamId();
if ((streamOne > streamMax) || (streamTwo > streamMax) ||
(streamOne == streamTwo)) {
throw new IllegalArgumentException("Outer join descriptors reference future streams, or same streams");
}
// Determine who is the first stream in the streams listed
lowerStream = streamOne;
higherStream = streamTwo;
if (streamOne > streamTwo) {
lowerStream = streamTwo;
higherStream = streamOne;
}
} else {
streamOne = i;
streamTwo = i + 1;
lowerStream = i;
higherStream = i + 1;
graph.addUnqualifiedNavigable(streamOne, streamTwo);
}
// Add to graph
if (desc.getOuterJoinType() == OuterJoinType.FULL) {
graph.add(streamOne, streamTwo);
graph.add(streamTwo, streamOne);
} else if (desc.getOuterJoinType() == OuterJoinType.LEFT) {
graph.add(lowerStream, higherStream);
} else if (desc.getOuterJoinType() == OuterJoinType.RIGHT) {
graph.add(higherStream, lowerStream);
} else if (desc.getOuterJoinType() == OuterJoinType.INNER) {
// no navigability for inner joins
} else {
throw new IllegalArgumentException("Outer join descriptors join type not handled, type=" + desc.getOuterJoinType());
}
}
return graph;
}
示例4: graphOuterJoins
import com.espertech.esper.epl.spec.OuterJoinDesc; //导入方法依赖的package包/类
/**
* Builds a graph of outer joins given the outer join information from the statement.
* Eliminates right and left joins and full joins by placing the information in a graph object.
* @param numStreams - is the number of streams
* @param outerJoinDescList - list of outer join stream numbers and property names
* @return graph object
*/
protected static OuterInnerDirectionalGraph graphOuterJoins(int numStreams, List<OuterJoinDesc> outerJoinDescList)
{
if ((outerJoinDescList.size() + 1) != numStreams)
{
throw new IllegalArgumentException("Number of outer join descriptors and number of streams not matching up");
}
OuterInnerDirectionalGraph graph = new OuterInnerDirectionalGraph(numStreams);
for (int i = 0; i < outerJoinDescList.size(); i++)
{
OuterJoinDesc desc = outerJoinDescList.get(i);
int streamMax = i + 1; // the outer join must references streams less then streamMax
// Check outer join on-expression, if provided
int streamOne;
int streamTwo;
int lowerStream;
int higherStream;
if (desc.getOptLeftNode() != null) {
streamOne = desc.getOptLeftNode().getStreamId();
streamTwo = desc.getOptRightNode().getStreamId();
if ((streamOne > streamMax) || (streamTwo > streamMax) ||
(streamOne == streamTwo))
{
throw new IllegalArgumentException("Outer join descriptors reference future streams, or same streams");
}
// Determine who is the first stream in the streams listed
lowerStream = streamOne;
higherStream = streamTwo;
if (streamOne > streamTwo)
{
lowerStream = streamTwo;
higherStream = streamOne;
}
}
else {
streamOne = i;
streamTwo = i + 1;
lowerStream = i;
higherStream = i + 1;
graph.addUnqualifiedNavigable(streamOne, streamTwo);
}
// Add to graph
if (desc.getOuterJoinType() == OuterJoinType.FULL)
{
graph.add(streamOne, streamTwo);
graph.add(streamTwo, streamOne);
}
else if (desc.getOuterJoinType() == OuterJoinType.LEFT)
{
graph.add(lowerStream, higherStream);
}
else if (desc.getOuterJoinType() == OuterJoinType.RIGHT)
{
graph.add(higherStream, lowerStream);
}
else if (desc.getOuterJoinType() == OuterJoinType.INNER)
{
// no navigability for inner joins
}
else
{
throw new IllegalArgumentException("Outer join descriptors join type not handled, type=" + desc.getOuterJoinType());
}
}
return graph;
}
示例5: graphInnerJoins
import com.espertech.esper.epl.spec.OuterJoinDesc; //导入方法依赖的package包/类
public static InnerJoinGraph graphInnerJoins(int numStreams, List<OuterJoinDesc> outerJoinDescList)
{
if ((outerJoinDescList.size() + 1) != numStreams)
{
throw new IllegalArgumentException("Number of outer join descriptors and number of streams not matching up");
}
Set<InterchangeablePair<Integer, Integer>> graph = new HashSet<InterchangeablePair<Integer, Integer>>();
boolean allInnerJoin = true;
for (int i = 0; i < outerJoinDescList.size(); i++)
{
OuterJoinDesc desc = outerJoinDescList.get(i);
int streamMax = i + 1; // the outer join must references streams less then streamMax
// Check outer join on-expression, if provided
if (desc.getOptLeftNode() != null) {
int streamOne = desc.getOptLeftNode().getStreamId();
int streamTwo = desc.getOptRightNode().getStreamId();
if ((streamOne > streamMax) || (streamTwo > streamMax) ||
(streamOne == streamTwo))
{
throw new IllegalArgumentException("Outer join descriptors reference future streams, or same streams");
}
if (desc.getOuterJoinType() == OuterJoinType.INNER)
{
graph.add(new InterchangeablePair<Integer, Integer>(streamOne, streamTwo));
}
}
if (desc.getOuterJoinType() != OuterJoinType.INNER)
{
allInnerJoin = false;
}
}
if (allInnerJoin) {
return new InnerJoinGraph(numStreams, true);
}
return new InnerJoinGraph(numStreams, graph);
}