#
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# ##########################################################
# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
# ##########################################################
#
class name java/util/logging/ErrorManager
-method name error descriptor (Ljava/lang/String;Ljava/lang/Exception;I)V
method name error descriptor (Ljava/lang/String;Ljava/lang/Exception;I)V flags 1

class name java/util/logging/FileHandler
-method name publish descriptor (Ljava/util/logging/LogRecord;)V
-method name close descriptor ()V
method name publish descriptor (Ljava/util/logging/LogRecord;)V flags 1
method name close descriptor ()V thrownTypes java/lang/SecurityException flags 1

class name java/util/logging/Handler
-method name setFormatter descriptor (Ljava/util/logging/Formatter;)V
-method name setEncoding descriptor (Ljava/lang/String;)V
-method name setFilter descriptor (Ljava/util/logging/Filter;)V
-method name setErrorManager descriptor (Ljava/util/logging/ErrorManager;)V
-method name setLevel descriptor (Ljava/util/logging/Level;)V
method name setFormatter descriptor (Ljava/util/logging/Formatter;)V thrownTypes java/lang/SecurityException flags 1
method name setEncoding descriptor (Ljava/lang/String;)V thrownTypes java/lang/SecurityException,java/io/UnsupportedEncodingException flags 1
method name setFilter descriptor (Ljava/util/logging/Filter;)V thrownTypes java/lang/SecurityException flags 1
method name setErrorManager descriptor (Ljava/util/logging/ErrorManager;)V flags 1
method name setLevel descriptor (Ljava/util/logging/Level;)V thrownTypes java/lang/SecurityException flags 1

class name java/util/logging/MemoryHandler
-method name publish descriptor (Ljava/util/logging/LogRecord;)V
-method name push descriptor ()V
-method name setPushLevel descriptor (Ljava/util/logging/Level;)V
method name publish descriptor (Ljava/util/logging/LogRecord;)V flags 1
method name push descriptor ()V flags 1
method name setPushLevel descriptor (Ljava/util/logging/Level;)V thrownTypes java/lang/SecurityException flags 1

class name java/util/logging/SocketHandler
-method name close descriptor ()V
-method name publish descriptor (Ljava/util/logging/LogRecord;)V
method name close descriptor ()V thrownTypes java/lang/SecurityException flags 1
method name publish descriptor (Ljava/util/logging/LogRecord;)V flags 1

class name java/util/logging/StreamHandler
-method name setOutputStream descriptor (Ljava/io/OutputStream;)V
-method name setEncoding descriptor (Ljava/lang/String;)V
-method name publish descriptor (Ljava/util/logging/LogRecord;)V
-method name flush descriptor ()V
-method name close descriptor ()V
method name setOutputStream descriptor (Ljava/io/OutputStream;)V thrownTypes java/lang/SecurityException flags 4
method name setEncoding descriptor (Ljava/lang/String;)V thrownTypes java/lang/SecurityException,java/io/UnsupportedEncodingException flags 1
method name publish descriptor (Ljava/util/logging/LogRecord;)V flags 1
method name flush descriptor ()V flags 1
method name close descriptor ()V thrownTypes java/lang/SecurityException flags 1

