test_class.declarator: module
test_class.modifier: private
test_class.original_string: private WaveModule module;
test_class.type: WaveModule
test_class.var_name: module
test_class.file: jhove-modules/wave-hul/src/test/java/edu/harvard/hul/ois/jhove/module/WaveModuleTest.java
test_class.identifier: WaveModuleTest
test_case.body: @Test
  	public void testSample3() throws IOException {
  		File f = new File("src/test/resources/wave/sample3.wav");
  		RepInfo info = new RepInfo(f.getName());
  
  		// Parse
  		module.parse(new FileInputStream(f), info, 0);
  
  		// Check that JHOVE found this was NOT well formed:
  		assertEquals("Should not be well formed. ", info.getWellFormed(),
  				RepInfo.FALSE);
  
  		// Check that there is a message:
  		assertTrue("There should be at least one message. ", info.getMessage()
  				.size() > 0);
  
  		// Go though messages looking for the expected error:
  		boolean foundEofMessage = false;
  		for( Message m : info.getMessage()) {
  			// Use ID to be language independent
  			if ("WAVE-HUL-3".equals(m.getId())
  					&& m.getOffset() == 96) {
  				foundEofMessage = true;
  			}
  			System.out.println("MESSAGE: (" + m.getId() + ") " + m.getMessage() + " "
  					+ m.getSubMessage()
  					+ " @" + m.getOffset());
  		}
  		// Fail if the error was not found.
  		assertTrue("The message of id=WAVE-HUL-3 ('Unexpected end of file')@96 was not found. ",
  				foundEofMessage);
  	}
test_case.class_method_signature: WaveModuleTest.testSample3()
test_case.full_signature: @Test public void testSample3()
test_case.identifier: testSample3
test_case.invocations: getName parse assertEquals getWellFormed assertTrue size getMessage getMessage equals getId getOffset println getId getMessage getSubMessage getOffset assertTrue
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSample3()
focal_class.declarator: NAME = "WAVE-hul"
focal_class.modifier: private static final
focal_class.original_string: private static final String NAME = "WAVE-hul";
focal_class.type: String
focal_class.var_name: NAME
focal_class.declarator: RELEASE = "1.8.1"
focal_class.modifier: private static final
focal_class.original_string: private static final String RELEASE = "1.8.1";
focal_class.type: String
focal_class.var_name: RELEASE
focal_class.declarator: DATE = { 2019, 12, 10 }
focal_class.modifier: private static final
focal_class.original_string: private static final int [] DATE = { 2019, 12, 10 };
focal_class.type: int []
focal_class.var_name: DATE
focal_class.declarator: FORMATS = { "WAVE", "Audio for Windows",
              "EBU Technical Specification 3285", "Broadcast Wave Format", "BWF",
              "EBU Technical Specification 3306", "RF64" }
focal_class.modifier: private static final
focal_class.original_string: private static final String[] FORMATS = { "WAVE", "Audio for Windows",
              "EBU Technical Specification 3285", "Broadcast Wave Format", "BWF",
              "EBU Technical Specification 3306", "RF64" };
focal_class.type: String[]
focal_class.var_name: FORMATS
focal_class.declarator: COVERAGE = "WAVE (PCMWAVEFORMAT, WAVEFORMATEX, WAVEFORMATEXTENSIBLE); "
              + "Broadcast Wave Format (BWF) version 0, 1 and 2; RF64"
focal_class.modifier: private static final
focal_class.original_string: private static final String COVERAGE = "WAVE (PCMWAVEFORMAT, WAVEFORMATEX, WAVEFORMATEXTENSIBLE); "
              + "Broadcast Wave Format (BWF) version 0, 1 and 2; RF64";
focal_class.type: String
focal_class.var_name: COVERAGE
focal_class.declarator: MIMETYPES = { "audio/vnd.wave", "audio/wav",
              "audio/wave", "audio/x-wav", "audio/x-wave" }
focal_class.modifier: private static final
focal_class.original_string: private static final String[] MIMETYPES = { "audio/vnd.wave", "audio/wav",
              "audio/wave", "audio/x-wav", "audio/x-wave" };
focal_class.type: String[]
focal_class.var_name: MIMETYPES
focal_class.declarator: WELLFORMED = null
focal_class.modifier: private static final
focal_class.original_string: private static final String WELLFORMED = null;
focal_class.type: String
focal_class.var_name: WELLFORMED
focal_class.declarator: VALIDITY = null
focal_class.modifier: private static final
focal_class.original_string: private static final String VALIDITY = null;
focal_class.type: String
focal_class.var_name: VALIDITY
focal_class.declarator: REPINFO = null
focal_class.modifier: private static final
focal_class.original_string: private static final String REPINFO = null;
focal_class.type: String
focal_class.var_name: REPINFO
focal_class.declarator: NOTE = "There is no published standard for WAVE files. This module regards "
              + "a file as valid if it conforms to common usage practices."
focal_class.modifier: private static final
focal_class.original_string: private static final String NOTE = "There is no published standard for WAVE files. This module regards "
              + "a file as valid if it conforms to common usage practices.";
focal_class.type: String
focal_class.var_name: NOTE
focal_class.declarator: RIGHTS = "Copyright 2004-2007 by JSTOR and the "
              + "President and Fellows of Harvard College. "
              + "Released under the GNU Lesser General Public License."
focal_class.modifier: private static final
focal_class.original_string: private static final String RIGHTS = "Copyright 2004-2007 by JSTOR and the "
              + "President and Fellows of Harvard College. "
              + "Released under the GNU Lesser General Public License.";
focal_class.type: String
focal_class.var_name: RIGHTS
focal_class.declarator: RIFF_SIGNATURE = "RIFF"
focal_class.modifier: private static final
focal_class.original_string: private static final String RIFF_SIGNATURE = "RIFF";
focal_class.type: String
focal_class.var_name: RIFF_SIGNATURE
focal_class.declarator: RF64_SIGNATURE = "RF64"
focal_class.modifier: private static final
focal_class.original_string: private static final String RF64_SIGNATURE = "RF64";
focal_class.type: String
focal_class.var_name: RF64_SIGNATURE
focal_class.declarator: RIFF_FORM_TYPE_LENGTH = 4
focal_class.modifier: private static final
focal_class.original_string: private static final int RIFF_FORM_TYPE_LENGTH = 4;
focal_class.type: int
focal_class.var_name: RIFF_FORM_TYPE_LENGTH
focal_class.declarator: LOOKUP_EXTENDED_DATA_SIZE = 0xFFFFFFFFL
focal_class.modifier: public static final
focal_class.original_string: public static final long LOOKUP_EXTENDED_DATA_SIZE = 0xFFFFFFFFL;
focal_class.type: long
focal_class.var_name: LOOKUP_EXTENDED_DATA_SIZE
focal_class.declarator: extendedChunkSizes
focal_class.modifier: protected
focal_class.original_string: protected Map<String, Long> extendedChunkSizes;
focal_class.type: Map<String, Long>
focal_class.var_name: extendedChunkSizes
focal_class.declarator: _metadata
focal_class.modifier: protected
focal_class.original_string: protected Property _metadata;
focal_class.type: Property
focal_class.var_name: _metadata
focal_class.declarator: _propList
focal_class.modifier: protected
focal_class.original_string: protected List<Property> _propList;
focal_class.type: List<Property>
focal_class.var_name: _propList
focal_class.declarator: _notes
focal_class.modifier: protected
focal_class.original_string: protected List<Property> _notes;
focal_class.type: List<Property>
focal_class.var_name: _notes
focal_class.declarator: _labels
focal_class.modifier: protected
focal_class.original_string: protected List<Property> _labels;
focal_class.type: List<Property>
focal_class.var_name: _labels
focal_class.declarator: _labeledText
focal_class.modifier: protected
focal_class.original_string: protected List<Property> _labeledText;
focal_class.type: List<Property>
focal_class.var_name: _labeledText
focal_class.declarator: _samples
focal_class.modifier: protected
focal_class.original_string: protected List<Property> _samples;
focal_class.type: List<Property>
focal_class.var_name: _samples
focal_class.declarator: _aesMetadata
focal_class.modifier: protected
focal_class.original_string: protected AESAudioMetadata _aesMetadata;
focal_class.type: AESAudioMetadata
focal_class.var_name: _aesMetadata
focal_class.declarator: riffSize
focal_class.modifier: protected
focal_class.original_string: protected long riffSize;
focal_class.type: long
focal_class.var_name: riffSize
focal_class.declarator: _blockAlign
focal_class.modifier: protected
focal_class.original_string: protected int _blockAlign;
focal_class.type: int
focal_class.var_name: _blockAlign
focal_class.declarator: _exifInfo
focal_class.modifier: protected
focal_class.original_string: protected ExifInfo _exifInfo;
focal_class.type: ExifInfo
focal_class.var_name: _exifInfo
focal_class.declarator: waveCodec
focal_class.modifier: protected
focal_class.original_string: protected int waveCodec;
focal_class.type: int
focal_class.var_name: waveCodec
focal_class.declarator: extendedRiffSize
focal_class.modifier: protected
focal_class.original_string: protected long extendedRiffSize;
focal_class.type: long
focal_class.var_name: extendedRiffSize
focal_class.declarator: extendedSampleLength
focal_class.modifier: protected
focal_class.original_string: protected long extendedSampleLength;
focal_class.type: long
focal_class.var_name: extendedSampleLength
focal_class.declarator: sampleCount
focal_class.modifier: protected
focal_class.original_string: protected long sampleCount;
focal_class.type: long
focal_class.var_name: sampleCount
focal_class.declarator: sampleRate
focal_class.modifier: protected
focal_class.original_string: protected long sampleRate;
focal_class.type: long
focal_class.var_name: sampleRate
focal_class.declarator: formatChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean formatChunkSeen;
focal_class.type: boolean
focal_class.var_name: formatChunkSeen
focal_class.declarator: factChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean factChunkSeen;
focal_class.type: boolean
focal_class.var_name: factChunkSeen
focal_class.declarator: dataChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean dataChunkSeen;
focal_class.type: boolean
focal_class.var_name: dataChunkSeen
focal_class.declarator: dataSize64ChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean dataSize64ChunkSeen;
focal_class.type: boolean
focal_class.var_name: dataSize64ChunkSeen
focal_class.declarator: instrumentChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean instrumentChunkSeen;
focal_class.type: boolean
focal_class.var_name: instrumentChunkSeen
focal_class.declarator: mpegChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean mpegChunkSeen;
focal_class.type: boolean
focal_class.var_name: mpegChunkSeen
focal_class.declarator: cartChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean cartChunkSeen;
focal_class.type: boolean
focal_class.var_name: cartChunkSeen
focal_class.declarator: broadcastExtChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean broadcastExtChunkSeen;
focal_class.type: boolean
focal_class.var_name: broadcastExtChunkSeen
focal_class.declarator: peakChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean peakChunkSeen;
focal_class.type: boolean
focal_class.var_name: peakChunkSeen
focal_class.declarator: linkChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean linkChunkSeen;
focal_class.type: boolean
focal_class.var_name: linkChunkSeen
focal_class.declarator: cueChunkSeen
focal_class.modifier: protected
focal_class.original_string: protected boolean cueChunkSeen;
focal_class.type: boolean
focal_class.var_name: cueChunkSeen
focal_class.declarator: flagPCMWaveFormat
focal_class.modifier: protected
focal_class.original_string: protected boolean flagPCMWaveFormat;
focal_class.type: boolean
focal_class.var_name: flagPCMWaveFormat
focal_class.declarator: flagWaveFormatEx
focal_class.modifier: protected
focal_class.original_string: protected boolean flagWaveFormatEx;
focal_class.type: boolean
focal_class.var_name: flagWaveFormatEx
focal_class.declarator: flagWaveFormatExtensible
focal_class.modifier: protected
focal_class.original_string: protected boolean flagWaveFormatExtensible;
focal_class.type: boolean
focal_class.var_name: flagWaveFormatExtensible
focal_class.declarator: flagRF64
focal_class.modifier: protected
focal_class.original_string: protected boolean flagRF64;
focal_class.type: boolean
focal_class.var_name: flagRF64
focal_class.declarator: firstSampleOffsetMarked
focal_class.modifier: protected
focal_class.original_string: protected boolean firstSampleOffsetMarked;
focal_class.type: boolean
focal_class.var_name: firstSampleOffsetMarked
focal_class.file: jhove-modules/wave-hul/src/main/java/edu/harvard/hul/ois/jhove/module/WaveModule.java
focal_class.identifier: WaveModule
focal_class.class_method_signature: WaveModule.WaveModule()
focal_class.full_signature: public  WaveModule()
focal_class.identifier: WaveModule
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  WaveModule()
focal_class.class_method_signature: WaveModule.parse(InputStream stream, RepInfo info, int parseIndex)
focal_class.full_signature: @Override public int parse(InputStream stream, RepInfo info, int parseIndex)
focal_class.identifier: parse
focal_class.modifiers: @Override public
focal_class.parameters: (InputStream stream, RepInfo info, int parseIndex)
focal_class.return: int
focal_class.signature: int parse(InputStream stream, RepInfo info, int parseIndex)
focal_class.class_method_signature: WaveModule.markFirstSampleOffset()
focal_class.full_signature: public void markFirstSampleOffset()
focal_class.identifier: markFirstSampleOffset
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void markFirstSampleOffset()
focal_class.class_method_signature: WaveModule.setExifInfo(ExifInfo exifInfo)
focal_class.full_signature: public void setExifInfo(ExifInfo exifInfo)
focal_class.identifier: setExifInfo
focal_class.modifiers: public
focal_class.parameters: (ExifInfo exifInfo)
focal_class.return: void
focal_class.signature: void setExifInfo(ExifInfo exifInfo)
focal_class.class_method_signature: WaveModule.setBlockAlign(int align)
focal_class.full_signature: public void setBlockAlign(int align)
focal_class.identifier: setBlockAlign
focal_class.modifiers: public
focal_class.parameters: (int align)
focal_class.return: void
focal_class.signature: void setBlockAlign(int align)
focal_class.class_method_signature: WaveModule.getExifInfo()
focal_class.full_signature: public ExifInfo getExifInfo()
focal_class.identifier: getExifInfo
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ExifInfo
focal_class.signature: ExifInfo getExifInfo()
focal_class.class_method_signature: WaveModule.getWaveCodec()
focal_class.full_signature: public int getWaveCodec()
focal_class.identifier: getWaveCodec
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getWaveCodec()
focal_class.class_method_signature: WaveModule.getBlockAlign()
focal_class.full_signature: public int getBlockAlign()
focal_class.identifier: getBlockAlign
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getBlockAlign()
focal_class.class_method_signature: WaveModule.addWaveProperty(Property prop)
focal_class.full_signature: public void addWaveProperty(Property prop)
focal_class.identifier: addWaveProperty
focal_class.modifiers: public
focal_class.parameters: (Property prop)
focal_class.return: void
focal_class.signature: void addWaveProperty(Property prop)
focal_class.class_method_signature: WaveModule.addLabel(Property p)
focal_class.full_signature: public void addLabel(Property p)
focal_class.identifier: addLabel
focal_class.modifiers: public
focal_class.parameters: (Property p)
focal_class.return: void
focal_class.signature: void addLabel(Property p)
focal_class.class_method_signature: WaveModule.addLabeledText(Property p)
focal_class.full_signature: public void addLabeledText(Property p)
focal_class.identifier: addLabeledText
focal_class.modifiers: public
focal_class.parameters: (Property p)
focal_class.return: void
focal_class.signature: void addLabeledText(Property p)
focal_class.class_method_signature: WaveModule.addSample(Property p)
focal_class.full_signature: public void addSample(Property p)
focal_class.identifier: addSample
focal_class.modifiers: public
focal_class.parameters: (Property p)
focal_class.return: void
focal_class.signature: void addSample(Property p)
focal_class.class_method_signature: WaveModule.addNote(Property p)
focal_class.full_signature: public void addNote(Property p)
focal_class.identifier: addNote
focal_class.modifiers: public
focal_class.parameters: (Property p)
focal_class.return: void
focal_class.signature: void addNote(Property p)
focal_class.class_method_signature: WaveModule.addListInfo(List l)
focal_class.full_signature: public void addListInfo(List l)
focal_class.identifier: addListInfo
focal_class.modifiers: public
focal_class.parameters: (List l)
focal_class.return: void
focal_class.signature: void addListInfo(List l)
focal_class.class_method_signature: WaveModule.readSignedLong(DataInputStream stream)
focal_class.full_signature: public long readSignedLong(DataInputStream stream)
focal_class.identifier: readSignedLong
focal_class.modifiers: public
focal_class.parameters: (DataInputStream stream)
focal_class.return: long
focal_class.signature: long readSignedLong(DataInputStream stream)
focal_class.class_method_signature: WaveModule.readUnsignedInt(DataInputStream stream)
focal_class.full_signature: public long readUnsignedInt(DataInputStream stream)
focal_class.identifier: readUnsignedInt
focal_class.modifiers: public
focal_class.parameters: (DataInputStream stream)
focal_class.return: long
focal_class.signature: long readUnsignedInt(DataInputStream stream)
focal_class.class_method_signature: WaveModule.readSignedInt(DataInputStream stream)
focal_class.full_signature: public int readSignedInt(DataInputStream stream)
focal_class.identifier: readSignedInt
focal_class.modifiers: public
focal_class.parameters: (DataInputStream stream)
focal_class.return: int
focal_class.signature: int readSignedInt(DataInputStream stream)
focal_class.class_method_signature: WaveModule.readUnsignedShort(DataInputStream stream)
focal_class.full_signature: public int readUnsignedShort(DataInputStream stream)
focal_class.identifier: readUnsignedShort
focal_class.modifiers: public
focal_class.parameters: (DataInputStream stream)
focal_class.return: int
focal_class.signature: int readUnsignedShort(DataInputStream stream)
focal_class.class_method_signature: WaveModule.readSignedShort(DataInputStream stream)
focal_class.full_signature: public int readSignedShort(DataInputStream stream)
focal_class.identifier: readSignedShort
focal_class.modifiers: public
focal_class.parameters: (DataInputStream stream)
focal_class.return: int
focal_class.signature: int readSignedShort(DataInputStream stream)
focal_class.class_method_signature: WaveModule.read4Chars(DataInputStream stream)
focal_class.full_signature: public String read4Chars(DataInputStream stream)
focal_class.identifier: read4Chars
focal_class.modifiers: public
focal_class.parameters: (DataInputStream stream)
focal_class.return: String
focal_class.signature: String read4Chars(DataInputStream stream)
focal_class.class_method_signature: WaveModule.setWaveCodec(int value)
focal_class.full_signature: public void setWaveCodec(int value)
focal_class.identifier: setWaveCodec
focal_class.modifiers: public
focal_class.parameters: (int value)
focal_class.return: void
focal_class.signature: void setWaveCodec(int value)
focal_class.class_method_signature: WaveModule.addSamples(long samples)
focal_class.full_signature: public void addSamples(long samples)
focal_class.identifier: addSamples
focal_class.modifiers: public
focal_class.parameters: (long samples)
focal_class.return: void
focal_class.signature: void addSamples(long samples)
focal_class.class_method_signature: WaveModule.setSampleRate(long rate)
focal_class.full_signature: public void setSampleRate(long rate)
focal_class.identifier: setSampleRate
focal_class.modifiers: public
focal_class.parameters: (long rate)
focal_class.return: void
focal_class.signature: void setSampleRate(long rate)
focal_class.class_method_signature: WaveModule.setPCMWaveFormat(boolean b)
focal_class.full_signature: public void setPCMWaveFormat(boolean b)
focal_class.identifier: setPCMWaveFormat
focal_class.modifiers: public
focal_class.parameters: (boolean b)
focal_class.return: void
focal_class.signature: void setPCMWaveFormat(boolean b)
focal_class.class_method_signature: WaveModule.setWaveFormatEx(boolean b)
focal_class.full_signature: public void setWaveFormatEx(boolean b)
focal_class.identifier: setWaveFormatEx
focal_class.modifiers: public
focal_class.parameters: (boolean b)
focal_class.return: void
focal_class.signature: void setWaveFormatEx(boolean b)
focal_class.class_method_signature: WaveModule.setWaveFormatExtensible(boolean b)
focal_class.full_signature: public void setWaveFormatExtensible(boolean b)
focal_class.identifier: setWaveFormatExtensible
focal_class.modifiers: public
focal_class.parameters: (boolean b)
focal_class.return: void
focal_class.signature: void setWaveFormatExtensible(boolean b)
focal_class.class_method_signature: WaveModule.initParse()
focal_class.full_signature: @Override protected void initParse()
focal_class.identifier: initParse
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void initParse()
focal_class.class_method_signature: WaveModule.readChunk(RepInfo info)
focal_class.full_signature: protected boolean readChunk(RepInfo info)
focal_class.identifier: readChunk
focal_class.modifiers: protected
focal_class.parameters: (RepInfo info)
focal_class.return: boolean
focal_class.signature: boolean readChunk(RepInfo info)
focal_class.class_method_signature: WaveModule.remainingDataInfo(DataInputStream stream, RepInfo info,
  								   long bytesToProcess, String chunkId)
focal_class.full_signature: private void remainingDataInfo(DataInputStream stream, RepInfo info,
  								   long bytesToProcess, String chunkId)
focal_class.identifier: remainingDataInfo
focal_class.modifiers: private
focal_class.parameters: (DataInputStream stream, RepInfo info,
  								   long bytesToProcess, String chunkId)
focal_class.return: void
focal_class.signature: void remainingDataInfo(DataInputStream stream, RepInfo info,
  								   long bytesToProcess, String chunkId)
focal_class.class_method_signature: WaveModule.getBytesRemaining()
focal_class.full_signature: private long getBytesRemaining()
focal_class.identifier: getBytesRemaining
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getBytesRemaining()
focal_class.class_method_signature: WaveModule.getAESMetadata()
focal_class.full_signature: public AESAudioMetadata getAESMetadata()
focal_class.identifier: getAESMetadata
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AESAudioMetadata
focal_class.signature: AESAudioMetadata getAESMetadata()
focal_class.class_method_signature: WaveModule.dupChunkError(RepInfo info, String chunkName)
focal_class.full_signature: protected void dupChunkError(RepInfo info, String chunkName)
focal_class.identifier: dupChunkError
focal_class.modifiers: protected
focal_class.parameters: (RepInfo info, String chunkName)
focal_class.return: void
focal_class.signature: void dupChunkError(RepInfo info, String chunkName)
focal_class.class_method_signature: WaveModule.buildBitmaskProperty(int val, String name,
  			String[] oneValueNames, String[] zeroValueNames)
focal_class.full_signature: public Property buildBitmaskProperty(int val, String name,
  			String[] oneValueNames, String[] zeroValueNames)
focal_class.identifier: buildBitmaskProperty
focal_class.modifiers: public
focal_class.parameters: (int val, String name,
  			String[] oneValueNames, String[] zeroValueNames)
focal_class.return: Property
focal_class.signature: Property buildBitmaskProperty(int val, String name,
  			String[] oneValueNames, String[] zeroValueNames)
focal_class.class_method_signature: WaveModule.hasExtendedDataSizes()
focal_class.full_signature: public boolean hasExtendedDataSizes()
focal_class.identifier: hasExtendedDataSizes
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasExtendedDataSizes()
focal_class.class_method_signature: WaveModule.setExtendedRiffSize(long size)
focal_class.full_signature: public void setExtendedRiffSize(long size)
focal_class.identifier: setExtendedRiffSize
focal_class.modifiers: public
focal_class.parameters: (long size)
focal_class.return: void
focal_class.signature: void setExtendedRiffSize(long size)
focal_class.class_method_signature: WaveModule.setExtendedSampleLength(long length)
focal_class.full_signature: public void setExtendedSampleLength(long length)
focal_class.identifier: setExtendedSampleLength
focal_class.modifiers: public
focal_class.parameters: (long length)
focal_class.return: void
focal_class.signature: void setExtendedSampleLength(long length)
focal_class.class_method_signature: WaveModule.getExtendedSampleLength()
focal_class.full_signature: public long getExtendedSampleLength()
focal_class.identifier: getExtendedSampleLength
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getExtendedSampleLength()
focal_class.class_method_signature: WaveModule.addExtendedChunkSize(String chunkId, Long chunkSize)
focal_class.full_signature: public void addExtendedChunkSize(String chunkId, Long chunkSize)
focal_class.identifier: addExtendedChunkSize
focal_class.modifiers: public
focal_class.parameters: (String chunkId, Long chunkSize)
focal_class.return: void
focal_class.signature: void addExtendedChunkSize(String chunkId, Long chunkSize)
focal_class.superclass: extends ModuleBase
focal_method.body: @Override
  	public int parse(InputStream stream, RepInfo info, int parseIndex) {
  		initParse();
  		info.setModule(this);
  
  		_aesMetadata.setPrimaryIdentifier(info.getUri());
  		if (info.getURLFlag()) {
  			_aesMetadata.setOtherPrimaryIdentifierType("URI");
  		} else {
  			_aesMetadata.setPrimaryIdentifierType(AESAudioMetadata.FILE_NAME);
  		}
  
  		// We may have already done the checksums
  		// while converting a temporary file.
  		setupDataStream(stream, info);
  
  		try {
  			// Check the start of the file for the right opening bytes
  			String firstFourChars = read4Chars(_dstream);
  			if (firstFourChars.equals(RF64_SIGNATURE)) {
  				info.setProfile("RF64");
  				flagRF64 = true;
  			} else if (!firstFourChars.equals(RIFF_SIGNATURE)) {
  				info.setMessage(
  						new ErrorMessage(MessageConstants.WAVE_HUL_1, 0));
  				info.setWellFormed(false);
  				return 0;
  			}
  
  			// Get the length of the Form chunk. This includes all
  			// subsequent form fields and form subchunks, but excludes
  			// the form chunk's header (its ID and the its length).
  			riffSize = readUnsignedInt(_dstream);
  
  			// Read the RIFF form type
  			String formType = read4Chars(_dstream);
  			if (!"WAVE".equals(formType)) {
  				info.setMessage(new ErrorMessage(
  						MessageConstants.WAVE_HUL_2,
  						_nByte - RIFF_FORM_TYPE_LENGTH));
  				info.setWellFormed(false);
  				return 0;
  			}
  
  			// If we get this far, the signature is OK.
  			info.setSigMatch(_name);
  			info.setFormat(_format[0]);
  			info.setMimeType(_mimeType[0]);
  
  			if (flagRF64) {
  				// For RF64 files the first chunk should be a Data Size 64 chunk
  				// containing the extended data sizes for a number of elements.
  				if (readChunk(info) && dataSize64ChunkSeen) {
  					if (riffSize == LOOKUP_EXTENDED_DATA_SIZE) {
  						// Even though RF64 can support files larger than
  						// Long.MAX_VALUE, this module currently does not.
  						if (Long.compareUnsigned(extendedRiffSize,
  								Long.MAX_VALUE) > 0) {
  							info.setMessage(new InfoMessage(
  									MessageConstants.WAVE_HUL_22));
  							info.setWellFormed(RepInfo.UNDETERMINED);
  							return 0;
  						}
  					}
  				} else {
  					info.setMessage(new ErrorMessage(
  							MessageConstants.WAVE_HUL_23,
  							Chunk.HEADER_LENGTH + RIFF_FORM_TYPE_LENGTH));
  					info.setWellFormed(false);
  					return 0;
  				}
  			}
  
  			while (getBytesRemaining() > 0) {
  				if (!readChunk(info)) {
  					break;
  				}
  			}
  
  			if (getBytesRemaining() > 0) {
  				// The file has been truncated or there
  				// remains unexpected chunk data to skip
  				remainingDataInfo(_dstream, info, getBytesRemaining(),
  						firstFourChars);
  			}
  
  		} catch (EOFException eofe) {
  			info.setWellFormed(false);
  			String subMessage = String.format(
  					MessageConstants.WAVE_HUL_3_SUB.getMessage(),
  					getBytesRemaining());
  			if (eofe.getMessage() != null) {
  				subMessage += "; " + eofe.getMessage();
  			}
  			info.setMessage(new ErrorMessage(MessageConstants.WAVE_HUL_3,
  					subMessage, _nByte));
  		} catch (Exception e) { // TODO make this more specific
  			e.printStackTrace();
  			info.setWellFormed(false);
  			JhoveMessage message = JhoveMessages.getMessageInstance(
  					MessageConstants.WAVE_HUL_4.getId(),
  					String.format(MessageConstants.WAVE_HUL_4.getMessage(),
  							e.getClass().getName() + ", " + e.getMessage()));
  			info.setMessage(new ErrorMessage(message, _nByte));
  			return 0;
  		}
  
  		// Set duration from number of samples and rate.
  		if (sampleCount > 0) {
  			_aesMetadata.setDuration(sampleCount);
  		}
  
  		// Add note and label properties, if there's anything to report.
  		if (!_labels.isEmpty()) {
  			_propList.add(new Property("Labels", PropertyType.PROPERTY,
  					PropertyArity.LIST, _labels));
  		}
  		if (!_labeledText.isEmpty()) {
  			_propList.add(new Property("LabeledText", PropertyType.PROPERTY,
  					PropertyArity.LIST, _labeledText));
  		}
  		if (!_notes.isEmpty()) {
  			_propList.add(new Property("Notes", PropertyType.PROPERTY,
  					PropertyArity.LIST, _notes));
  		}
  		if (!_samples.isEmpty()) {
  			_propList.add(new Property("Samples", PropertyType.PROPERTY,
  					PropertyArity.LIST, _samples));
  		}
  		if (_exifInfo != null) {
  			_propList.add(_exifInfo.buildProperty());
  		}
  
  		if (!formatChunkSeen) {
  			info.setMessage(new ErrorMessage(MessageConstants.WAVE_HUL_5));
  			info.setWellFormed(false);
  			return 0;
  		}
  		if (!dataChunkSeen) {
  			info.setMessage(new ErrorMessage(MessageConstants.WAVE_HUL_24));
  			info.setWellFormed(false);
  			return 0;
  		}
  
  		// This file looks OK.
  		if (_ckSummer != null) {
  			skipDstreamToEnd(info);
  			// Set the checksums in the report if they're calculated
  			setChecksums(this._ckSummer, info);
  		}
  
  		info.setProperty(_metadata);
  
  		// Indicate satisfied profiles.
  		if (flagPCMWaveFormat) {
  			info.setProfile("PCMWAVEFORMAT");
  		}
  		if (flagWaveFormatEx) {
  			info.setProfile("WAVEFORMATEX");
  		}
  		if (flagWaveFormatExtensible) {
  			info.setProfile("WAVEFORMATEXTENSIBLE");
  		}
  		if (broadcastExtChunkSeen && (
                          (waveCodec == FormatChunk.WAVE_FORMAT_MPEG && factChunkSeen)
                          || waveCodec == FormatChunk.WAVE_FORMAT_PCM)) {
                      info.setProfile("BWF");
  		}
                  return 0;
  	}
focal_method.class_method_signature: WaveModule.parse(InputStream stream, RepInfo info, int parseIndex)
focal_method.full_signature: @Override public int parse(InputStream stream, RepInfo info, int parseIndex)
focal_method.identifier: parse
focal_method.invocations: initParse setModule setPrimaryIdentifier getUri getURLFlag setOtherPrimaryIdentifierType setPrimaryIdentifierType setupDataStream read4Chars equals setProfile equals setMessage setWellFormed readUnsignedInt read4Chars equals setMessage setWellFormed setSigMatch setFormat setMimeType readChunk compareUnsigned setMessage setWellFormed setMessage setWellFormed getBytesRemaining readChunk getBytesRemaining remainingDataInfo getBytesRemaining setWellFormed format getMessage getBytesRemaining getMessage getMessage setMessage printStackTrace setWellFormed getMessageInstance getId format getMessage getName getClass getMessage setMessage setDuration isEmpty add isEmpty add isEmpty add isEmpty add add buildProperty setMessage setWellFormed setMessage setWellFormed skipDstreamToEnd setChecksums setProperty setProfile setProfile setProfile setProfile
focal_method.modifiers: @Override public
focal_method.parameters: (InputStream stream, RepInfo info, int parseIndex)
focal_method.return: int
focal_method.signature: int parse(InputStream stream, RepInfo info, int parseIndex)