001: /*
002: * $RCSfile: ByteOrderWrapper.java,v $
003: *
004: * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions
008: * are met:
009: *
010: * - Redistribution of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * - Redistribution in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in
015: * the documentation and/or other materials provided with the
016: * distribution.
017: *
018: * Neither the name of Sun Microsystems, Inc. or the names of
019: * contributors may be used to endorse or promote products derived
020: * from this software without specific prior written permission.
021: *
022: * This software is provided "AS IS," without a warranty of any
023: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
024: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
025: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
026: * EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL
027: * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF
028: * USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
029: * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR
030: * ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
031: * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
032: * REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
033: * INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
034: * POSSIBILITY OF SUCH DAMAGES.
035: *
036: * You acknowledge that this software is not designed, licensed or
037: * intended for use in the design, construction, operation or
038: * maintenance of any nuclear facility.
039: *
040: * $Revision: 1.4 $
041: * $Date: 2007/02/09 17:20:05 $
042: * $State: Exp $
043: */
044:
045: package com.sun.j3d.internal;
046:
047: import javax.media.j3d.J3DBuffer;
048: import java.nio.Buffer;
049: import java.nio.ByteOrder;
050:
051: /**
052: * NIO Buffers are new in Java 1.4 but we need to run on 1.3
053: * as well, so this class was created to hide the NIO classes
054: * from non-1.4 Java 3D users.
055: *
056: * <p>
057: * Typesafe enum for byte orders.
058: *
059: * <p>
060: * NOTE: We no longer need to support JDK 1.3 as of the Java 3D 1.3.2
061: * community source release on java.net. We should be able to get rid
062: * of this class.
063: */
064:
065: public final class ByteOrderWrapper {
066:
067: private final String enum_name;
068:
069: /**
070: * Private constructor is only called from static initializers
071: * in this class.
072: */
073: private ByteOrderWrapper(String name) {
074: enum_name = name;
075: }
076:
077: /**
078: * Static initializer creates object of this type.
079: */
080: public static final ByteOrderWrapper BIG_ENDIAN = new ByteOrderWrapper(
081: "BIG_ENDIAN");
082:
083: /**
084: * Static initializer creates object of this type.
085: */
086: public static final ByteOrderWrapper LITTLE_ENDIAN = new ByteOrderWrapper(
087: "LITTLE_ENDIAN");
088:
089: public String toString() {
090: return enum_name;
091: }
092:
093: /**
094: * Returns the native byte order of the host system.
095: */
096: public static ByteOrderWrapper nativeOrder() {
097: if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
098: return ByteOrderWrapper.BIG_ENDIAN;
099: } else
100: return ByteOrderWrapper.LITTLE_ENDIAN;
101: }
102: }
|