1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.swing.interaction;
12
13 import com.jsql.model.bean.util.Header;
14 import com.jsql.model.bean.util.HttpHeader;
15 import com.jsql.model.injection.strategy.blind.AbstractCallableBinary;
16 import com.jsql.util.LogLevelUtil;
17 import com.jsql.view.interaction.InteractionCommand;
18 import com.jsql.view.swing.panel.consoles.NetworkTable;
19 import com.jsql.view.swing.util.MediatorHelper;
20 import org.apache.commons.lang3.StringUtils;
21 import org.apache.logging.log4j.LogManager;
22 import org.apache.logging.log4j.Logger;
23
24 import javax.swing.table.DefaultTableModel;
25 import java.awt.*;
26 import java.util.Arrays;
27 import java.util.Collections;
28 import java.util.Map;
29
30 public class MessageHeader implements InteractionCommand {
31
32 private static final Logger LOGGER = LogManager.getRootLogger();
33
34 private final String url;
35 private final String post;
36 private final Map<String, String> header;
37 private final Map<String, String> response;
38 private final String source;
39 private final String size;
40 private final String metadataProcess;
41 private final String metadataStrategy;
42 private final AbstractCallableBinary<?> metadataBoolean;
43
44 @SuppressWarnings("unchecked")
45 public MessageHeader(Object[] interactionParams) {
46 Map<Header, Object> params = (Map<Header, Object>) interactionParams[0];
47 this.url = (String) params.getOrDefault(Header.URL, StringUtils.EMPTY);
48 this.post = (String) params.getOrDefault(Header.POST, StringUtils.EMPTY);
49 this.header = (Map<String, String>) params.getOrDefault(Header.HEADER, Collections.emptyMap());
50 this.response = (Map<String, String>) params.getOrDefault(Header.RESPONSE, Collections.emptyMap());
51 this.source = (String) params.getOrDefault(Header.SOURCE, StringUtils.EMPTY);
52 this.size = (String) params.getOrDefault(Header.PAGE_SIZE, StringUtils.EMPTY);
53 this.metadataProcess = (String) params.getOrDefault(Header.METADATA_PROCESS, StringUtils.EMPTY);
54 this.metadataStrategy = (String) params.getOrDefault(Header.METADATA_STRATEGY, StringUtils.EMPTY);
55 this.metadataBoolean = (AbstractCallableBinary<?>) params.getOrDefault(Header.METADATA_BOOLEAN, null);
56 }
57
58 @Override
59 public void execute() {
60 NetworkTable table = MediatorHelper.panelConsoles().getNetworkTable();
61 table.addHeader(new HttpHeader(this.url, this.post, this.header, this.response, this.source));
62 DefaultTableModel model = (DefaultTableModel) table.getModel();
63
64 try {
65 model.addRow(new Object[] {
66 this.url,
67 this.size,
68 this.metadataStrategy,
69 Arrays.asList(this.metadataProcess, this.metadataBoolean)
70 });
71
72 Rectangle rect = table.getCellRect(table.getRowCount() - 1, 0, true);
73 table.scrollRectToVisible(rect);
74
75 MediatorHelper.tabConsoles().setBold("Network");
76 } catch(NullPointerException | IndexOutOfBoundsException e) {
77
78 LOGGER.log(LogLevelUtil.CONSOLE_JAVA, e, e);
79 }
80 }
81 }