]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/data/MediaObject.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / data / MediaObject.java
diff --git a/tim/prune/data/MediaObject.java b/tim/prune/data/MediaObject.java
deleted file mode 100644 (file)
index 8c53caf..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-package tim.prune.data;
-
-import java.io.File;
-
-/**
- * Class to represent a general media object for correlation.
- * Subclasses are currently Photo and AudioClip
- */
-public abstract class MediaObject
-{
-       /** File where media is stored (if any) */
-       protected File _file = null;
-       /** Name of file */
-       protected String _name = null;
-       /** Cached data if downloaded */
-       protected byte[] _data = null;
-       /** URL if media came from net */
-       protected String _url = null;
-       /** Timestamp, if any */
-       protected Timestamp _timestamp = null;
-       /** Associated DataPoint if correlated */
-       protected DataPoint _dataPoint = null;
-       /** Status when loaded */
-       private Status _originalStatus = Status.NOT_CONNECTED;
-       /** Current status */
-       private Status _currentStatus = Status.NOT_CONNECTED;
-
-       /** Connection status */
-       public enum Status
-       {
-               /** Media is not connected to any point */
-               NOT_CONNECTED,
-               /** Media has been connected to a point since it was loaded */
-               TAGGED,
-               /** Media is connected to a point */
-               CONNECTED
-       };
-
-
-       /**
-        * Constructor
-        * @param inFile file object
-        * @param inStamp timestamp object
-        */
-       public MediaObject(File inFile, Timestamp inStamp)
-       {
-               _file = inFile;
-               _name = inFile.getName();
-               _data = null;
-               _timestamp = inStamp;
-       }
-
-       /**
-        * Constructor for byte arrays
-        * @param inData byte array containing data
-        * @param inName name of object
-        * @param inUrl source url of object or null
-        */
-       public MediaObject(byte[] inData, String inName, String inUrl)
-       {
-               _file = null;
-               _data = inData;
-               _name = inName;
-               _url = inUrl;
-               _timestamp = null;
-       }
-
-       /**
-        * @return the file object
-        */
-       public File getFile() {
-               return _file;
-       }
-
-       /** @return media name */
-       public String getName() {
-               return _name;
-       }
-
-       /**
-        * @return the timestamp object
-        */
-       public Timestamp getTimestamp() {
-               return _timestamp;
-       }
-
-       /**
-        * @param inTimestamp Timestamp object
-        */
-       public void setTimestamp(Timestamp inTimestamp) {
-               _timestamp = inTimestamp;
-       }
-
-       /**
-        * @return byte data of media
-        */
-       public byte[] getByteData() {
-               return _data;
-       }
-
-       /**
-        * @return source Url (or null)
-        */
-       public String getUrl() {
-               return _url;
-       }
-
-       /**
-        * @return the full path to the media, either filename or url
-        */
-       public String getFullPath()
-       {
-               if (_file != null) return _file.getAbsolutePath();
-               return getUrl();
-       }
-
-       /**
-        * @return true if details are valid (might not have timestamp)
-        */
-       public boolean isValid()
-       {
-               return ((_file != null && _file.exists() && _file.canRead())
-                       || (_data != null && _data.length > 0));
-       }
-
-       /**
-        * @return true if file has timestamp
-        */
-       public boolean hasTimestamp() {
-                return _timestamp != null && _timestamp.isValid();
-       }
-
-       /**
-        * Check if this object refers to the same object as another
-        * @param inOther other MediaObject
-        * @return true if the objects are the same
-        */
-       public boolean equals(MediaObject inOther)
-       {
-               if (_file != null)
-               {
-                       // compare file objects
-                       return (inOther != null && inOther.getFile() != null && getFile() != null
-                               && inOther.getFile().equals(getFile()));
-               }
-               // compare data arrays
-               return (inOther != null && _name != null && inOther._name != null && _name.equals(inOther._name)
-                       && _data != null && inOther._data != null && _data.length == inOther._data.length);
-       }
-
-       /**
-        * Set the data point associated with the photo
-        * @param inPoint DataPoint with coordinates etc
-        */
-       public void setDataPoint(DataPoint inPoint)
-       {
-               _dataPoint = inPoint;
-               // set status according to point
-               if (inPoint == null) {
-                       setCurrentStatus(Status.NOT_CONNECTED);
-               }
-               else {
-                       setCurrentStatus(Status.CONNECTED);
-               }
-       }
-
-       /**
-        * @return the DataPoint object
-        */
-       public DataPoint getDataPoint() {
-               return _dataPoint;
-       }
-
-       /**
-        * @param inStatus status of file when loaded
-        */
-       public void setOriginalStatus(Status inStatus)
-       {
-               _originalStatus = inStatus;
-               _currentStatus = inStatus;
-       }
-
-       /**
-        * @return status of file when it was loaded
-        */
-       public Status getOriginalStatus()
-       {
-               return _originalStatus;
-       }
-
-       /**
-        * @return current status
-        */
-       public Status getCurrentStatus()
-       {
-               return _currentStatus;
-       }
-       /**
-        * @param inStatus current status
-        */
-       public void setCurrentStatus(Status inStatus)
-       {
-               _currentStatus = inStatus;
-       }
-
-       /**
-        * @return true if this object is connected to a point
-        */
-       public boolean isConnected()
-       {
-               return _currentStatus != Status.NOT_CONNECTED;
-       }
-
-       /**
-        * @return true if status has changed since load
-        */
-       public boolean isModified()
-       {
-               return _currentStatus != _originalStatus;
-       }
-
-       /**
-        * Reset any cached data (eg thumbnail)
-        */
-       public void resetCachedData() {}
-}