View Javadoc
1   package nom.tam.fits;
2   
3   import java.nio.Buffer;
4   
5   /*-
6    * #%L
7    * nom.tam FITS library
8    * %%
9    * Copyright (C) 1996 - 2024 nom-tam-fits
10   * %%
11   * This is free and unencumbered software released into the public domain.
12   *
13   * Anyone is free to copy, modify, publish, use, compile, sell, or
14   * distribute this software, either in source code form or as a compiled
15   * binary, for any purpose, commercial or non-commercial, and by any
16   * means.
17   *
18   * In jurisdictions that recognize copyright laws, the author or authors
19   * of this software dedicate any and all copyright interest in the
20   * software to the public domain. We make this dedication for the benefit
21   * of the public at large and to the detriment of our heirs and
22   * successors. We intend this dedication to be an overt act of
23   * relinquishment in perpetuity of all present and future rights to this
24   * software under copyright law.
25   *
26   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27   * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
29   * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
30   * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
31   * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
32   * OTHER DEALINGS IN THE SOFTWARE.
33   * #L%
34   */
35  
36  import nom.tam.fits.header.Bitpix;
37  import nom.tam.util.ArrayDataInput;
38  import nom.tam.util.ArrayDataOutput;
39  
40  import static nom.tam.fits.header.Standard.EXTEND;
41  import static nom.tam.fits.header.Standard.GCOUNT;
42  import static nom.tam.fits.header.Standard.PCOUNT;
43  
44  /**
45   * A subclass of <code>Data</code> containing no actual data. It wraps an underlying data of <code>null</code>.
46   *
47   * @author Attila Kovacs
48   *
49   * @since  1.18
50   * 
51   * @see    NullDataHDU
52   */
53  public final class NullData extends ImageData {
54  
55      @SuppressWarnings("deprecation")
56      @Override
57      protected void fillHeader(Header head) {
58          head.setSimple(true);
59          head.setBitpix(Bitpix.INTEGER);
60          head.setNaxes(0);
61  
62          // Just in case!
63          head.addValue(EXTEND, true);
64          head.addValue(GCOUNT, 1);
65          head.addValue(PCOUNT, 0);
66      }
67  
68      @Override
69      protected void loadData(ArrayDataInput in) {
70          return;
71      }
72  
73      @Override
74      protected Void getCurrentData() {
75          return null;
76      }
77  
78      @Override
79      protected long getTrueSize() {
80          return 0;
81      }
82  
83      @Override
84      public void read(ArrayDataInput in) {
85          setFileOffset(in);
86      }
87  
88      @Override
89      public void write(ArrayDataOutput o) {
90      }
91  
92      @Override
93      public void setBuffer(Buffer data) {
94          // Nothing to do.
95      }
96  
97  }