affyfusion-109/src/affymetrix/gcos/cdf/CDFProbeSetNames.java

Code
Comments
Other
Rev Date Author Line
11 13 Sep 07 nicklas 1 /////////////////////////////////////////////////////////////////
11 13 Sep 07 nicklas 2 //
11 13 Sep 07 nicklas 3 // Copyright (C) 2005 Affymetrix, Inc.
11 13 Sep 07 nicklas 4 //
11 13 Sep 07 nicklas 5 // This library is free software; you can redistribute it and/or modify
11 13 Sep 07 nicklas 6 // it under the terms of the GNU Lesser General Public License as published
11 13 Sep 07 nicklas 7 // by the Free Software Foundation; either version 2.1 of the License,
11 13 Sep 07 nicklas 8 // or (at your option) any later version.
11 13 Sep 07 nicklas 9 //
11 13 Sep 07 nicklas 10 // This library is distributed in the hope that it will be useful, but
11 13 Sep 07 nicklas 11 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 13 Sep 07 nicklas 12 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
11 13 Sep 07 nicklas 13 // for more details.
11 13 Sep 07 nicklas 14 //
11 13 Sep 07 nicklas 15 // You should have received a copy of the GNU Lesser General Public License
11 13 Sep 07 nicklas 16 // along with this library; if not, write to the Free Software Foundation, Inc.,
11 13 Sep 07 nicklas 17 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
11 13 Sep 07 nicklas 18 //
11 13 Sep 07 nicklas 19 /////////////////////////////////////////////////////////////////
11 13 Sep 07 nicklas 20
11 13 Sep 07 nicklas 21
11 13 Sep 07 nicklas 22 package affymetrix.gcos.cdf;
11 13 Sep 07 nicklas 23
11 13 Sep 07 nicklas 24 import affymetrix.gcos.*;
11 13 Sep 07 nicklas 25 import java.util.*;
11 13 Sep 07 nicklas 26 import java.io.*;
11 13 Sep 07 nicklas 27 import java.nio.channels.*;
11 13 Sep 07 nicklas 28 import java.nio.channels.FileChannel.*;
11 13 Sep 07 nicklas 29 import java.nio.*;
11 13 Sep 07 nicklas 30
11 13 Sep 07 nicklas 31 /** This class provides storage for the list of probe set names. */
11 13 Sep 07 nicklas 32 public class CDFProbeSetNames {
11 13 Sep 07 nicklas 33     
11 13 Sep 07 nicklas 34     /** The maximum storage length for a probe set name in the CDF file. */
11 13 Sep 07 nicklas 35     public static final int MAX_PROBE_SET_NAME_LENGTH = 64;
11 13 Sep 07 nicklas 36
11 13 Sep 07 nicklas 37     /** Array of probe set names, used if not memory mapping. */
11 13 Sep 07 nicklas 38     private Vector /*String*/ probeSetNames;
11 13 Sep 07 nicklas 39
11 13 Sep 07 nicklas 40     /** A mapped byte buffer for XDA files. */
11 13 Sep 07 nicklas 41     private MappedByteBuffer xdaBuffer;
11 13 Sep 07 nicklas 42     
11 13 Sep 07 nicklas 43     /** The offset from the map buffer to the probe set names. */
11 13 Sep 07 nicklas 44     private long offset;
11 13 Sep 07 nicklas 45     
11 13 Sep 07 nicklas 46     /** Gets the probe set name.
11 13 Sep 07 nicklas 47      * @param index The index to the probe set name of interest.
11 13 Sep 07 nicklas 48      * @return The name of the probe set.
11 13 Sep 07 nicklas 49      */
11 13 Sep 07 nicklas 50     public String getName(int index) {
11 13 Sep 07 nicklas 51         if (probeSetNames != null)
11 13 Sep 07 nicklas 52         {
11 13 Sep 07 nicklas 53             return (String) probeSetNames.elementAt(index);
11 13 Sep 07 nicklas 54         }
11 13 Sep 07 nicklas 55         else if (xdaBuffer != null)
11 13 Sep 07 nicklas 56         {
11 13 Sep 07 nicklas 57             String name = "";
11 13 Sep 07 nicklas 58             int nameOffset = index*MAX_PROBE_SET_NAME_LENGTH;
11 13 Sep 07 nicklas 59             return FileIO.MmGetFixedString_I(xdaBuffer, (int)(offset + nameOffset), MAX_PROBE_SET_NAME_LENGTH);
11 13 Sep 07 nicklas 60         }
11 13 Sep 07 nicklas 61         return null;
11 13 Sep 07 nicklas 62     }
11 13 Sep 07 nicklas 63     
11 13 Sep 07 nicklas 64     /** Sets the size of the vector.
11 13 Sep 07 nicklas 65      * @param size The size.
11 13 Sep 07 nicklas 66      */
11 13 Sep 07 nicklas 67     public void setSize(int size) {
11 13 Sep 07 nicklas 68         probeSetNames = new Vector();
11 13 Sep 07 nicklas 69         probeSetNames.setSize(size);
11 13 Sep 07 nicklas 70     }
11 13 Sep 07 nicklas 71     
11 13 Sep 07 nicklas 72     /** Sets the name of the probe set.
11 13 Sep 07 nicklas 73      * @param index The index to the probe set array/vector.
11 13 Sep 07 nicklas 74      * @param name The probe set name.
11 13 Sep 07 nicklas 75      */
11 13 Sep 07 nicklas 76     public void setName(int index, String name) {
11 13 Sep 07 nicklas 77         probeSetNames.set(index, name);
11 13 Sep 07 nicklas 78     }
11 13 Sep 07 nicklas 79     
11 13 Sep 07 nicklas 80     /** Sets the map and offset for memory mapping.
11 13 Sep 07 nicklas 81      * @param buf The buffer.
11 13 Sep 07 nicklas 82      * @param o The offset to the probe set names.
11 13 Sep 07 nicklas 83      */
11 13 Sep 07 nicklas 84     public void setMap(MappedByteBuffer buf, long o)
11 13 Sep 07 nicklas 85     {
11 13 Sep 07 nicklas 86         xdaBuffer = buf;
11 13 Sep 07 nicklas 87         offset = o;
11 13 Sep 07 nicklas 88     }
11 13 Sep 07 nicklas 89     
11 13 Sep 07 nicklas 90     /** Creates a new instance of CDFProbeSetNames */
11 13 Sep 07 nicklas 91     public CDFProbeSetNames() {
11 13 Sep 07 nicklas 92         xdaBuffer = null;
11 13 Sep 07 nicklas 93         offset = 0;
11 13 Sep 07 nicklas 94     }
11 13 Sep 07 nicklas 95     
11 13 Sep 07 nicklas 96 }