001/*
002 * This file is part of McIDAS-V
003 *
004 * Copyright 2007-2024
005 * Space Science and Engineering Center (SSEC)
006 * University of Wisconsin - Madison
007 * 1225 W. Dayton Street, Madison, WI 53706, USA
008 * https://www.ssec.wisc.edu/mcidas/
009 * 
010 * All Rights Reserved
011 * 
012 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and
013 * some McIDAS-V source code is based on IDV and VisAD source code.  
014 * 
015 * McIDAS-V is free software; you can redistribute it and/or modify
016 * it under the terms of the GNU Lesser Public License as published by
017 * the Free Software Foundation; either version 3 of the License, or
018 * (at your option) any later version.
019 * 
020 * McIDAS-V is distributed in the hope that it will be useful,
021 * but WITHOUT ANY WARRANTY; without even the implied warranty of
022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
023 * GNU Lesser Public License for more details.
024 * 
025 * You should have received a copy of the GNU Lesser Public License
026 * along with this program.  If not, see https://www.gnu.org/licenses/.
027 */
028
029package edu.wisc.ssec.mcidasv.data.hydra;
030
031public class HDFArray {
032
033   Class type;
034   int length;
035
036   public HDFArray(Class type) {
037    this.type = type;
038   }
039
040   public Object getArray() {
041     return null;
042   }
043
044   public Class getType() {
045     return type;
046   }
047
048   public static HDFArray make(float[] array) {
049     return new HDFFloatArray(array);
050   }
051
052   public static HDFArray make(double[] array) {
053     return new HDFDoubleArray(array);
054   }
055
056   public static HDFArray make(int[] array) {
057     return new HDFIntArray(array);
058   }
059
060   public static HDFArray make(short[] array) {
061     return new HDFShortArray(array);
062   }
063
064   public static HDFArray make(String[] array) {
065     return new HDFStringArray(array);
066   }
067}
068
069class HDFFloatArray extends HDFArray {
070  float[] float_array;
071  public HDFFloatArray(float[] fa) {
072    super(Float.TYPE);
073    float_array = fa;
074    length = fa.length;
075  }
076  public float[] getArray() {
077    return float_array;
078  }
079}
080
081class HDFDoubleArray extends HDFArray {
082  double[] double_array;
083  public HDFDoubleArray(double[] da) {
084    super(Double.TYPE);
085    double_array = da;
086    length = da.length;
087  }
088  public double[] getArray() {
089    return double_array;
090  }
091}
092
093class HDFShortArray extends HDFArray {
094  short[] short_array;
095  public HDFShortArray(short[] sa) {
096    super(Short.TYPE);
097    short_array = sa;
098    length = sa.length;
099  }
100  public short[] getArray() {
101    return short_array;
102  }
103}
104
105class HDFIntArray extends HDFArray {
106  int[] int_array;
107  public HDFIntArray(int[] ia) {
108    super(Integer.TYPE);
109    int_array = ia;
110    length = ia.length;
111  }
112  public int[] getArray() {
113    return int_array;
114  }
115}
116
117class HDFByteArray extends HDFArray {
118  byte[] byte_array;
119  public HDFByteArray(byte[] ba) {
120    super(Byte.TYPE);
121    byte_array = ba;
122    length = ba.length;
123  }
124  public byte[] getArray() {
125    return byte_array;
126  }
127}
128
129
130class HDFStringArray extends HDFArray {
131  String[] string_array;
132  public HDFStringArray(String[] sa) {
133    super(String.class);
134    string_array = sa;
135    length = sa.length;
136  }
137  public String[] getArray() {
138    return string_array;
139  }
140}