public void addRk(RoutingKey rk, AsImpl asImpl) throws Exception {
        int dpc = rk.getDestinationPointCodes()[0].getPointCode();
        OPCList[] opcArray = rk.getOPCLists();

        int[] opcIntArr = null;
        if (opcArray == null) {
            opcIntArr = new int[] { -1 };
        } else {
            opcIntArr = opcArray[0].getPointCodes();
        }

        ServiceIndicators[] siArray = rk.getServiceIndicators();
        short[] siShortArr = null;
        if (siArray == null) {
            siShortArr = new short[] { -1 };
        } else {
            siShortArr = siArray[0].getIndicators();
        }

        for (FastList.Node<DPCNode> n = dpcList.head(), end = dpcList.tail(); (n = n.getNext()) != end;) {
            DPCNode dpcNode = n.getValue();
            if (dpcNode.dpc == dpc) {
                this.addSi(dpcNode, opcIntArr, siShortArr, asImpl);
                return;
            }
        }

        DPCNode dpcNode = new DPCNode(dpc);
        this.addSi(dpcNode, opcIntArr, siShortArr, asImpl);
        this.dpcList.add(dpcNode);

    }
public void addRk ( RoutingKey rk , AsImpl asImpl ) throws Exception { int dpc = rk . getDestinationPointCodes ( ) [ 0 ] . getPointCode ( ) ; OPCList [ ] opcArray = rk . getOPCLists ( ) ; int [ ] opcIntArr = null ; if ( opcArray == null ) { opcIntArr = new int [ ] { - 1 } ; } else { opcIntArr = opcArray [ 0 ] . getPointCodes ( ) ; } ServiceIndicators [ ] siArray = rk . getServiceIndicators ( ) ; short [ ] siShortArr = null ; if ( siArray == null ) { siShortArr = new short [ ] { - 1 } ; } else { siShortArr = siArray [ 0 ] . getIndicators ( ) ; } for ( FastList . Node < DPCNode > n = dpcList . head ( ) , end = dpcList . tail ( ) ; ( n = n . getNext ( ) ) != end ; ) { DPCNode dpcNode = n . getValue ( ) ; if ( dpcNode . dpc == dpc ) { this . addSi ( dpcNode , opcIntArr , siShortArr , asImpl ) ; return ; } } DPCNode dpcNode = new DPCNode ( dpc ) ; this . addSi ( dpcNode , opcIntArr , siShortArr , asImpl ) ; this . dpcList . add ( dpcNode ) ; }
<p>
Create a Tree structure adding the reference to passed As. The Tree is created starting from {@link DPCNode} as parent
node containing 'n' {@link OPCNode} leafs where 'n' is list of OPC passed. For each {@link OPCNode} there will be 'm'
{@link SINode} leafs where 'm' is number of Service Indicator passed.
</p>

<p>
DPC is mandatory while OPC and SI list are optional. If OPC or SI is not passed the wild card '-1' leaf will be added to
parent node
</p>

@param rk
@param asImpl
@throws Exception