Пример #1
0
    public static TableAdjacency <CausalAttribute> traceAll(TableAdjacency <CausalAttribute> inputTable, List <uint> entrySourceIndices)
    {
        TableAdjacency <CausalAttribute> resultTable; // TODO = inputTable.clone();

        // TODO

        /*
         * foreach( uint entrySourceIndex in entrySourceIndices) {
         *  List<Tuple<uint, CausalAttribute>> sourcePath = new List<Tuple<uint, CausalAttribute>> {new Tuple<uint, CausalAttribute>(0, entrySourceIndex) };
         *
         *  traceRecursive(sourcePath, resultTable, inputTable);
         * }
         */

        return(null);//resultTable;
    }
Пример #2
0
    private static void traceRecursive(List <Tuple <uint, CausalAttribute> > sourcePath, TableAdjacency <CausalAttribute> resultTable, TableAdjacency <CausalAttribute> inputTable)
    {
        uint currentSourceIndex = sourcePath[sourcePath.Count - 1].Item1;

        resultTable.addDestinationSourceUnion(currentSourceIndex, sourcePath);

        foreach (Tuple <uint, CausalAttribute> iterationDestination in inputTable.getDestinationsBySource(currentSourceIndex))
        {
            List <Tuple <uint, CausalAttribute> > sourcePathForCallee = copyTupleList(sourcePath);

            // ASK< is adding the sourcedepth here correct? >
            sourcePathForCallee.Add(new Tuple <uint, CausalAttribute>(iterationDestination.Item1 + 1, iterationDestination.Item2));

            traceRecursive(sourcePathForCallee, resultTable, inputTable);
        }
    }