java.lang.Object
dk.tbsalling.aismessages.ais.messages.AISMessage
- All Implemented Interfaces:
CachedDecodedValues,Serializable
- Direct Known Subclasses:
AddressedBinaryMessage,AddressedSafetyRelatedMessage,AidToNavigationReport,AssignedModeCommand,BaseStationReport,BinaryAcknowledge,BinaryBroadcastMessage,BinaryMessageMultipleSlot,BinaryMessageSingleSlot,ChannelManagement,ClassBCSStaticDataReport,DataLinkManagement,Error,ExtendedClassBEquipmentPositionReport,GNSSBinaryBroadcastMessage,GroupAssignmentCommand,Interrogation,LongRangeBroadcastMessage,PositionReport,SafetyRelatedAcknowledge,SafetyRelatedBroadcastMessage,ShipAndVoyageData,StandardClassBCSPositionReport,StandardSARAircraftPositionReport,UTCAndDateInquiry,UTCAndDateResponse
public abstract class AISMessage extends Object implements Serializable, CachedDecodedValues
The AISMessage class models a complete and self-contained AIS message.
If the AISMessage was created from received NMEA strings, then the original NMEA strings are cached, together with the decoded values of the message.
Lazy extraction of values.
- Author:
- tbsalling
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors Modifier Constructor Description protectedAISMessage()protectedAISMessage(dk.tbsalling.aismessages.nmea.messages.NMEAMessage[] nmeaMessages)protectedAISMessage(dk.tbsalling.aismessages.nmea.messages.NMEAMessage[] nmeaMessages, String bitString) -
Method Summary
Modifier and Type Method Description protected voidcheckAISMessage()This method performs a rudimentary sanity check of the AIS data payload contained in the NMEA sentence(s).static AISMessagecreate(Metadata metadata, dk.tbsalling.aismessages.nmea.tagblock.NMEATagBlock nmeaTagBlock, dk.tbsalling.aismessages.nmea.messages.NMEAMessage... nmeaMessages)Create proper type of AISMessage from 1..n NMEA messages, and attach metadata.static AISMessagecreate(dk.tbsalling.aismessages.nmea.messages.NMEAMessage... nmeaMessages)Create proper type of AISMessage from 1..n NMEA messages.Map<String,Object>dataFields()protected static StringdecodePayloadToBitString(dk.tbsalling.aismessages.nmea.messages.NMEAMessage... nmeaMessages)byte[]digest()Compute a SHA-1 message digest of this AISmessage.booleanequals(Object o)StringgetBits(int beginIndex, int endIndex)protected StringgetBitString()abstract AISMessageTypegetMessageType()MetadatagetMetadata()dk.tbsalling.aismessages.nmea.messages.NMEAMessage[]getNmeaMessages()dk.tbsalling.aismessages.nmea.tagblock.NMEATagBlockgetNmeaTagBlock()protected intgetNumberOfBits()IntegergetRepeatIndicator()MMSIgetSourceMmsi()protected StringgetZeroBitStuffedString(int endIndex)inthashCode()booleanisValid()voidsetMetadata(Metadata metadata)voidsetTagBlock(dk.tbsalling.aismessages.nmea.tagblock.NMEATagBlock nmeaTagBlock)StringtagBlockToString()StringtoString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface dk.tbsalling.aismessages.ais.messages.CachedDecodedValues
getDecodedValue, getDecodedValueByWeakReference
-
Field Details
-
VERSION
- See Also:
- Constant Field Values
-
-
Constructor Details
-
AISMessage
protected AISMessage() -
AISMessage
protected AISMessage(dk.tbsalling.aismessages.nmea.messages.NMEAMessage[] nmeaMessages) -
AISMessage
protected AISMessage(dk.tbsalling.aismessages.nmea.messages.NMEAMessage[] nmeaMessages, String bitString)
-
-
Method Details
-
digest
Compute a SHA-1 message digest of this AISmessage. Suitable for e.g. doublet discovery and filtering.- Returns:
- Message digest
- Throws:
NoSuchAlgorithmException- if SHA-1 algorithm is not accessible
-
dataFields
- Returns:
- a map of data field name and values.
-
checkAISMessage
protected void checkAISMessage()This method performs a rudimentary sanity check of the AIS data payload contained in the NMEA sentence(s). These tests are mainly based on bitwise message length, even though other types of tests may occur.- Throws:
dk.tbsalling.aismessages.nmea.exceptions.InvalidMessage- if the AIS payload of the NMEAmessage(s) is invalid.
-
getNmeaMessages
public dk.tbsalling.aismessages.nmea.messages.NMEAMessage[] getNmeaMessages() -
getMessageType
-
getMetadata
-
setMetadata
-
setTagBlock
public final void setTagBlock(dk.tbsalling.aismessages.nmea.tagblock.NMEATagBlock nmeaTagBlock) -
getNmeaTagBlock
public final dk.tbsalling.aismessages.nmea.tagblock.NMEATagBlock getNmeaTagBlock() -
getRepeatIndicator
-
getSourceMmsi
-
toString
-
tagBlockToString
-
getBitString
-
getZeroBitStuffedString
-
getBits
-
getNumberOfBits
protected int getNumberOfBits() -
decodePayloadToBitString
protected static String decodePayloadToBitString(dk.tbsalling.aismessages.nmea.messages.NMEAMessage... nmeaMessages) -
create
public static AISMessage create(Metadata metadata, dk.tbsalling.aismessages.nmea.tagblock.NMEATagBlock nmeaTagBlock, dk.tbsalling.aismessages.nmea.messages.NMEAMessage... nmeaMessages)Create proper type of AISMessage from 1..n NMEA messages, and attach metadata.- Parameters:
metadata- Meta datanmeaTagBlock- NMEA Tag BlocknmeaMessages- NMEA messages- Returns:
- AISMessage the AIS message
- Throws:
dk.tbsalling.aismessages.nmea.exceptions.InvalidMessage- if the AIS payload of the NMEAmessage(s) is invalid
-
create
public static AISMessage create(dk.tbsalling.aismessages.nmea.messages.NMEAMessage... nmeaMessages)Create proper type of AISMessage from 1..n NMEA messages.- Parameters:
nmeaMessages- NMEA messages- Returns:
- AISMessage the AIS message
- Throws:
dk.tbsalling.aismessages.nmea.exceptions.InvalidMessage- if the AIS payload of the NMEAmessage(s) is invalid
-
isValid
public boolean isValid() -
equals
-
hashCode
public int hashCode()
-