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. |