Merge "Remove "response" from yang."
[packetcable.git] / packetcable-driver / src / main / java / org / pcmm / rcd / impl / CmtsDataProcessor.java
1 /*
2  * (c) 2015 Cable Television Laboratories, Inc.  All rights reserved.
3  */
4
5 package org.pcmm.rcd.impl;
6
7 import org.pcmm.gates.IPCMMGate;
8 import org.pcmm.gates.ITransactionID;
9 import org.pcmm.gates.impl.PCMMGateReq;
10 import org.umu.cops.COPSStateMan;
11 import org.umu.cops.prpep.COPSPepDataProcess;
12 import org.umu.cops.prpep.COPSPepReqStateMan;
13 import org.umu.cops.stack.COPSData;
14 import org.umu.cops.stack.COPSError;
15
16 import java.util.HashMap;
17 import java.util.Map;
18 import java.util.concurrent.ConcurrentHashMap;
19
20 /**
21  * Data processor for the CMTS emulator.
22  */
23 class CmtsDataProcessor implements COPSPepDataProcess {
24
25     private transient Map<String, String> installDecs = new ConcurrentHashMap<>();
26     private transient Map<String, String> errorDecs = new ConcurrentHashMap<>();
27
28     @Override
29     public void setDecisions(final COPSPepReqStateMan man, final Map<String, String> removeDecs,
30                              final Map<String, String> installDecs, final Map<String, String> errorDecs) {
31
32         // TODO - parameters man & removeDecs not used. They were members when encapsulated in CMTS but were never used.
33         this.installDecs = new ConcurrentHashMap<>(installDecs);
34         this.errorDecs = new ConcurrentHashMap<>(errorDecs);
35     }
36
37     @Override
38     public boolean isFailReport(final COPSPepReqStateMan man) {
39         return (errorDecs != null && errorDecs.size() > 0);
40     }
41
42     @Override
43     public Map<String, String> getReportData(final COPSPepReqStateMan man) {
44         if (isFailReport(man)) {
45             return errorDecs;
46         } else {
47             final Map<String, String> siDataHashTable = new HashMap<>();
48             if (installDecs.size() > 0) {
49                 String data = "";
50                 for (String k : installDecs.keySet()) {
51                     data = installDecs.get(k);
52                     break;
53                 }
54                 final ITransactionID transactionID = new PCMMGateReq(new COPSData(data).getData()).getTransactionID();
55                 final IPCMMGate responseGate = new PCMMGateReq();
56                 responseGate.setTransactionID(transactionID);
57
58                 // TODO FIXME - Why is the key always null??? What value should be used here???
59                 final String key = null;
60                 siDataHashTable.put(key, new String(responseGate.getData()));
61             }
62             return siDataHashTable;
63         }
64     }
65
66     @Override
67     public Map<String, String> getClientData(COPSPepReqStateMan man) {
68         // TODO Auto-generated method stub
69         return new HashMap<>();
70     }
71
72     @Override
73     public Map<String, String> getAcctData(COPSPepReqStateMan man) {
74         // TODO Auto-generated method stub
75         return new HashMap<>();
76     }
77
78     @Override
79     public void notifyClosedConnection(final COPSStateMan man, final COPSError error) {
80         // TODO Auto-generated method stub
81     }
82
83     @Override
84     public void notifyNoKAliveReceived(final COPSStateMan man) {
85         // TODO Auto-generated method stub
86     }
87
88     @Override
89     public void closeRequestState(final COPSStateMan man) {
90         // TODO Auto-generated method stub
91     }
92
93     @Override
94     public void newRequestState(final COPSPepReqStateMan man) {
95         // TODO Auto-generated method stub
96     }
97
98 }