2 * Copyright (c) 2015 Cable Television Laboratories, Inc. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.pcmm.rcd.impl;
11 import org.pcmm.gates.IPCMMGate;
12 import org.pcmm.gates.ITransactionID;
13 import org.pcmm.gates.impl.PCMMGateReq;
14 import org.umu.cops.COPSStateMan;
15 import org.umu.cops.prpep.COPSPepDataProcess;
16 import org.umu.cops.prpep.COPSPepReqStateMan;
17 import org.umu.cops.stack.COPSData;
18 import org.umu.cops.stack.COPSError;
20 import java.util.HashMap;
22 import java.util.concurrent.ConcurrentHashMap;
25 * Data processor for the CMTS emulator.
27 class CmtsDataProcessor implements COPSPepDataProcess {
29 private transient Map<String, String> installDecs = new ConcurrentHashMap<>();
30 private transient Map<String, String> errorDecs = new ConcurrentHashMap<>();
33 public void setDecisions(final COPSPepReqStateMan man, final Map<String, String> removeDecs,
34 final Map<String, String> installDecs, final Map<String, String> errorDecs) {
36 // TODO - parameters man & removeDecs not used. They were members when encapsulated in CMTS but were never used.
37 this.installDecs = new ConcurrentHashMap<>(installDecs);
38 this.errorDecs = new ConcurrentHashMap<>(errorDecs);
42 public boolean isFailReport(final COPSPepReqStateMan man) {
43 return (errorDecs != null && errorDecs.size() > 0);
47 public Map<String, String> getReportData(final COPSPepReqStateMan man) {
48 if (isFailReport(man)) {
51 final Map<String, String> siDataHashTable = new HashMap<>();
52 if (installDecs.size() > 0) {
54 for (String k : installDecs.keySet()) {
55 data = installDecs.get(k);
58 final ITransactionID transactionID = PCMMGateReq.parse(new COPSData(data).getData()).getTransactionID();
60 // TODO - Determine how and why a response gate request can have only a transaction ID???
61 final IPCMMGate responseGate = new PCMMGateReq(null, null, transactionID, null, null, null, null, null, null, null, null);
63 // TODO FIXME - Why is the key always null??? What value should be used here???
64 final String key = null;
65 siDataHashTable.put(key, new String(responseGate.getData()));
67 return siDataHashTable;
72 public Map<String, String> getClientData(COPSPepReqStateMan man) {
73 // TODO Auto-generated method stub
74 return new HashMap<>();
78 public Map<String, String> getAcctData(COPSPepReqStateMan man) {
79 // TODO Auto-generated method stub
80 return new HashMap<>();
84 public void notifyClosedConnection(final COPSStateMan man, final COPSError error) {
85 // TODO Auto-generated method stub
89 public void notifyNoKAliveReceived(final COPSStateMan man) {
90 // TODO Auto-generated method stub
94 public void closeRequestState(final COPSStateMan man) {
95 // TODO Auto-generated method stub
99 public void newRequestState(final COPSPepReqStateMan man) {
100 // TODO Auto-generated method stub