X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fjpeg%2Fdrew%2FJpegSegmentData.java;fp=tim%2Fprune%2Fjpeg%2Fdrew%2FJpegSegmentData.java;h=0000000000000000000000000000000000000000;hp=4b56cbe9c57a6ff12a7475c5590574d114722d83;hb=92dad5df664287acb51728e9ea599f150765d34a;hpb=81843c3d8d0771bf00d0f26034a13aa515465c78 diff --git a/tim/prune/jpeg/drew/JpegSegmentData.java b/tim/prune/jpeg/drew/JpegSegmentData.java deleted file mode 100644 index 4b56cbe..0000000 --- a/tim/prune/jpeg/drew/JpegSegmentData.java +++ /dev/null @@ -1,106 +0,0 @@ -package tim.prune.jpeg.drew; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - * Class to hold a collection of Jpeg data segments - * Each marker represents a list of multiple byte arrays - * Based on Drew Noakes' Metadata extractor at http://drewnoakes.com - */ -public class JpegSegmentData -{ - /** A map of byte[], keyed by the segment marker */ - private final HashMap> _segmentDataMap = new HashMap>(10); - - - /** - * Add a segment to the collection - * @param inSegmentMarker marker byte - * @param inSegmentBytes data of segment - */ - public void addSegment(byte inSegmentMarker, byte[] inSegmentBytes) - { - List segmentList = getOrCreateSegmentList(inSegmentMarker); - segmentList.add(inSegmentBytes); - } - - - /** - * Get the first segment with the given marker - * @param inSegmentMarker marker byte - * @return first segment with that marker - */ - public byte[] getSegment(byte inSegmentMarker) - { - return getSegment(inSegmentMarker, 0); - } - - - /** - * Get the nth segment with the given marker - * @param inSegmentMarker marker byte - * @param inOccurrence occurrence to get, starting at 0 - * @return byte array from specified segment - */ - public byte[] getSegment(byte inSegmentMarker, int inOccurrence) - { - final List segmentList = getSegmentList(inSegmentMarker); - - if (segmentList==null || segmentList.size()<=inOccurrence) - return null; - else - return segmentList.get(inOccurrence); - } - - - /** - * Get the number of segments with the given marker - * @param inSegmentMarker marker byte - * @return number of segments - */ - public int getSegmentCount(byte inSegmentMarker) - { - final List segmentList = getSegmentList(inSegmentMarker); - if (segmentList == null) - return 0; - else - return segmentList.size(); - } - - - /** - * Get the list of segments with the given marker - * @param inSegmentMarker marker byte - * @return list of segments - */ - private List getSegmentList(byte inSegmentMarker) - { - return _segmentDataMap.get(Byte.valueOf(inSegmentMarker)); - } - - - /** - * Get the specified segment if it exists, otherwise create new one - * @param inSegmentMarker marker byte - * @return list of segments - */ - private List getOrCreateSegmentList(byte inSegmentMarker) - { - List segmentList = null; - Byte key = Byte.valueOf(inSegmentMarker); - if (_segmentDataMap.containsKey(key)) - { - // list already exists - segmentList = _segmentDataMap.get(key); - } - else - { - // create new list and add it - segmentList = new ArrayList(); - _segmentDataMap.put(key, segmentList); - } - return segmentList; - } -}