/************************************************************************************** * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package com.espertech.esper.epl.join.rep; import com.espertech.esper.client.EventBean; import java.util.Set; /** * Node is the structure to hold results of event lookups in joined streams. A node holds a set of event which * are the result of a lookup in a stream's table. A Node can be linked to its parent node and the event within the * parent node, which was the event that was used to perform a lookup. */ public class Node { private final int stream; private Node parent; private EventBean parentEvent; private Set<EventBean> events; /** * Ctor. * @param stream this node stores results for */ public Node(int stream) { this.stream = stream; } /** * Returns the stream number of the stream that supplied the event results. * @return stream number for results */ public int getStream() { return stream; } /** * Returns the parent node, or null if this is a root node. * @return parent node or null for root node */ public Node getParent() { return parent; } /** * Sets the parent node. * @param parent to set */ public void setParent(Node parent) { this.parent = parent; } /** * Returns lookup event. * @return parent node's event that was used to lookup */ public EventBean getParentEvent() { return parentEvent; } /** * Set the parent lookup (from stream) event whose results (to stream) are stored. * @param parentEvent is the lookup event */ public void setParentEvent(EventBean parentEvent) { this.parentEvent = parentEvent; } /** * Returns the results of the lookup. * @return set of events */ public Set<EventBean> getEvents() { return events; } /** * Store lookup results. * @param events is a set of events */ public void setEvents(Set<EventBean> events) { this.events = events; } }