org.zaproxy.zap.view.table.HistoryReferencesTableModel Maven / Gradle / Ivy
Show all versions of zap Show documentation
/*
* Zed Attack Proxy (ZAP) and its related class files.
*
* ZAP is an HTTP/HTTPS proxy for assessing web application security.
*
* Copyright 2014 The ZAP Development Team
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.zaproxy.zap.view.table;
import javax.swing.table.TableModel;
import org.parosproxy.paros.model.HistoryReference;
/**
* A {@code TableModel} specialised in displaying data of {@code HistoryReference}s and handling
* them.
*
* @param the type of entries of this table model
* @see TableModel
* @see HistoryReference
* @see HistoryReferencesTable
*/
public interface HistoryReferencesTableModel
extends TableModel {
/**
* The default columns supported by the table model for state of {@code HistoryReference}.
*
* @see Column#CUSTOM
*/
public enum Column {
HREF_ID,
REQUEST_TIMESTAMP,
RESPONSE_TIMESTAMP,
HREF_TYPE,
HREF_TYPE_INFO,
METHOD,
URL,
HOSTNAME,
PATH_AND_QUERY,
STATUS_CODE,
STATUS_REASON,
RTT,
SIZE_MESSAGE,
SIZE_REQUEST_HEADER,
SIZE_REQUEST_BODY,
SIZE_RESPONSE_HEADER,
SIZE_RESPONSE_BODY,
SESSION_ID,
HIGHEST_ALERT,
NOTE,
TAGS,
/**
* Indicates that the column has custom values and that those values should retrieved by
* other means.
*/
CUSTOM
}
/**
* Returns all {@code Column}s enabled.
*
* @return all {@code Column}s enabled.
*/
Column[] getColumns();
/**
* Returns the {@code Column} at the given column index.
*
* @param columnIndex the column index used to get the {@code Column}
* @return the {@code Column} at the given column index
* @throws IllegalArgumentException if {@code columnIndex} is not valid (is negative, greater or
* equal than the number of columns).
*/
Column getColumn(int columnIndex);
/**
* Returns the index of the given {@code column}. If the given {@code column} is not enabled,
* {@code null} is returned.
*
* @param column the column that will be searched
* @return the index of the given {@code column}, or {@code null} if not enabled.
* @throws IllegalArgumentException if {@code column} is {@code null}
* @see #isColumnEnabled(Column)
*/
int getColumnIndex(Column column);
/**
* Tells whether the given {@code column} is enabled. A column is enabled if the table model was
* configured to use it.
*
* @param column the column that will be checked
* @return {@code true} if the column is enabled, {@code false} otherwise.
* @throws IllegalArgumentException if {@code column} is {@code null}
*/
boolean isColumnEnabled(Column column);
/**
* Returns the prototype value for the given column index. The prototype value is a possible
* representation of the values that might exist in the column. It's used to set an expected
* width for the column.
*
* @param columnIndex the column index that will be checked.
* @return the prototype value for the column
* @throws IllegalArgumentException if {@code columnIndex} is not valid (is negative, greater or
* equal than the number of columns).
*/
Object getPrototypeValue(int columnIndex);
/**
* Appends the given {@code entry} to the end of the entries.
*
* @param entry the entry that will be added
*/
void addEntry(T entry);
/**
* Notifies the table model listeners that the entry with the given {@code historyReferenceId}
* has changed.
*
* The call to this method has no effect if there is no entry with the given ID.
*
* @param historyReferenceId the {@code HistoryReference} ID of the entry that has changed
* @see javax.swing.event.TableModelListener
*/
void refreshEntryRow(int historyReferenceId);
/**
* Removes the entry with the given {@code historyReferenceId}.
*
*
The call to this method has no effect if there is no entry with the given ID.
*
* @param historyReferenceId the {@code HistoryReference} ID of the entry that will be removed
*/
void removeEntry(int historyReferenceId);
/**
* Returns the entry at the given {@code rowIndex}.
*
* @param rowIndex the row index of the entry
* @return the entry at the given row index
* @throws IllegalArgumentException if {@code rowIndex} is not valid (is negative, greater or
* equal than the number of rows).
*/
T getEntry(int rowIndex);
/**
* Returns the entry with the given {@code historyReferenceId}. If there is no entry with the
* given ID {@code null} is returned.
*
* @param historyReferenceId the {@code HistoryReference} ID of the entry that will be returned
* @return the entry with the given {@code HistoryReference} ID, or {@code null} if there is no
* entry with the given ID
*/
T getEntryWithHistoryId(int historyReferenceId);
/**
* Returns the row index of the entry with the given {@code historyReferenceId}. If there is no
* entry with the given ID {@literal -1} is returned.
*
* @param historyReferenceId the {@code HistoryReference} ID of the entry that will be searched
* @return the row index of the entry with the given {@code HistoryReference} ID, or {@literal
* -1} if there is no entry with the given ID
*/
int getEntryRowIndex(int historyReferenceId);
/** Removes all the entries. */
void clear();
}