Package nom.tam.fits
Class HeaderCard
- java.lang.Object
-
- nom.tam.fits.HeaderCard
-
- All Implemented Interfaces:
CursorValue<java.lang.String>
public class HeaderCard extends java.lang.Object implements CursorValue<java.lang.String>
This class describes methods to access and manipulate the individual cards for a FITS Header.
-
-
Field Summary
Fields Modifier and Type Field Description static int
FITS_HEADER_CARD_SIZE
static int
MAX_KEYWORD_LENGTH
Maximum length of a FITS keyword fieldstatic int
MAX_LONG_STRING_CONTINUE_OVERHEAD
the start and end quotes of the string and the ampasant to continue the string.static int
MAX_LONG_STRING_VALUE_LENGTH
Maximum length of a FITS long string value field.static int
MAX_LONG_STRING_VALUE_WITH_COMMENT_LENGTH
if a commend needs the be specified 2 extra chars are needed to start the commentstatic int
MAX_STRING_VALUE_LENGTH
Maximum length of a FITS string value field.static int
MAX_VALUE_LENGTH
Maximum length of a FITS value field.
-
Constructor Summary
Constructors Constructor Description HeaderCard(java.lang.String key, boolean value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, double value, int precision, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, double value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, float value, int precision, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, float value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, int value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, long value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, java.lang.String comment, boolean nullable)
Create a comment style card.HeaderCard(java.lang.String key, java.lang.String value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, java.lang.String value, java.lang.String comment, boolean nullable)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, java.math.BigDecimal value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(java.lang.String key, java.math.BigInteger value, java.lang.String comment)
Create a HeaderCard from its component partsHeaderCard(HeaderCardCountingArrayDataInput dis)
HeaderCard(ArrayDataInput dis)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
cardSize()
HeaderCard
copy()
static HeaderCard
create(java.lang.String card)
java.lang.String
getComment()
java.lang.String
getKey()
java.lang.String
getValue()
<T> T
getValue(java.lang.Class<T> clazz, T defaultValue)
boolean
isKeyValuePair()
boolean
isStringValue()
protected static HeaderCard
saveNewHeaderCard(java.lang.String key, java.lang.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 exceptionvoid
setComment(java.lang.String comment)
set the comment of a card.HeaderCard
setValue(boolean update)
Set the value for this card.HeaderCard
setValue(double update)
Set the value for this card.HeaderCard
setValue(double update, int precision)
Set the value for this card.HeaderCard
setValue(float update)
Set the value for this card.HeaderCard
setValue(float update, int precision)
Set the value for this card.HeaderCard
setValue(int update)
Set the value for this card.HeaderCard
setValue(long update)
Set the value for this card.HeaderCard
setValue(java.lang.String update)
Set the value for this card.HeaderCard
setValue(java.math.BigDecimal update)
Set the value for this card.java.lang.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.protected java.lang.String
toString(FitsFactory.FitsSettings settings)
Same astoString()
just with a prefetched settings objectjava.lang.Class<?>
valueType()
-
-
-
Field Detail
-
FITS_HEADER_CARD_SIZE
public static final int FITS_HEADER_CARD_SIZE
- See Also:
- Constant Field Values
-
MAX_KEYWORD_LENGTH
public static final int MAX_KEYWORD_LENGTH
Maximum length of a FITS keyword field- See Also:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
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:
- Constant Field Values
-
MAX_STRING_VALUE_LENGTH
public static final int MAX_STRING_VALUE_LENGTH
Maximum length of a FITS string value field.- See Also:
- Constant Field Values
-
MAX_VALUE_LENGTH
public static final int MAX_VALUE_LENGTH
Maximum length of a FITS value field.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HeaderCard
public HeaderCard(ArrayDataInput dis) throws TruncatedFileException, java.io.IOException
- Throws:
TruncatedFileException
java.io.IOException
-
HeaderCard
public HeaderCard(HeaderCardCountingArrayDataInput dis) throws TruncatedFileException, java.io.IOException
- Throws:
TruncatedFileException
java.io.IOException
-
HeaderCard
public HeaderCard(java.lang.String key, java.math.BigDecimal value, java.lang.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(java.lang.String key, java.math.BigInteger value, java.lang.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(java.lang.String key, boolean value, java.lang.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(java.lang.String key, double value, int precision, java.lang.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(java.lang.String key, double value, java.lang.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(java.lang.String key, float value, int precision, java.lang.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(java.lang.String key, float value, java.lang.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(java.lang.String key, int value, java.lang.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(java.lang.String key, long value, java.lang.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(java.lang.String key, java.lang.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 commentnullable
- Is this a nullable field or a comment-style card?- Throws:
HeaderCardException
- for any invalid keyword or value
-
HeaderCard
public HeaderCard(java.lang.String key, java.lang.String value, java.lang.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(java.lang.String key, java.lang.String value, java.lang.String comment, boolean nullable) throws HeaderCardException
Create a HeaderCard from its component parts- Parameters:
key
- Keyword (null for a COMMENT)value
- Valuecomment
- Commentnullable
- Is this a nullable value card?- Throws:
HeaderCardException
- for any invalid keyword or value
-
-
Method Detail
-
create
public static HeaderCard create(java.lang.String card)
- Parameters:
card
- the 80 character card image- Returns:
- a created HeaderCard from a FITS card string.
-
saveNewHeaderCard
protected static HeaderCard saveNewHeaderCard(java.lang.String key, java.lang.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 cardcomment
- the comment for the cardisString
- 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 java.lang.String getComment()
- Returns:
- the comment from this card
-
getKey
public java.lang.String getKey()
- Specified by:
getKey
in interfaceCursorValue<java.lang.String>
- Returns:
- the keyword from this card
-
getValue
public java.lang.String getValue()
- Returns:
- the value from this card
-
getValue
public <T> T getValue(java.lang.Class<T> clazz, T defaultValue)
- Type Parameters:
T
- the type of the requested class- Parameters:
clazz
- the requested class of the valuedefaultValue
- 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(java.lang.String comment)
set the comment of a card.- Parameters:
comment
- the comment to set.
-
setValue
public HeaderCard setValue(java.math.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 setprecision
- 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 setprecision
- 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(java.lang.String update)
Set the value for this card.- Parameters:
update
- the new value to set- Returns:
- the HeaderCard itself
-
toString
public java.lang.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 classjava.lang.Object
-
toString
protected java.lang.String toString(FitsFactory.FitsSettings settings)
Same astoString()
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 java.lang.Class<?> valueType()
- Returns:
- the type of the value.
-
-