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

org.zaproxy.zap.view.messagecontainer.MessageContainer 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.15.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.messagecontainer;

import java.awt.Component;
import org.zaproxy.zap.extension.httppanel.Message;

/**
 * Base interface for GUI components that contain {@code Message}s, for example, {@code JList},
 * {@code JTable} and {@code JTextArea}.
 *
 * 

Hides the implementation details and the GUI component used to show the messages, while * providing access to those messages and to some extent its state (for example, with {@code * SelectableMessagesContainer} to get the selected messages). * *

The containers can opt to expose only a snapshot of the container state, instead of giving * access to the current (always updated) state, depending on how they are accessed. For example, * when the container state is exposed to a pop up menu invocation (which is a short living action) * the container might return only the selection state at that point in time, so further queries to * the exposed selection state will, always, return the same values. * *

No assumptions should be made on the implementation types used to return the container state. * For example, if the {@code List}s are modifiable or not. * *

Note: No hard {@code Reference} should be kept to the messages containers * longer than needed to do the actual work as it would prevent the unloading of the classes (when * the corresponding add-ons are uninstalled). * * @param the type of message in this container * @see Message * @see MultipleMessagesContainer * @see SelectableMessagesContainer * @see SingleMessageContainer * @see java.lang.ref.Reference * @see java.lang.ref.SoftReference * @see java.lang.ref.WeakReference * @since 2.3.0 */ public interface MessageContainer { /** * Returns the {@code Class} of the container's message, for use as runtime type token. * * @return the {@code Class} of the container's message. */ Class getMessageClass(); /** * Returns the name of the message container. * *

The name should be unique among other containers since it will be used to uniquely * identify them. * * @return the name of the container, never {@code null}. */ String getName(); /** * Returns the GUI component of the message container. * *

Actual type of the component depends on the implementation, example component types: * {@code JList}, {@code JTable}, {@code JTextArea}, ... * * @return the GUI component of the container, never {@code null}. */ Component getComponent(); /** * Tells whether or not the message container is empty, that is, doesn't contain any message. * * @return {@code true} if the container is empty, {@code false} otherwise. */ boolean isEmpty(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy