|
From: <ga...@us...> - 2012-08-10 06:44:33
|
Revision: 5914
http://jnode.svn.sourceforge.net/jnode/?rev=5914&view=rev
Author: galatnm
Date: 2012-08-10 06:44:27 +0000 (Fri, 10 Aug 2012)
Log Message:
-----------
Improve HFS+ date extraction
Modified Paths:
--------------
trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusEntry.java
trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFile.java
trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFolder.java
Modified: trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusEntry.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusEntry.java 2012-08-10 06:41:36 UTC (rev 5913)
+++ trunk/fs/src/fs/org/jnode/fs/hfsplus/HfsPlusEntry.java 2012-08-10 06:44:27 UTC (rev 5914)
@@ -17,11 +17,10 @@
* along with this library; If not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-
+
package org.jnode.fs.hfsplus;
import java.io.IOException;
-
import org.jnode.fs.FSAccessRights;
import org.jnode.fs.FSDirectory;
import org.jnode.fs.FSEntry;
@@ -44,10 +43,9 @@
protected boolean valid;
protected boolean dirty;
protected FSAccessRights rights;
- private long lastModified;
/**
- *
+ *
* @param fs
* @param parent
* @param name
@@ -61,7 +59,6 @@
this.record = record;
this.type = getFSEntryType();
this.rights = new UnixFSAccessRights(fs);
- this.lastModified = System.currentTimeMillis();
}
private int getFSEntryType() {
@@ -100,8 +97,14 @@
@Override
public long getLastModified() throws IOException {
- // TODO Auto-generated method stub
- return lastModified;
+ if (isFile()) {
+ CatalogFile catalogFile = new CatalogFile(getData());
+ return catalogFile.getContentModDate();
+ }
+ else {
+ CatalogFolder catalogFolder = new CatalogFolder(getData());
+ return catalogFolder.getContentModDate();
+ }
}
@Override
@@ -139,7 +142,15 @@
@Override
public void setLastModified(long lastModified) throws IOException {
- this.lastModified = lastModified;
+ if (isFile()) {
+ CatalogFile catalogFile = new CatalogFile(getData());
+ // catalogFile.setContentModDate();
+ throw new UnsupportedOperationException("Not implemented yet.");
+ }
+ else {
+ CatalogFolder catalogFolder = new CatalogFolder(getData());
+ catalogFolder.setContentModDate(lastModified);
+ }
}
@Override
@@ -168,4 +179,14 @@
return this.record.getData();
}
+ public long getCreated() throws IOException {
+ if (isFile()) {
+ CatalogFile catalogFile = new CatalogFile(getData());
+ return catalogFile.getCreateDate();
+ }
+ else {
+ CatalogFolder catalogFolder = new CatalogFolder(getData());
+ return catalogFolder.getCreateDate();
+ }
+ }
}
Modified: trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFile.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFile.java 2012-08-10 06:41:36 UTC (rev 5913)
+++ trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFile.java 2012-08-10 06:44:27 UTC (rev 5914)
@@ -137,12 +137,12 @@
return fileId;
}
- public int getCreateDate() {
- return createDate;
+ public long getCreateDate() {
+ return HfsUtils.getDate(createDate & 0xffffffffL, false) * 1000L;
}
- public int getContentModDate() {
- return contentModDate;
+ public long getContentModDate() {
+ return HfsUtils.getDate(contentModDate & 0xffffffffL, false) * 1000L;
}
public int getAttrModDate() {
Modified: trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFolder.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFolder.java 2012-08-10 06:41:36 UTC (rev 5913)
+++ trunk/fs/src/fs/org/jnode/fs/hfsplus/catalog/CatalogFolder.java 2012-08-10 06:44:27 UTC (rev 5914)
@@ -112,12 +112,12 @@
return folderId;
}
- public int getCreateDate() {
- return createDate;
+ public long getCreateDate() {
+ return HfsUtils.getDate(createDate & 0xffffffffL, false) * 1000L;
}
- public int getContentModDate() {
- return contentModDate;
+ public long getContentModDate() {
+ return HfsUtils.getDate(contentModDate & 0xffffffffL, false) * 1000L;
}
public int getAttrModDate() {
@@ -136,12 +136,12 @@
this.folderId = folderId;
}
- public void setCreateDate(int createDate) {
- this.createDate = createDate;
+ public void setCreateDate(long createDate) {
+ this.createDate = (int) HfsUtils.getDate(createDate / 1000L, true);
}
- public void setContentModDate(int contentModDate) {
- this.contentModDate = contentModDate;
+ public void setContentModDate(long contentModDate) {
+ this.contentModDate = (int) HfsUtils.getDate(contentModDate / 1000L, true);
}
public void setAttrModDate(int attrModDate) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|