Package nom.tam.fits

Class HeaderCard

java.lang.Object
nom.tam.fits.HeaderCard
All Implemented Interfaces:
CursorValue<String>

public class HeaderCard extends Object implements CursorValue<String>
This class describes methods to access and manipulate the individual cards for a FITS Header.
  • Field Details

    • FITS_HEADER_CARD_SIZE

      public static final int FITS_HEADER_CARD_SIZE
      See Also:
    • MAX_KEYWORD_LENGTH

      public static final int MAX_KEYWORD_LENGTH
      Maximum length of a FITS keyword field
      See Also:
    • MAX_LONG_STRING_CONTINUE_OVERHEAD

      public static final int MAX_LONG_STRING_CONTINUE_OVERHEAD
      the start and end quotes of the string and the ampasant to continue the string.
      See Also:
    • MAX_LONG_STRING_VALUE_LENGTH

      public static final int MAX_LONG_STRING_VALUE_LENGTH
      Maximum length of a FITS long string value field. the & for the continuation needs one char.
      See Also:
    • MAX_LONG_STRING_VALUE_WITH_COMMENT_LENGTH

      public static final int MAX_LONG_STRING_VALUE_WITH_COMMENT_LENGTH
      if a commend needs the be specified 2 extra chars are needed to start the comment
      See Also:
    • MAX_STRING_VALUE_LENGTH

      public static final int MAX_STRING_VALUE_LENGTH
      Maximum length of a FITS string value field.
      See Also:
    • MAX_VALUE_LENGTH

      public static final int MAX_VALUE_LENGTH
      Maximum length of a FITS value field.
      See Also:
  • Constructor Details

    • HeaderCard

      public HeaderCard(ArrayDataInput dis) throws TruncatedFileException, IOException
      Throws:
      TruncatedFileException
      IOException
    • HeaderCard

      Throws:
      TruncatedFileException
      IOException
    • HeaderCard

      public HeaderCard(String key, BigDecimal value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, BigInteger value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, boolean value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, double value, int precision, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      precision - Number of decimal places (fixed format).
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, double value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, float value, int precision, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      precision - Number of decimal places (fixed format).
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, float value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, int value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, long value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword
    • HeaderCard

      public HeaderCard(String key, String comment, boolean nullable) throws HeaderCardException
      Create a comment style card. This constructor builds a card which has no value. This may be either a comment style card in which case the nullable field should be false, or a value field which has a null value, in which case the nullable field should be true.
      Parameters:
      key - The key for the comment or nullable field.
      comment - The comment
      nullable - Is this a nullable field or a comment-style card?
      Throws:
      HeaderCardException - for any invalid keyword or value
    • HeaderCard

      public HeaderCard(String key, String value, String comment) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - keyword (null for a comment)
      value - value (null for a comment or keyword without an '=')
      comment - comment
      Throws:
      HeaderCardException - for any invalid keyword or value
    • HeaderCard

      public HeaderCard(String key, String value, String comment, boolean nullable) throws HeaderCardException
      Create a HeaderCard from its component parts
      Parameters:
      key - Keyword (null for a COMMENT)
      value - Value
      comment - Comment
      nullable - Is this a nullable value card?
      Throws:
      HeaderCardException - for any invalid keyword or value
  • Method Details

    • create

      public static HeaderCard create(String card)
      Parameters:
      card - the 80 character card image
      Returns:
      a created HeaderCard from a FITS card string.
    • saveNewHeaderCard

      protected static HeaderCard saveNewHeaderCard(String key, String comment, boolean isString)
      This method is only used internally when it is sure that the creation of the card is granted not to throw an exception
      Parameters:
      key - the key for the card
      comment - the comment for the card
      isString - is this a string value card?
      Returns:
      the new HeaderCard
    • cardSize

      public int cardSize()
      Returns:
      the size of the card in blocks of 80 bytes. So normally every card will return 1. only long stings can return more than one.
    • copy

      public HeaderCard copy() throws HeaderCardException
      Throws:
      HeaderCardException
    • getComment

      public String getComment()
      Returns:
      the comment from this card
    • getKey

      public String getKey()
      Specified by:
      getKey in interface CursorValue<String>
      Returns:
      the keyword from this card
    • getValue

      public String getValue()
      Returns:
      the value from this card
    • getValue

      public <T> T getValue(Class<T> clazz, T defaultValue)
      Type Parameters:
      T - the type of the requested class
      Parameters:
      clazz - the requested class of the value
      defaultValue - the value if the card was not present.
      Returns:
      the value from this card as a specific type
    • isKeyValuePair

      public boolean isKeyValuePair()
      Returns:
      Is this a key/value card?
    • isStringValue

      public boolean isStringValue()
      Returns:
      if this card contain does a string value?
    • setComment

      public void setComment(String comment)
      set the comment of a card.
      Parameters:
      comment - the comment to set.
    • setValue

      public HeaderCard setValue(BigDecimal update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(boolean update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(double update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(double update, int precision)
      Set the value for this card.
      Parameters:
      update - the new value to set
      precision - the number of decimal places to show
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(float update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(float update, int precision)
      Set the value for this card.
      Parameters:
      update - the new value to set
      precision - the number of decimal places to show
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(int update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(long update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • setValue

      public HeaderCard setValue(String update)
      Set the value for this card.
      Parameters:
      update - the new value to set
      Returns:
      the HeaderCard itself
    • toString

      public String toString()
      Return the modulo 80 character card image, the toString tries to preserve as much as possible of the comment value by reducing the alignment of the Strings if the comment is longer and if longString is enabled the string can be split into one more card to have more space for the comment.
      Overrides:
      toString in class Object
    • toString

      protected String toString(FitsFactory.FitsSettings settings)
      Same as toString() just with a prefetched settings object
      Parameters:
      settings - the settings to use for writing the header card
      Returns:
      the string representing the card.
    • valueType

      public Class<?> valueType()
      Returns:
      the type of the value.