本文整理汇总了Java中com.espertech.esper.type.OuterJoinType.FULL属性的典型用法代码示例。如果您正苦于以下问题:Java OuterJoinType.FULL属性的具体用法?Java OuterJoinType.FULL怎么用?Java OuterJoinType.FULL使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类com.espertech.esper.type.OuterJoinType
的用法示例。
在下文中一共展示了OuterJoinType.FULL属性的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: isFullOuterJoinAllStreams
private static boolean isFullOuterJoinAllStreams(StatementSpecCompiled statementSpec) {
if (statementSpec.getOuterJoinDescList() == null || statementSpec.getOuterJoinDescList().length == 0) {
return false;
}
for (int stream = 0; stream < statementSpec.getStreamSpecs().length - 1; stream++) {
if (statementSpec.getOuterJoinDescList()[stream].getOuterJoinType() != OuterJoinType.FULL) {
return false;
}
}
return true;
}
示例2: graphOuterJoins
/**
* 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;
}
示例3: graphOuterJoins
/**
* 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;
}