package org.krakenapps.pcap.decoder.smb;
import java.util.HashMap;
import java.util.Map;
import org.krakenapps.pcap.decoder.smb.rr.Transaction2Command;
import org.krakenapps.pcap.decoder.smb.trans2parser.*;
import org.krakenapps.pcap.decoder.smb.transparser.TransParser;
public class Trans2SubcommandMapper {
private Map<Transaction2Command, TransParser> parsers;
public Trans2SubcommandMapper(){
parsers = new HashMap<Transaction2Command, TransParser>();
map(Transaction2Command.TRANS2_OPEN2 , new Open2Parser());
map(Transaction2Command.TRANS2_FIND_FIRST2 , new FindFirst2Parser());
map(Transaction2Command.TRANS2_FIND_NEXT2, new FindNext2Parser());
map(Transaction2Command.TRANS_QUERY_FS_INFORMATION, new QueryFsInformationParser());
map(Transaction2Command.TRANS2_SET_FS_INFORMATION , new SetFsInformationParser());
map(Transaction2Command.TRANS2_QUERY_PATH_INFORMATION, new QueryPathInformationParser());
map(Transaction2Command.TRANS2_SET_PATH_INFORMATION, new SetPathInformationParser());
map(Transaction2Command.TRANS2_QUERY_FILE_INFORMATION, new QueryFileInformationParser());
map(Transaction2Command.TRANS2_SET_FILE_INFORMATION, new SetFileInformationParser());
map(Transaction2Command.TRANS2_FSCTL,new FsctlParser());
map(Transaction2Command.TRANS2_IOCTL2,new Ioctl2Parser());
map(Transaction2Command.TRANS2_FIND_NOTIFY_FIRST, new FindNotifyFirstParser());
map(Transaction2Command.TRANS2_FIND_NOTIFY_NEXT, new FindNotifyNextParser());
map(Transaction2Command.TRANS2_CREATE_DIRECTORY , new Trans2CreateDirectoryParser());
map(Transaction2Command.TRANS2_SESSION_SETUP, new SessionSetupParser());
map(Transaction2Command.TRANS2_GET_DFS_REFERRAL, new GetDfsReferralParser());
map(Transaction2Command.TRANS2_REPORT_DFS_INCONSITENCY , new ReportDfsInconsistencyParser());
}
public TransParser getParser(Transaction2Command code){
return parsers.get(code);
}
private void map(Transaction2Command command, TransParser parser) {
parsers.put(command, parser);
}
}