#
# Copyright (c) 2015, 2017, 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. ###
# ##########################################################
#
module name jdk.sctp
header exports com/sun/nio/sctp requires name\u0020;java.base\u0020;flags\u0020;8000 flags 8000

class name com/sun/nio/sctp/AbstractNotificationHandler
header extends java/lang/Object implements com/sun/nio/sctp/NotificationHandler flags 21 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/nio/sctp/NotificationHandler<TT;>;

class name com/sun/nio/sctp/Association
header extends java/lang/Object flags 21

class name com/sun/nio/sctp/AssociationChangeNotification
header extends java/lang/Object implements com/sun/nio/sctp/Notification flags 421
innerclass innerClass com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent outerClass com/sun/nio/sctp/AssociationChangeNotification innerClassName AssocChangeEvent flags 4019

class name com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent
header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent;>;
innerclass innerClass com/sun/nio/sctp/AssociationChangeNotification$AssocChangeEvent outerClass com/sun/nio/sctp/AssociationChangeNotification innerClassName AssocChangeEvent flags 4019

class name com/sun/nio/sctp/HandlerResult
header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/sctp/HandlerResult;>;

class name com/sun/nio/sctp/IllegalReceiveException
header extends java/lang/IllegalStateException flags 21

class name com/sun/nio/sctp/IllegalUnbindException
header extends java/lang/IllegalStateException flags 21

class name com/sun/nio/sctp/InvalidStreamException
header extends java/lang/IllegalArgumentException flags 21

class name com/sun/nio/sctp/MessageInfo
header extends java/lang/Object flags 421

class name com/sun/nio/sctp/Notification
header extends java/lang/Object flags 601

class name com/sun/nio/sctp/NotificationHandler
header extends java/lang/Object flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;

class name com/sun/nio/sctp/PeerAddressChangeNotification
header extends java/lang/Object implements com/sun/nio/sctp/Notification flags 421
innerclass innerClass com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent outerClass com/sun/nio/sctp/PeerAddressChangeNotification innerClassName AddressChangeEvent flags 4019

class name com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent
header extends java/lang/Enum flags 4031 signature Ljava/lang/Enum<Lcom/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent;>;
innerclass innerClass com/sun/nio/sctp/PeerAddressChangeNotification$AddressChangeEvent outerClass com/sun/nio/sctp/PeerAddressChangeNotification innerClassName AddressChangeEvent flags 4019

class name com/sun/nio/sctp/SctpChannel
header extends java/nio/channels/spi/AbstractSelectableChannel flags 421

class name com/sun/nio/sctp/SctpMultiChannel
header extends java/nio/channels/spi/AbstractSelectableChannel flags 421

class name com/sun/nio/sctp/SctpServerChannel
header extends java/nio/channels/spi/AbstractSelectableChannel flags 421

class name com/sun/nio/sctp/SctpSocketOption
header extends java/lang/Object implements java/net/SocketOption flags 601 signature <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/net/SocketOption<TT;>;

class name com/sun/nio/sctp/SctpStandardSocketOptions
header extends java/lang/Object flags 21
innerclass innerClass com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams outerClass com/sun/nio/sctp/SctpStandardSocketOptions innerClassName InitMaxStreams flags 9

class name com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams
header extends java/lang/Object flags 21
innerclass innerClass com/sun/nio/sctp/SctpStandardSocketOptions$InitMaxStreams outerClass com/sun/nio/sctp/SctpStandardSocketOptions innerClassName InitMaxStreams flags 9

class name com/sun/nio/sctp/SendFailedNotification
header extends java/lang/Object implements com/sun/nio/sctp/Notification flags 421

class name com/sun/nio/sctp/ShutdownNotification
header extends java/lang/Object implements com/sun/nio/sctp/Notification flags 421

