public synchronized void start() {
        if (running) {
            log.warn("Error calling start() for Siddhi App '" + siddhiAppContext.getName() + "', " +
                    "SiddhiApp already started.");
            return;
        }
        if (!runningWithoutSources) {
            startWithoutSources();
        }
        if (runningWithoutSources) {
            startSources();
        }
    }
This method get the onDemandQuery and return the corresponding output and its types.

@param onDemandQuery       this onDemandQuery is processed and get the output attributes.
@param onDemandQueryString this passed to report errors with context if there are any.
@return List of output attributes
modules/siddhi-core/src/main/java/io/siddhi/core/SiddhiAppRuntimeImpl.java