/* * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.net; import java.io.IOException; class SocketSecrets { /* accessed by reflection from jdk.net.Sockets */ /* obj must be a Socket or ServerSocket */ private static void setOption(Object obj, SocketOption name, T value) throws IOException { SocketImpl impl; if (obj instanceof Socket) { impl = ((Socket)obj).getImpl(); } else if (obj instanceof ServerSocket) { impl = ((ServerSocket)obj).getImpl(); } else { throw new IllegalArgumentException(); } impl.setOption(name, value); } private static T getOption(Object obj, SocketOption name) throws IOException { SocketImpl impl; if (obj instanceof Socket) { impl = ((Socket)obj).getImpl(); } else if (obj instanceof ServerSocket) { impl = ((ServerSocket)obj).getImpl(); } else { throw new IllegalArgumentException(); } return impl.getOption(name); } private static void setOption(DatagramSocket s, SocketOption name, T value) throws IOException { s.getImpl().setOption(name, value); } private static T getOption(DatagramSocket s, SocketOption name) throws IOException { return s.getImpl().getOption(name); } }