001/* 002 * ============================================================================ 003 * Copyright © 2002-2026 by Thomas Thrien. 004 * All Rights Reserved. 005 * ============================================================================ 006 * 007 * Licensed to the public under the agreements of the GNU Lesser General Public 008 * License, version 3.0 (the "License"). You may obtain a copy of the License at 009 * 010 * http://www.gnu.org/licenses/lgpl.html 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 014 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 015 * License for the specific language governing permissions and limitations 016 * under the License. 017 */ 018 019package org.tquadrat.foundation.perflog; 020 021import static org.apiguardian.api.API.Status.STABLE; 022 023import java.util.Optional; 024 025import org.apiguardian.api.API; 026import org.tquadrat.foundation.annotation.ClassVersion; 027import org.tquadrat.foundation.perflog.internal.PerformanceReportImpl; 028 029/** 030 * <p>{@summary The container for report data going to the 031 * {@link org.tquadrat.foundation.perflog.PerfLogMBean}.}</p> 032 * 033 * @extauthor Thomas Thrien - thomas.thrien@tquadrat.org 034 * @version $Id: PerformanceReport.java 1216 2026-05-02 11:16:24Z tquadrat $ 035 * @since 0.25.0 036 * 037 * @UMLGraph.link 038 */ 039@ClassVersion( sourceVersion = "$Id: PerformanceReport.java 1216 2026-05-02 11:16:24Z tquadrat $" ) 040@API( status = STABLE, since = "0.25.0" ) 041public sealed interface PerformanceReport 042 permits PerformanceReportImpl 043{ 044 /*-----------*\ 045 ====** Constants **======================================================== 046 \*-----------*/ 047 048 /*---------*\ 049 ====** Methods **========================================================== 050 \*---------*/ 051 /** 052 * Returns the optional cause that was issued with this report. 053 * 054 * @return An instance of 055 * {@link Optional} 056 * that holds the cause. 057 */ 058 public Optional<Throwable> getCause(); 059 060 /** 061 * Returns the optional message that was issued with this report. 062 * 063 * @return An instance of 064 * {@link Optional} 065 * that holds the message. 066 */ 067 public Optional<String> getMessage(); 068 069 /** 070 * Returns the performance section that is referred by this report. 071 * 072 * @return The performance section. 073 */ 074 public PerformanceSection getPerformanceSection(); 075 076 /** 077 * Returns the performance tracker that is issued by this report. 078 * 079 * @return The performance tracker. 080 */ 081 public PerformanceTracker getPerformanceTracker(); 082} 083// class PerformanceReport 084 085/* 086 * End of File 087 */