package org.krakenapps.pcap.decoder.smb; import java.util.HashMap; import java.util.Map; import org.krakenapps.pcap.decoder.smb.ntparser.*; import org.krakenapps.pcap.decoder.smb.rr.NtTransactCommand; import org.krakenapps.pcap.decoder.smb.transparser.TransParser; public class NtTransSubCommandMapper { private Map<NtTransactCommand, TransParser> parsers; public NtTransSubCommandMapper() { parsers = new HashMap<NtTransactCommand, TransParser>(); map(NtTransactCommand.NT_TRANSACT_IOCTL , new NtIoctlParser()); map(NtTransactCommand.NT_TRANSACT_CREATE , new NtTransactCreateParser() ); map(NtTransactCommand.NT_TRANSACT_NOTIFY_CHANGE, new NtTransactNotifyChangeParser()); map(NtTransactCommand.NT_TRANSACT_QUERY_SECURITY_DESC, new NtTransactQuerySecurityDescParser()); map(NtTransactCommand.NT_TRANSACT_RENAME , new NtTransactRenameParser()); map(NtTransactCommand.NT_TRANSACT_SET_SECURITY_DESC , new NtTransactSetSecurityDescParser()); map(NtTransactCommand.NT_TRANSACT_QUERY_QUOTA , new NtTransactQueryQuotaParser()); map(NtTransactCommand.NT_TRANSACT_SET_QUOTA , new NtTransactSetQuotaParser()); // map(NtTransactCommand.NT_TRANSACT_CREATE2 , new ); } private void map(NtTransactCommand command, TransParser parser) { parsers.put(command, parser); } public TransParser getParser(NtTransactCommand code){ return parsers.get(code); } }