ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/tomcat/util/modeler/NotificationInfo.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/tomcat/util/modeler/NotificationInfo.java
Status
scanned
Type
file
Name
NotificationInfo.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
4760 (4.6 KB)
MD5
20723cf3c8e239758db158dea2ea9857
SHA1
1440d4d9d9c5887044c4ab6d8369b1e57cf3cdc1
SHA256
7e441a50a96cb8a7efaea5bb9162f59703b8f55027c839dc9c388917e524b345
SHA512

      
    
SHA1_git
3fa945d2acbb6b14f1ed1027e76c9b1afbc23f71
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
NotificationInfo.java | 4.6 KB |

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.apache.tomcat.util.modeler; import java.io.Serial; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import javax.management.MBeanNotificationInfo; /** * <p> * Internal configuration information for a <code>Notification</code> descriptor. * </p> */ public class NotificationInfo extends FeatureInfo { @Serial private static final long serialVersionUID = -6319885418912650856L; // ----------------------------------------------------- Instance Variables /** * The <code>ModelMBeanNotificationInfo</code> object that corresponds to this <code>NotificationInfo</code> * instance. */ transient MBeanNotificationInfo info = null; protected String[] notifTypes = new String[0]; protected final ReadWriteLock notifTypesLock = new ReentrantReadWriteLock(); // ------------------------------------------------------------- Properties /** * Override the <code>description</code> property setter. * * @param description The new description */ @Override public void setDescription(String description) { super.setDescription(description); this.info = null; } /** * Override the <code>name</code> property setter. * * @param name The new name */ @Override public void setName(String name) { super.setName(name); this.info = null; } /** * @return the array of notification types for this MBean. */ public String[] getNotifTypes() { Lock readLock = notifTypesLock.readLock(); readLock.lock(); try { return this.notifTypes; } finally { readLock.unlock(); } } // --------------------------------------------------------- Public Methods /** * Add a new notification type to the set managed by an MBean. * * @param notifType The new notification type */ public void addNotifType(String notifType) { Lock writeLock = notifTypesLock.writeLock(); writeLock.lock(); try { String[] results = new String[notifTypes.length + 1]; System.arraycopy(notifTypes, 0, results, 0, notifTypes.length); results[notifTypes.length] = notifType; notifTypes = results; this.info = null; } finally { writeLock.unlock(); } } /** * Create and return a <code>ModelMBeanNotificationInfo</code> object that corresponds to the attribute described by * this instance. * * @return the notification info */ public MBeanNotificationInfo createNotificationInfo() { // Return our cached information (if any) if (info != null) { return info; } // Create and return a new information object info = new MBeanNotificationInfo(getNotifTypes(), getName(), getDescription()); // Descriptor descriptor = info.getDescriptor(); // addFields(descriptor); // info.setDescriptor(descriptor); return info; } /** * Return a string representation of this notification descriptor. */ @Override public String toString() { StringBuilder sb = new StringBuilder("NotificationInfo["); sb.append("name="); sb.append(name); sb.append(", description="); sb.append(description); sb.append(", notifTypes="); Lock readLock = notifTypesLock.readLock(); readLock.lock(); try { sb.append(notifTypes.length); } finally { readLock.unlock(); } sb.append(']'); return sb.toString(); } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
27.05
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9