/* * This file is protected by Copyright. Please refer to the COPYRIGHT file * distributed with this source distribution. * * This file is part of REDHAWK core. * * REDHAWK core is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * REDHAWK core 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 Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package omnijni; import org.omg.CORBA.portable.OutputStream; import omnijni.impl.ArrayStreamConverter; import omnijni.impl.DefaultStreamConverter; import omnijni.impl.SunStreamConverter; public abstract class StreamConverter { private static StreamConverter impl = null; private static StreamConverter check_impl () { if (SunStreamConverter.test()) { return new SunStreamConverter(); } else if (ArrayStreamConverter.test()) { return new ArrayStreamConverter(); } else { return new DefaultStreamConverter(); } } private static synchronized StreamConverter get_impl () { if (impl == null) { impl = check_impl(); } return impl; } public static byte[] to_bytes (final OutputStream out) { return get_impl().toBytes(out); } public abstract byte[] toBytes (final OutputStream out); }