All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zaproxy.zap.view.table.HistoryReferencesTableModel Maven / Gradle / Ivy

Go to download

The Zed Attack Proxy (ZAP) is an easy to use integrated penetration testing tool for finding vulnerabilities in web applications. It is designed to be used by people with a wide range of security experience and as such is ideal for developers and functional testers who are new to penetration testing. ZAP provides automated scanners as well as a set of tools that allow you to find security vulnerabilities manually.

There is a newer version: 2.7.0
Show newest version
/*
 * 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(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy