|
From: <cr...@us...> - 2008-06-07 10:22:08
|
Revision: 4208
http://jnode.svn.sourceforge.net/jnode/?rev=4208&view=rev
Author: crawley
Date: 2008-06-07 03:22:01 -0700 (Sat, 07 Jun 2008)
Log Message:
-----------
Checkstyle changes
Modified Paths:
--------------
trunk/fs/src/fs/org/jnode/fs/jarfs/FSTreeBuilder.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSCache.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSDirectory.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSEntry.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSFile.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java
trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystemType.java
trunk/fs/src/fs/org/jnode/fs/jfat/BootSector.java
trunk/fs/src/fs/org/jnode/fs/jfat/ClusterSize.java
trunk/fs/src/fs/org/jnode/fs/jfat/CodePage.java
trunk/fs/src/fs/org/jnode/fs/jfat/CodePageDecoder.java
trunk/fs/src/fs/org/jnode/fs/jfat/CodePageEncoder.java
trunk/fs/src/fs/org/jnode/fs/jfat/Fat.java
trunk/fs/src/fs/org/jnode/fs/jfat/Fat32.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatAttr.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatCache.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatCase.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatChain.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatDirEntry.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatDirectory.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatDotDirEntry.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatEntry.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFile.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystem.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystemFormatter.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFileSystemType.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFormatter.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatFsInfo.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatLongDirEntry.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatMarshal.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatName.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatObject.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatRecord.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatRootDirectory.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatShortDirEntry.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatTable.java
trunk/fs/src/fs/org/jnode/fs/jfat/FatUtils.java
trunk/fs/src/fs/org/jnode/fs/jfat/StrWriter.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/FatFormatCommand.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/GrubException.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/JGrub.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/JGrubInstallCommand.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/MBRFormatter.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/Stage1_5.java
trunk/fs/src/fs/org/jnode/fs/jfat/command/Stage2.java
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/FSTreeBuilder.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/FSTreeBuilder.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/FSTreeBuilder.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -29,52 +29,45 @@
import org.jnode.fs.util.FSUtils;
-public class FSTreeBuilder
-{
+public class FSTreeBuilder {
public static final char separator = '/';
+
@SuppressWarnings("unchecked")
- public static JarFSEntry build(JarFileSystem fs, JarFile jarFile, JarFSCache cache)
- {
+ public static JarFSEntry build(JarFileSystem fs, JarFile jarFile, JarFSCache cache) {
JarFSEntry root = new JarFSEntry(fs, null, null, jarFile.getName());
Map<String, JarFSEntry> nameToJarFSEntry = new HashMap<String, JarFSEntry>();
nameToJarFSEntry.put("", root);
-
- for(Enumeration<JarEntry> entries = jarFile.entries() ; entries.hasMoreElements() ; )
- {
+
+ for (Enumeration<JarEntry> entries = jarFile.entries(); entries.hasMoreElements();) {
JarEntry entry = entries.nextElement();
JarFSEntry fsEntry = getJarFSEntry(fs, nameToJarFSEntry, entry, null);
cache.put(entry, fsEntry);
}
-
+
return root;
}
-
- public static JarFSEntry getJarFSEntry(JarFileSystem fs,
- Map<String, JarFSEntry> nameToJarFSEntry, JarEntry jarEntry, String fullName)
- {
+
+ public static JarFSEntry getJarFSEntry(JarFileSystem fs,
+ Map<String, JarFSEntry> nameToJarFSEntry, JarEntry jarEntry, String fullName) {
fullName = (fullName == null) ? jarEntry.getName() : fullName;
-
+
JarFSEntry fsEntry = nameToJarFSEntry.get(fullName);
- if(fsEntry == null)
- {
+ if (fsEntry == null) {
String parent = FSUtils.getParentName(fullName, separator);
JarFSEntry parentFSEntry;
- if("".equals(parent))
- {
+ if ("".equals(parent)) {
// parent is the root
parentFSEntry = nameToJarFSEntry.get("");
- }
- else
- {
+ } else {
// recursive call
parentFSEntry = getJarFSEntry(fs, nameToJarFSEntry, null, parent);
}
-
+
String name = FSUtils.getName(jarEntry.getName(), separator);
fsEntry = new JarFSEntry(fs, parentFSEntry, jarEntry, name);
nameToJarFSEntry.put(fullName, fsEntry);
}
-
+
return fsEntry;
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSCache.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSCache.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSCache.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -30,46 +30,39 @@
* @author Fabien DUMINY (fduminy at users.sourceforge.net)
*
*/
-public class JarFSCache
-{
- private Map<JarEntry,JarFSEntry> jarFSEntries = new java.util.Hashtable<JarEntry,JarFSEntry>();
- private Map<JarFSEntry,Map<String, JarFSEntry>> childEntries = new java.util.Hashtable<JarFSEntry,Map<String, JarFSEntry>>();
-
- public JarFSCache()
- {
+public class JarFSCache {
+ private Map<JarEntry, JarFSEntry> jarFSEntries =
+ new java.util.Hashtable<JarEntry, JarFSEntry>();
+ private Map<JarFSEntry, Map<String, JarFSEntry>> childEntries =
+ new java.util.Hashtable<JarFSEntry, Map<String, JarFSEntry>>();
+
+ public JarFSCache() {
}
-
- public JarFSEntry get(JarEntry jarEntry)
- {
+
+ public JarFSEntry get(JarEntry jarEntry) {
return jarFSEntries.get(jarEntry);
}
- public Object put(JarEntry jarEntry, JarFSEntry fsEntry)
- {
+ public Object put(JarEntry jarEntry, JarFSEntry fsEntry) {
return jarFSEntries.put(jarEntry, fsEntry);
}
-
- public boolean isEmpty()
- {
+
+ public boolean isEmpty() {
return (jarFSEntries.size() == 0);
}
-
- public Map<String, JarFSEntry> getChildEntries(JarFSEntry entry)
- {
+
+ public Map<String, JarFSEntry> getChildEntries(JarFSEntry entry) {
Map<String, JarFSEntry> children = childEntries.get(entry);
- if(children == null)
- {
+ if (children == null) {
children = new java.util.Hashtable<String, JarFSEntry>();
- for(JarFSEntry jarFSEntry : jarFSEntries.values())
- {
- if(jarFSEntry.getParentFSEntry().equals(entry))
- {
+ for (JarFSEntry jarFSEntry : jarFSEntries.values()) {
+ if (jarFSEntry.getParentFSEntry().equals(entry)) {
children.put(jarFSEntry.getName(), jarFSEntry);
}
}
childEntries.put(entry, children);
}
-
+
return children;
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSDirectory.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSDirectory.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSDirectory.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -33,7 +33,7 @@
/**
*
* @author Fabien DUMINY (fduminy at users.sourceforge.net)
- *
+ *
*/
public final class JarFSDirectory implements FSDirectory {
@@ -43,7 +43,7 @@
/**
* @param entry
*/
- public JarFSDirectory(JarFSEntry entry, Map<String, JarFSEntry> entries) {
+ public JarFSDirectory(JarFSEntry entry, Map<String, JarFSEntry> entries) {
this.entry = entry;
this.jarEntries = entries;
}
@@ -51,8 +51,8 @@
/**
* @see org.jnode.fs.FSDirectory#iterator()
*/
- public Iterator<? extends FSEntry> iterator() {
- return jarEntries.values().iterator();
+ public Iterator<? extends FSEntry> iterator() {
+ return jarEntries.values().iterator();
}
/**
@@ -97,12 +97,12 @@
return entry.getFileSystem();
}
- /**
- * Save all dirty (unsaved) data to the device
- * @throws IOException
- */
- public void flush() throws IOException
- {
- //jar file systems are always readOnly
- }
+ /**
+ * Save all dirty (unsaved) data to the device
+ *
+ * @throws IOException
+ */
+ public void flush() throws IOException {
+ // jar file systems are always readOnly
+ }
}
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSEntry.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSEntry.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSEntry.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -31,10 +31,8 @@
import org.jnode.fs.FileSystem;
import org.jnode.fs.ReadOnlyFileSystemException;
-/**
- *
+/**
* @author Fabien DUMINY (fduminy at users.sourceforge.net)
- *
*/
public final class JarFSEntry implements FSEntry {
@@ -50,16 +48,14 @@
this.name = name;
}
- public JarEntry getJarEntry()
- {
+ public JarEntry getJarEntry() {
return jarEntry;
}
- public JarFSEntry getParentFSEntry()
- {
+ public JarFSEntry getParentFSEntry() {
return parent;
}
-
+
/**
* @see org.jnode.fs.FSEntry#getName()
*/
@@ -67,67 +63,55 @@
return name;
}
- public FSDirectory getParent()
- {
+ public FSDirectory getParent() {
// TODO Auto-generated method stub
return null;
}
- public long getLastModified() throws IOException
- {
+ public long getLastModified() throws IOException {
return jarEntry.getTime();
}
- public boolean isFile()
- {
+ public boolean isFile() {
return !jarEntry.isDirectory();
}
- public boolean isDirectory()
- {
+ public boolean isDirectory() {
return jarEntry.isDirectory();
}
- public void setName(String newName) throws IOException
- {
+ public void setName(String newName) throws IOException {
throw new ReadOnlyFileSystemException("jar file system is readonly");
}
- public void setLastModified(long lastModified) throws IOException
- {
+ public void setLastModified(long lastModified) throws IOException {
throw new ReadOnlyFileSystemException("jar file system is readonly");
}
- public FSFile getFile() throws IOException
- {
+ public FSFile getFile() throws IOException {
// TODO Auto-generated method stub
return null;
}
- public FSDirectory getDirectory() throws IOException
- {
+ public FSDirectory getDirectory() throws IOException {
// TODO Auto-generated method stub
return null;
}
- public FSAccessRights getAccessRights() throws IOException
- {
+ public FSAccessRights getAccessRights() throws IOException {
// TODO Auto-generated method stub
return null;
}
- public boolean isDirty() throws IOException
- {
+ public boolean isDirty() throws IOException {
return false;
}
- public boolean isValid()
- {
+ public boolean isValid() {
return true;
}
- public FileSystem getFileSystem()
- {
+ public FileSystem getFileSystem() {
return fs;
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSFile.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSFile.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFSFile.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -32,10 +32,8 @@
import org.jnode.fs.FileSystem;
import org.jnode.fs.ReadOnlyFileSystemException;
-/**
- *
+/**
* @author Fabien DUMINY (fduminy at users.sourceforge.net)
- *
*/
public class JarFSFile implements FSFile {
@@ -65,13 +63,12 @@
/**
* @see org.jnode.fs.FSFile#read(long, byte[], int, int)
*/
- public void read(long fileOffset, ByteBuffer destBuf)
- throws IOException {
- final JarFileSystem fs = (JarFileSystem) getFileSystem();
+ public void read(long fileOffset, ByteBuffer destBuf) throws IOException {
+ final JarFileSystem fs = (JarFileSystem) getFileSystem();
final JarFile jarFile = fs.getJarFile();
final InputStream is = jarFile.getInputStream(entry.getJarEntry());
is.skip(fileOffset);
- InputStreamChannel isc = new InputStreamChannel(is);
+ InputStreamChannel isc = new InputStreamChannel(is);
isc.read(destBuf);
isc.close();
is.close();
@@ -79,10 +76,8 @@
/**
* @see org.jnode.fs.FSFile#write(long, byte[], int, int)
- */
- //public void write(long fileOffset, byte[] src, int off, int len)
- public void write(long fileOffset, ByteBuffer src)
- throws IOException {
+ */
+ public void write(long fileOffset, ByteBuffer src) throws IOException {
throw new ReadOnlyFileSystemException("Not yet implemented");
}
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystem.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -32,9 +32,9 @@
import org.jnode.fs.spi.AbstractFileSystem;
/**
- *
+ *
* @author Fabien DUMINY (fduminy at users.sourceforge.net)
- *
+ *
*/
public class JarFileSystem extends AbstractFileSystem<JarFSEntry> {
@@ -45,8 +45,7 @@
/**
* @see org.jnode.fs.FileSystem#getDevice()
*/
- public JarFileSystem(JarFileDevice device, JarFileSystemType type)
- throws FileSystemException {
+ public JarFileSystem(JarFileDevice device, JarFileSystemType type) throws FileSystemException {
super(device, true, type); // jar file systems are always readOnly
jarFile = device.getJarFile();
@@ -54,46 +53,44 @@
rootEntry = FSTreeBuilder.build(this, jarFile, cache);
}
- public JarFile getJarFile()
- {
+ public JarFile getJarFile() {
return jarFile;
}
/**
- *
+ *
*/
- protected FSFile createFile(FSEntry entry) {
- return new JarFSFile((JarFSEntry) entry);
- }
+ protected FSFile createFile(FSEntry entry) {
+ return new JarFSFile((JarFSEntry) entry);
+ }
- /**
- *
- */
- protected FSDirectory createDirectory(FSEntry entry) {
+ /**
+ *
+ */
+ protected FSDirectory createDirectory(FSEntry entry) {
Map<String, JarFSEntry> entries = cache.getChildEntries((JarFSEntry) entry);
return new JarFSDirectory((JarFSEntry) entry, entries);
- }
+ }
- /**
- *
- */
- protected JarFSEntry createRootEntry() {
- return rootEntry;
- }
+ /**
+ *
+ */
+ protected JarFSEntry createRootEntry() {
+ return rootEntry;
+ }
+ public long getFreeSpace() {
+ // TODO implement me
+ return 0;
+ }
- public long getFreeSpace() {
- // TODO implement me
- return 0;
- }
+ public long getTotalSpace() {
+ // TODO implement me
+ return 0;
+ }
- public long getTotalSpace() {
- // TODO implement me
- return 0;
- }
-
- public long getUsableSpace() {
- // TODO implement me
- return 0;
- }
+ public long getUsableSpace() {
+ // TODO implement me
+ return 0;
+ }
}
Modified: trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystemType.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystemType.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jarfs/JarFileSystemType.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -25,12 +25,11 @@
import org.jnode.driver.block.JarFileDevice;
import org.jnode.fs.FileSystemException;
import org.jnode.fs.FileSystemType;
-import org.jnode.fs.util.FSUtils;
/**
- *
+ *
* @author Fabien DUMINY (fduminy at users.sourceforge.net)
- *
+ *
*/
public class JarFileSystemType implements FileSystemType<JarFileSystem> {
public static final Class<JarFileSystemType> ID = JarFileSystemType.class;
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/BootSector.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/BootSector.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/BootSector.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -24,24 +24,19 @@
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.util.Arrays;
import org.apache.log4j.Logger;
-import org.jnode.fs.FileSystemException;
-import org.jnode.fs.jfat.StrWriter;
import org.jnode.driver.block.BlockDeviceAPI;
import org.jnode.partitions.ibm.IBMPartitionTable;
import org.jnode.util.LittleEndian;
import org.jnode.util.NumberUtils;
-
/**
* @author gvt
* @author Tango
*/
public class BootSector {
- private static final Logger log =
- Logger.getLogger ( BootSector.class );
+ private static final Logger log = Logger.getLogger(BootSector.class);
private static final int IFAT12 = 12;
private static final int IFAT16 = 16;
@@ -53,9 +48,9 @@
private static final String SFAT12 = "FAT12";
private static final String SFAT16 = "FAT16";
private static final String SFAT32 = "FAT32";
-
+
private byte[] sector;
- private int type;
+ private int type;
private boolean dirty;
/*
@@ -63,320 +58,289 @@
*/
private byte[] BS_jmpBoot;
private String BS_OEMName;
- private int BPB_BytsPerSec;
- private int BPB_SecPerClus;
- private int BPB_RsvdSecCnt;
- private int BPB_NumFATs;
- private int BPB_RootEntCnt;
- private int BPB_TotSec16;
- private int BPB_Media;
- private int BPB_FATSz16;
- private int BPB_SecPerTrk;
- private int BPB_NumHeads;
- private long BPB_HiddSec;
- private long BPB_TotSec32;
+ private int BPB_BytsPerSec;
+ private int BPB_SecPerClus;
+ private int BPB_RsvdSecCnt;
+ private int BPB_NumFATs;
+ private int BPB_RootEntCnt;
+ private int BPB_TotSec16;
+ private int BPB_Media;
+ private int BPB_FATSz16;
+ private int BPB_SecPerTrk;
+ private int BPB_NumHeads;
+ private long BPB_HiddSec;
+ private long BPB_TotSec32;
-
/*
* FAT32 only fields;
*/
- private long BPB_FATSz32;
- private int BPB_ExtFlags;
- private int BPB_FSVer;
- private long BPB_RootClus;
- private int BPB_FSInfo;
- private int BPB_BkBootSec;
+ private long BPB_FATSz32;
+ private int BPB_ExtFlags;
+ private int BPB_FSVer;
+ private long BPB_RootClus;
+ private int BPB_FSInfo;
+ private int BPB_BkBootSec;
private byte[] BPB_Reserved;
-
/*
* Common fields, different offsets
*/
- private int BS_DrvNum;
- private int BS_Reserved1;
- private int BS_BootSig;
- private long BS_VolID;
+ private int BS_DrvNum;
+ private int BS_Reserved1;
+ private int BS_BootSig;
+ private long BS_VolID;
private String BS_VolLab;
private String BS_FilSysType;
-
-
/*
* computed fields
*/
- private long RootDirSectors;
- private long FATSz;
- private long FirstDataSector;
- private long TotSec;
- private long DataSec;
- private long CountOfClusters;
+ private long RootDirSectors;
+ private long FATSz;
+ private long FirstDataSector;
+ private long TotSec;
+ private long DataSec;
+ private long CountOfClusters;
+ public BootSector(int size) {
+ sector = new byte[size];
+ dirty = false;
+ }
- public BootSector ( int size ) {
- sector = new byte[size];
- dirty = false;
+ public BootSector(byte[] sector) {
+ this.sector = new byte[sector.length];
+ System.arraycopy(sector, 0, this.sector, 0, sector.length);
+ decode();
+ dirty = false;
}
-
-
- public BootSector ( byte[] sector ) {
- this.sector = new byte[sector.length];
- System.arraycopy ( sector, 0, this.sector, 0, sector.length );
- decode();
- dirty = false;
- }
-
public boolean isaValidBootSector() {
- return IBMPartitionTable.containsPartitionTable(sector);
+ return IBMPartitionTable.containsPartitionTable(sector);
}
-
- public synchronized void read ( BlockDeviceAPI device )
- throws IOException {
- device.read ( 0, ByteBuffer.wrap ( sector ) );
- decode();
+ public synchronized void read(BlockDeviceAPI device) throws IOException {
+ device.read(0, ByteBuffer.wrap(sector));
+ decode();
dirty = false;
}
+ public synchronized void write(BlockDeviceAPI device, long offset) throws IOException {
+ //encode();//TODO: Notice here once (Changed Now)
+ device.write(offset, ByteBuffer.wrap(sector));
- public synchronized void write ( BlockDeviceAPI device,long offset )
- throws IOException
- {
- //encode();//TODO: Notice here once (Changed Now)
- device.write (offset, ByteBuffer.wrap ( sector ) );
-
dirty = false;
}
-
private void compute() {
- RootDirSectors = ( ( BPB_RootEntCnt * 32 ) +
- ( BPB_BytsPerSec - 1 ) ) / BPB_BytsPerSec;
+ RootDirSectors = ((BPB_RootEntCnt * 32) + (BPB_BytsPerSec - 1)) / BPB_BytsPerSec;
- if ( BPB_FATSz16 != 0 )
- FATSz = BPB_FATSz16;
- else
- FATSz = BPB_FATSz32;
+ if (BPB_FATSz16 != 0)
+ FATSz = BPB_FATSz16;
+ else
+ FATSz = BPB_FATSz32;
- FirstDataSector = BPB_RsvdSecCnt +
- ( BPB_NumFATs * FATSz ) + RootDirSectors;
+ FirstDataSector = BPB_RsvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors;
- if ( BPB_TotSec16 != 0 )
- TotSec = BPB_TotSec16;
- else
- TotSec = BPB_TotSec32;
+ if (BPB_TotSec16 != 0)
+ TotSec = BPB_TotSec16;
+ else
+ TotSec = BPB_TotSec32;
- DataSec = TotSec - ( BPB_RsvdSecCnt + ( BPB_NumFATs * FATSz ) +
- RootDirSectors );
+ DataSec = TotSec - (BPB_RsvdSecCnt + (BPB_NumFATs * FATSz) + RootDirSectors);
- CountOfClusters = DataSec / BPB_SecPerClus;
+ CountOfClusters = DataSec / BPB_SecPerClus;
- if ( CountOfClusters < SZFAT12 )
- type = IFAT12;
- else if ( CountOfClusters < SZFAT16 )
- type = IFAT16;
- else
- type = IFAT32;
+ if (CountOfClusters < SZFAT12)
+ type = IFAT12;
+ else if (CountOfClusters < SZFAT16)
+ type = IFAT16;
+ else
+ type = IFAT32;
}
-
private void decode() {
- BS_jmpBoot = getBytes ( 0, 3 );
- BS_OEMName = getString ( 3, 8 );
- BPB_BytsPerSec = get16 ( 11 );
- BPB_SecPerClus = get8 ( 13 );
- BPB_RsvdSecCnt = get16 ( 14 );
- BPB_NumFATs = get8 ( 16 );
- BPB_RootEntCnt = get16 ( 17 );
- BPB_TotSec16 = get16 ( 19 );
- BPB_Media = get8 ( 21 );
- BPB_FATSz16 = get16 ( 22 );
- BPB_SecPerTrk = get16 ( 24 );
- BPB_NumHeads = get16 ( 26 );
- BPB_HiddSec = get32 ( 28 );
- BPB_TotSec32 = get32 ( 32 );
+ BS_jmpBoot = getBytes(0, 3);
+ BS_OEMName = getString(3, 8);
+ BPB_BytsPerSec = get16(11);
+ BPB_SecPerClus = get8(13);
+ BPB_RsvdSecCnt = get16(14);
+ BPB_NumFATs = get8(16);
+ BPB_RootEntCnt = get16(17);
+ BPB_TotSec16 = get16(19);
+ BPB_Media = get8(21);
+ BPB_FATSz16 = get16(22);
+ BPB_SecPerTrk = get16(24);
+ BPB_NumHeads = get16(26);
+ BPB_HiddSec = get32(28);
+ BPB_TotSec32 = get32(32);
- if ( BPB_FATSz16 == 0 )
- BPB_FATSz32 = get32 ( 36 );
+ if (BPB_FATSz16 == 0)
+ BPB_FATSz32 = get32(36);
- compute();
+ compute();
- if ( !isFat32() ) {
- BS_DrvNum = get8 ( 36 );
- BS_Reserved1 = get8 ( 37 );
- BS_BootSig = get8 ( 38 );
- BS_VolID = get32 ( 39 );
- BS_VolLab = getString ( 43, 11 );
- BS_FilSysType = getString ( 54, 8 );
- }
- else {
- BPB_ExtFlags = get16 ( 40 );
- BPB_FSVer = get16 ( 42 );
- BPB_RootClus = get32 ( 44 );
- BPB_FSInfo = get16 ( 48 );
- BPB_BkBootSec = get16 ( 50 );
- BPB_Reserved = getBytes ( 52, 12 );
+ if (!isFat32()) {
+ BS_DrvNum = get8(36);
+ BS_Reserved1 = get8(37);
+ BS_BootSig = get8(38);
+ BS_VolID = get32(39);
+ BS_VolLab = getString(43, 11);
+ BS_FilSysType = getString(54, 8);
+ } else {
+ BPB_ExtFlags = get16(40);
+ BPB_FSVer = get16(42);
+ BPB_RootClus = get32(44);
+ BPB_FSInfo = get16(48);
+ BPB_BkBootSec = get16(50);
+ BPB_Reserved = getBytes(52, 12);
- BS_DrvNum = get8 ( 64 );
- BS_Reserved1 = get8 ( 65 );
- BS_BootSig = get8 ( 66 );
- BS_VolID = get32 ( 67 );
- BS_VolLab = getString ( 71, 11 );
- BS_FilSysType = getString ( 82, 8 );
- }
+ BS_DrvNum = get8(64);
+ BS_Reserved1 = get8(65);
+ BS_BootSig = get8(66);
+ BS_VolID = get32(67);
+ BS_VolLab = getString(71, 11);
+ BS_FilSysType = getString(82, 8);
+ }
}
-
private void encode() {
- setBytes ( 0, 3, BS_jmpBoot );
- setString ( 3, 8, BS_OEMName );
- set16 ( 11, BPB_BytsPerSec );
- set8 ( 13, BPB_SecPerClus );
- set16 ( 14, BPB_RsvdSecCnt );
- set8 ( 16, BPB_NumFATs );
- set16 ( 17, BPB_RootEntCnt );
- set16 ( 19, BPB_TotSec16 );
- set8 ( 21, BPB_Media );
- set16 ( 22, BPB_FATSz16 );
- set16 ( 24, BPB_SecPerTrk );
- set16 ( 26, BPB_NumHeads );
- set32 ( 28, BPB_HiddSec );
- set32 ( 32, BPB_TotSec32 );
+ setBytes(0, 3, BS_jmpBoot);
+ setString(3, 8, BS_OEMName);
+ set16(11, BPB_BytsPerSec);
+ set8(13, BPB_SecPerClus);
+ set16(14, BPB_RsvdSecCnt);
+ set8(16, BPB_NumFATs);
+ set16(17, BPB_RootEntCnt);
+ set16(19, BPB_TotSec16);
+ set8(21, BPB_Media);
+ set16(22, BPB_FATSz16);
+ set16(24, BPB_SecPerTrk);
+ set16(26, BPB_NumHeads);
+ set32(28, BPB_HiddSec);
+ set32(32, BPB_TotSec32);
- if ( !isFat32() ) {
- set8 ( 36, BS_DrvNum );
- set8 ( 37, BS_Reserved1 );
- set8 ( 38, BS_BootSig );
- set32 ( 39, BS_VolID );
- setString ( 43, 11, BS_VolLab );
- setString ( 54, 8, BS_FilSysType );
- }
- else {
- set32 ( 36, BPB_FATSz32 );
- set16 ( 40, BPB_ExtFlags );
- set16 ( 42, BPB_FSVer );
- set32 ( 44, BPB_RootClus );
- set16 ( 48, BPB_FSInfo );
- set16 ( 50, BPB_BkBootSec );
- setBytes ( 52, 12, BPB_Reserved );
+ if (!isFat32()) {
+ set8(36, BS_DrvNum);
+ set8(37, BS_Reserved1);
+ set8(38, BS_BootSig);
+ set32(39, BS_VolID);
+ setString(43, 11, BS_VolLab);
+ setString(54, 8, BS_FilSysType);
+ } else {
+ set32(36, BPB_FATSz32);
+ set16(40, BPB_ExtFlags);
+ set16(42, BPB_FSVer);
+ set32(44, BPB_RootClus);
+ set16(48, BPB_FSInfo);
+ set16(50, BPB_BkBootSec);
+ setBytes(52, 12, BPB_Reserved);
- set8 ( 64, BS_DrvNum );
- set8 ( 65, BS_Reserved1 );
- set8 ( 66, BS_BootSig );
- set32 ( 67, BS_VolID );
- setString ( 71, 11, BS_VolLab );
- setString ( 82, 8, BS_FilSysType );
- }
+ set8(64, BS_DrvNum);
+ set8(65, BS_Reserved1);
+ set8(66, BS_BootSig);
+ set32(67, BS_VolID);
+ setString(71, 11, BS_VolLab);
+ setString(82, 8, BS_FilSysType);
+ }
}
-
-
- protected int get8 ( int offset ) {
- return LittleEndian.getUInt8 ( sector, offset );
+
+ protected int get8(int offset) {
+ return LittleEndian.getUInt8(sector, offset);
}
-
- protected void set8 ( int offset, int value ) {
- LittleEndian.setInt8 ( sector, offset, value );
+ protected void set8(int offset, int value) {
+ LittleEndian.setInt8(sector, offset, value);
dirty = true;
}
-
- protected int get16 ( int offset ) {
- return LittleEndian.getUInt16 ( sector, offset );
+ protected int get16(int offset) {
+ return LittleEndian.getUInt16(sector, offset);
}
-
- protected void set16 ( int offset, int value ) {
- LittleEndian.setInt16 ( sector, offset, value );
+ protected void set16(int offset, int value) {
+ LittleEndian.setInt16(sector, offset, value);
dirty = true;
}
-
- protected long get32 ( int offset ) {
- return LittleEndian.getUInt32 ( sector, offset );
+ protected long get32(int offset) {
+ return LittleEndian.getUInt32(sector, offset);
}
-
- protected void set32 ( int offset, long value ) {
- LittleEndian.setInt32 ( sector, offset, (int)value );
+ protected void set32(int offset, long value) {
+ LittleEndian.setInt32(sector, offset, (int) value);
dirty = true;
}
-
- protected String getString ( int offset, int len ) {
- StringBuilder b = new StringBuilder ( len );
- for ( int i = 0; i < len; i++ ) {
- int v = sector[offset+i];
- b.append ( (char)v );
+ protected String getString(int offset, int len) {
+ StringBuilder b = new StringBuilder(len);
+ for (int i = 0; i < len; i++) {
+ int v = sector[offset + i];
+ b.append((char) v);
}
return b.toString();
}
-
-
- protected void setString ( int offset, int len, String value ) {
- for ( int i = 0; i < len; i++ ) {
+
+ protected void setString(int offset, int len, String value) {
+ for (int i = 0; i < len; i++) {
char ch;
- if ( i < value.length() )
- ch = value.charAt ( i );
+ if (i < value.length())
+ ch = value.charAt(i);
else
- ch = (char)0;
- LittleEndian.setInt8 ( sector, offset + i, ch );
+ ch = (char) 0;
+ LittleEndian.setInt8(sector, offset + i, ch);
}
dirty = true;
}
-
- protected byte[] getBytes ( int offset, int len ) {
+ protected byte[] getBytes(int offset, int len) {
byte[] v = new byte[len];
- System.arraycopy ( sector, offset, v, 0, len );
+ System.arraycopy(sector, offset, v, 0, len);
return v;
}
-
- protected void setBytes ( int offset, int len, byte[] value ) {
- System.arraycopy ( value, 0, sector, offset, len );
+ protected void setBytes(int offset, int len, byte[] value) {
+ System.arraycopy(value, 0, sector, offset, len);
dirty = true;
}
-
private String fatType() {
- switch ( type ) {
- case IFAT12: return SFAT12;
- case IFAT16: return SFAT16;
- case IFAT32: return SFAT32;
- default: return "";
- }
+ switch (type) {
+ case IFAT12:
+ return SFAT12;
+ case IFAT16:
+ return SFAT16;
+ case IFAT32:
+ return SFAT32;
+ default:
+ return "";
+ }
}
-
public boolean isDirty() {
- return dirty;
+ return dirty;
}
-
public boolean isFat12() {
- if ( type == IFAT12 )
- return true;
- else
- return false;
+ if (type == IFAT12)
+ return true;
+ else
+ return false;
}
-
public boolean isFat16() {
- if ( type == IFAT16 )
- return true;
- else
- return false;
+ if (type == IFAT16)
+ return true;
+ else
+ return false;
}
-
public boolean isFat32() {
- if ( type == IFAT32 )
- return true;
- else
- return false;
+ if (type == IFAT32)
+ return true;
+ else
+ return false;
}
/**
@@ -384,7 +348,7 @@
* @return
*/
public int fatSize() {
- return type;
+ return type;
}
/**
@@ -392,237 +356,206 @@
* @return BPB_Media
*/
public int getMediumDescriptor() {
- return BPB_Media;
+ return BPB_Media;
}
-
public long getSectorsPerFat() {
- return FATSz;
+ return FATSz;
}
-
public int getBytesPerSector() {
- return BPB_BytsPerSec;
+ return BPB_BytsPerSec;
}
-
-
+
public int getSectorsPerCluster() {
- return BPB_SecPerClus;
+ return BPB_SecPerClus;
}
-
public int getNrReservedSectors() {
- return BPB_RsvdSecCnt;
+ return BPB_RsvdSecCnt;
}
-
public int getNrFats() {
- return BPB_NumFATs;
+ return BPB_NumFATs;
}
public long getRootDirectoryStartCluster() {
- return BPB_RootClus;
+ return BPB_RootClus;
}
-
+
public long getCountOfClusters() {
- return CountOfClusters;
+ return CountOfClusters;
}
-
public long getFirstDataSector() {
- return FirstDataSector;
+ return FirstDataSector;
}
/**
* The Setting methods are writing here.
*
*/
- public void setBS_JmpBoot(byte[] BS_jmpBoot){
- setBytes (0,3, BS_jmpBoot);
+ public void setBS_JmpBoot(byte[] BS_jmpBoot) {
+ setBytes(0, 3, BS_jmpBoot);
}
+ public void setBS_OemName(String BS_OEMName) {
+ setString(3, 8, BS_OEMName);
+ }
- public void setBS_OemName(String BS_OEMName){
- setString( 3, 8, BS_OEMName );
+ public void setBPB_BytesPerSector(int BPB_BytsPerSec) {
+ set16(11, BPB_BytsPerSec);
}
+ public void setBPB_SecPerCluster(int BPB_SecPerClus) {
+ set8(13, BPB_SecPerClus);
+ }
- public void setBPB_BytesPerSector(int BPB_BytsPerSec){
- set16( 11, BPB_BytsPerSec );
+ public void setBPB_RsvSecCount(int BPB_RsvdSecCnt) {
+ set16(14, BPB_RsvdSecCnt);
}
+ public void setBPB_NoFATs(int BPB_NumFATs) {
+ set8(16, BPB_NumFATs);
+ }
- public void setBPB_SecPerCluster(int BPB_SecPerClus){
- set8(13,BPB_SecPerClus );
+ public void setBPB_RootEntCnt(int BPB_RootEntCnt) {
+ set16(17, BPB_RootEntCnt);
}
+ public void setBPB_TotSec16(int BPB_TotSec16) {
+ set16(19, BPB_TotSec16);
+ }
- public void setBPB_RsvSecCount(int BPB_RsvdSecCnt){
- set16 (14,BPB_RsvdSecCnt );
+ public void setBPB_MediumDescriptor(int BPB_Media) {
+ set8(21, BPB_Media);
}
-
- public void setBPB_NoFATs(int BPB_NumFATs){
- set8 (16,BPB_NumFATs);
+ public void setBPB_FATSz16(int BPB_FATSz16) {
+ set16(22, BPB_FATSz16);
}
-
- public void setBPB_RootEntCnt(int BPB_RootEntCnt){
- set16( 17,BPB_RootEntCnt );
+ public void setBPB_SecPerTrk(int BPB_SecPerTrk) {
+ set16(24, BPB_SecPerTrk);
}
-
- public void setBPB_TotSec16(int BPB_TotSec16){
- set16( 19,BPB_TotSec16);
+ public void setBPB_NumHeads(int BPB_NumHeads) {
+ set16(26, BPB_NumHeads);
}
-
- public void setBPB_MediumDescriptor(int BPB_Media){
- set8( 21, BPB_Media );
+ public void setBPB_HiddSec(long BPB_HiddSec) {
+ set32(28, BPB_HiddSec);
}
-
- public void setBPB_FATSz16(int BPB_FATSz16){
- set16( 22,BPB_FATSz16 );
+ public void setBPB_TotSec32(long BPB_TotSec32) {
+ set32(32, BPB_TotSec32);
}
-
- public void setBPB_SecPerTrk(int BPB_SecPerTrk){
- set16( 24,BPB_SecPerTrk );
- }
-
-
- public void setBPB_NumHeads(int BPB_NumHeads){
- set16( 26, BPB_NumHeads );
- }
-
-
- public void setBPB_HiddSec(long BPB_HiddSec){
- set32( 28,BPB_HiddSec );
- }
-
-
- public void setBPB_TotSec32(long BPB_TotSec32){
- set32( 32,BPB_TotSec32 );
- }
-
- public void setBPB_FATSz32(long BPB_FATSz32){
- set32( 36,BPB_FATSz32 );
+ public void setBPB_FATSz32(long BPB_FATSz32) {
+ set32(36, BPB_FATSz32);
}
-
- public void setBPB_ExtFlags(int BPB_ExtFlags){
- set16( 40,BPB_ExtFlags );
+ public void setBPB_ExtFlags(int BPB_ExtFlags) {
+ set16(40, BPB_ExtFlags);
}
-
- public void setBPB_FSVer(int BPB_FSVer){
- set16( 42,BPB_FSVer );
+ public void setBPB_FSVer(int BPB_FSVer) {
+ set16(42, BPB_FSVer);
}
-
- public void setBPB_RootClus(long BPB_RootClus){
- set32( 44,BPB_RootClus );
+ public void setBPB_RootClus(long BPB_RootClus) {
+ set32(44, BPB_RootClus);
}
-
- public void setBPB_FSInfo(int BPB_FSInfo){
- set16( 48,BPB_FSInfo );
+ public void setBPB_FSInfo(int BPB_FSInfo) {
+ set16(48, BPB_FSInfo);
}
-
- public void setBPB_BkBootSec(int BPB_BkBootSec){
- set16( 50,BPB_BkBootSec );
+ public void setBPB_BkBootSec(int BPB_BkBootSec) {
+ set16(50, BPB_BkBootSec);
}
-
- public void setBPB_Reserved(byte[] BPB_Reserved ){
- setBytes ( 52, 12, BPB_Reserved );
+ public void setBPB_Reserved(byte[] BPB_Reserved) {
+ setBytes(52, 12, BPB_Reserved);
}
-
- public void setBS_DrvNum(int BS_DrvNum){
- set8( 64,BS_DrvNum );
+ public void setBS_DrvNum(int BS_DrvNum) {
+ set8(64, BS_DrvNum);
}
-
- public void setBS_Reserved1(int BS_Reserved1){
- set8 ( 65,BS_Reserved1 );
+ public void setBS_Reserved1(int BS_Reserved1) {
+ set8(65, BS_Reserved1);
}
-
- public void setBS_BootSig(int BS_BootSig){
- set8( 66,BS_BootSig );
+ public void setBS_BootSig(int BS_BootSig) {
+ set8(66, BS_BootSig);
}
-
- public void setBS_VolID(long BS_VolID){
- set32( 67,BS_VolID );
+ public void setBS_VolID(long BS_VolID) {
+ set32(67, BS_VolID);
}
-
- public void setBS_VolLab(String BS_VolLab){
- setString ( 71, 11, BS_VolLab );
+ public void setBS_VolLab(String BS_VolLab) {
+ setString(71, 11, BS_VolLab);
}
-
- public void setBS_FilSysType(String BS_FilSysType){
- setString ( 82, 8, BS_FilSysType );
+ public void setBS_FilSysType(String BS_FilSysType) {
+ setString(82, 8, BS_FilSysType);
}
- public void setBS_Identifier(byte[] ident){
- setBytes(510,2,ident);
+ public void setBS_Identifier(byte[] ident) {
+ setBytes(510, 2, ident);
}
public String toString() {
- StrWriter out = new StrWriter();
+ StrWriter out = new StrWriter();
- out.println ( "*********************** BootSector *************************" );
- out.println ( "fatType\t\t" + fatType() );
- out.println ( "isDirty\t\t" + isDirty() );
- out.println ( "*************************************************************" );
- out.println ( "BS_jmpBoot\t" + NumberUtils.hex ( BS_jmpBoot, 0, 3 ) );
- out.println ( "BS_OEMName\t" + BS_OEMName );
- out.println ( "BPB_BytsPerSec\t" + BPB_BytsPerSec );
- out.println ( "BPB_SecPerClus\t" + BPB_SecPerClus );
- out.println ( "BPB_RsvdSecCnt\t" + BPB_RsvdSecCnt );
- out.println ( "BPB_NumFATs\t" + BPB_NumFATs );
- out.println ( "BPB_RootEntCnt\t" + BPB_RootEntCnt );
- out.println ( "BPB_TotSec16\t" + BPB_TotSec16 );
- out.println ( "BPB_Media\t" + NumberUtils.hex ( BPB_Media, 2 ) );
- out.println ( "BPB_FATSz16\t" + BPB_FATSz16 );
- out.println ( "BPB_SecPerTrk\t" + BPB_SecPerTrk );
- out.println ( "BPB_NumHeads\t" + BPB_NumHeads );
- out.println ( "BPB_HiddSec\t" + BPB_HiddSec );
- out.println ( "BPB_TotSec32\t" + BPB_TotSec32 );
- out.println ( );
-
- if ( isFat32() ) {
- out.println ( "BPB_FATSz32\t" + BPB_FATSz32 );
- out.println ( "BPB_ExtFlags\t" + NumberUtils.hex ( BPB_ExtFlags, 2 ) );
- out.println ( "BPB_FSVer\t" + NumberUtils.hex ( BPB_FSVer, 2 ) );
- out.println ( "BPB_RootClus\t" + BPB_RootClus );
- out.println ( "BPB_FSInfo\t" + BPB_FSInfo );
- out.println ( "BPB_BkBootSec\t" + BPB_BkBootSec );
- out.println ( "BPB_Reserved\t" + NumberUtils.hex ( BPB_Reserved, 0, 12 ) );
- out.println ( );
- }
-
- out.println ( "BS_DrvNum\t" + NumberUtils.hex ( BS_DrvNum, 2 ) );
- out.println ( "BS_Reserved1\t" + NumberUtils.hex ( BS_Reserved1, 2 ) );
- out.println ( "BS_BootSig\t" + NumberUtils.hex ( BS_BootSig, 2 ) );
- out.println ( "BS_VolID\t" + NumberUtils.hex ( BS_VolID, 8 ) );
- out.println ( "BS_VolLab\t" + BS_VolLab );
- out.println ( "BS_FilSysType\t" + BS_FilSysType );
- out.println ( );
- out.println ( "RootDirSectors\t" + RootDirSectors );
- out.println ( "FATSz\t\t" + FATSz );
- out.println ( "FirstDataSector\t" + FirstDataSector );
- out.println ( "TotSec\t\t" + TotSec );
- out.println ( "DataSec\t\t" + DataSec );
- out.println ( "CountOfClusters\t" + CountOfClusters );
- out.print ( "*************************************************************" );
-
- return out.toString();
+ out.println("*********************** BootSector *************************");
+ out.println("fatType\t\t" + fatType());
+ out.println("isDirty\t\t" + isDirty());
+ out.println("*************************************************************");
+ out.println("BS_jmpBoot\t" + NumberUtils.hex(BS_jmpBoot, 0, 3));
+ out.println("BS_OEMName\t" + BS_OEMName);
+ out.println("BPB_BytsPerSec\t" + BPB_BytsPerSec);
+ out.println("BPB_SecPerClus\t" + BPB_SecPerClus);
+ out.println("BPB_RsvdSecCnt\t" + BPB_RsvdSecCnt);
+ out.println("BPB_NumFATs\t" + BPB_NumFATs);
+ out.println("BPB_RootEntCnt\t" + BPB_RootEntCnt);
+ out.println("BPB_TotSec16\t" + BPB_TotSec16);
+ out.println("BPB_Media\t" + NumberUtils.hex(BPB_Media, 2));
+ out.println("BPB_FATSz16\t" + BPB_FATSz16);
+ out.println("BPB_SecPerTrk\t" + BPB_SecPerTrk);
+ out.println("BPB_NumHeads\t" + BPB_NumHeads);
+ out.println("BPB_HiddSec\t" + BPB_HiddSec);
+ out.println("BPB_TotSec32\t" + BPB_TotSec32);
+ out.println();
+
+ if (isFat32()) {
+ out.println("BPB_FATSz32\t" + BPB_FATSz32);
+ out.println("BPB_ExtFlags\t" + NumberUtils.hex(BPB_ExtFlags, 2));
+ out.println("BPB_FSVer\t" + NumberUtils.hex(BPB_FSVer, 2));
+ out.println("BPB_RootClus\t" + BPB_RootClus);
+ out.println("BPB_FSInfo\t" + BPB_FSInfo);
+ out.println("BPB_BkBootSec\t" + BPB_BkBootSec);
+ out.println("BPB_Reserved\t" + NumberUtils.hex(BPB_Reserved, 0, 12));
+ out.println();
+ }
+
+ out.println("BS_DrvNum\t" + NumberUtils.hex(BS_DrvNum, 2));
+ out.println("BS_Reserved1\t" + NumberUtils.hex(BS_Reserved1, 2));
+ out.println("BS_BootSig\t" + NumberUtils.hex(BS_BootSig, 2));
+ out.println("BS_VolID\t" + NumberUtils.hex(BS_VolID, 8));
+ out.println("BS_VolLab\t" + BS_VolLab);
+ out.println("BS_FilSysType\t" + BS_FilSysType);
+ out.println();
+ out.println("RootDirSectors\t" + RootDirSectors);
+ out.println("FATSz\t\t" + FATSz);
+ out.println("FirstDataSector\t" + FirstDataSector);
+ out.println("TotSec\t\t" + TotSec);
+ out.println("DataSec\t\t" + DataSec);
+ out.println("CountOfClusters\t" + CountOfClusters);
+ out.print("*************************************************************");
+
+ return out.toString();
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/ClusterSize.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/ClusterSize.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/ClusterSize.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -4,23 +4,15 @@
public enum ClusterSize {
- _1Kb(1),
- _2Kb(2),
- _4Kb(4),
- _8Kb(8),
- _16Kb(16),
- _32Kb(32),
- _64Kb(64);
+ _1Kb(1), _2Kb(2), _4Kb(4), _8Kb(8), _16Kb(16), _32Kb(32), _64Kb(64);
private final int size;
- private ClusterSize(int sizeInKb)
- {
- size = (int) (sizeInKb * BinaryScaleFactor.K.getMultiplier()); //Converted into KB
+ private ClusterSize(int sizeInKb) {
+ size = (int) (sizeInKb * BinaryScaleFactor.K.getMultiplier()); //Converted into KB
}
- final public int getSize()
- {
+ public final int getSize() {
return size;
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/CodePage.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/CodePage.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/CodePage.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -11,51 +11,44 @@
* @author gvt
*/
public class CodePage {
- private final Charset charset;
+ private final Charset charset;
-
- protected CodePage ( Charset charset ) {
- this.charset = charset;
+ protected CodePage(Charset charset) {
+ this.charset = charset;
}
-
- public static CodePage forName ( String codePageName ) {
- return new CodePage ( Charset.forName ( codePageName ) );
+ public static CodePage forName(String codePageName) {
+ return new CodePage(Charset.forName(codePageName));
}
-
public CodePageEncoder newEncoder() {
- return new Encoder();
+ return new Encoder();
}
-
public CodePageDecoder newDecoder() {
- return new Decoder();
+ return new Decoder();
}
-
-
+
private class Encoder extends CodePageEncoder {
- protected Encoder() {
- super ( charset );
- }
+ protected Encoder() {
+ super(charset);
+ }
}
-
private class Decoder extends CodePageDecoder {
- protected Decoder() {
- super ( charset );
- }
+ protected Decoder() {
+ super(charset);
+ }
}
-
public String toString() {
- StrWriter out = new StrWriter();
+ StrWriter out = new StrWriter();
- out.println ( "*******************************************" );
- out.println ( "CodePage" );
- out.println ( "*******************************************" );
- out.print ( "Charset\t" + charset );
+ out.println("*******************************************");
+ out.println("CodePage");
+ out.println("*******************************************");
+ out.print("Charset\t" + charset);
- return out.toString();
+ return out.toString();
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/CodePageDecoder.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/CodePageDecoder.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/CodePageDecoder.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -4,46 +4,35 @@
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CoderResult;
import java.nio.charset.CharacterCodingException;
-
-
/**
* @author gvt
*/
public class CodePageDecoder {
- private final Charset cs;
- private final CharsetDecoder decoder;
+ private final Charset cs;
+ private final CharsetDecoder decoder;
-
- protected CodePageDecoder ( Charset cs ) {
- this.cs = cs;
- this.decoder = cs.newDecoder();
- reset();
+ protected CodePageDecoder(Charset cs) {
+ this.cs = cs;
+ this.decoder = cs.newDecoder();
+ reset();
}
-
public void reset() {
- decoder.reset();
+ decoder.reset();
}
-
- public CharBuffer decode ( ByteBuffer in )
- throws CharacterCodingException {
- return decoder.decode ( in );
+ public CharBuffer decode(ByteBuffer in) throws CharacterCodingException {
+ return decoder.decode(in);
}
-
- public String decode ( byte[] b, int offset, int length )
- throws CharacterCodingException {
- CharBuffer out = decode ( ByteBuffer.wrap ( b, offset, length ) );
- return out.toString();
+ public String decode(byte[] b, int offset, int length) throws CharacterCodingException {
+ CharBuffer out = decode(ByteBuffer.wrap(b, offset, length));
+ return out.toString();
}
-
- public String decode ( byte[] b )
- throws CharacterCodingException {
- return decode ( b, 0, b.length );
+ public String decode(byte[] b) throws CharacterCodingException {
+ return decode(b, 0, b.length);
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/CodePageEncoder.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/CodePageEncoder.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/CodePageEncoder.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -8,100 +8,85 @@
import java.nio.charset.CharacterCodingException;
-
/**
* @author gvt
*/
public class CodePageEncoder {
- private final Charset cs;
- private final CharsetEncoder encoder;
- private boolean lossy;
+ private final Charset cs;
+ private final CharsetEncoder encoder;
+ private boolean lossy;
-
- protected CodePageEncoder ( Charset cs ) {
- this.cs = cs;
- this.encoder = cs.newEncoder();
- reset();
+ protected CodePageEncoder(Charset cs) {
+ this.cs = cs;
+ this.encoder = cs.newEncoder();
+ reset();
}
-
public void reset() {
- encoder.reset();
- lossy = false;
+ encoder.reset();
+ lossy = false;
}
-
public boolean isLossy() {
- return lossy;
+ return lossy;
}
+ private ByteBuffer encode(CharBuffer in, boolean map, byte replacement)
+ throws CharacterCodingException {
+ int n = (int) (in.remaining() * encoder.averageBytesPerChar());
+ ByteBuffer out = ByteBuffer.allocate(n);
- private ByteBuffer encode ( CharBuffer in, boolean map, byte replacement )
- throws CharacterCodingException {
- int n = (int)(in.remaining() * encoder.averageBytesPerChar());
- ByteBuffer out = ByteBuffer.allocate(n);
+ if (n == 0) {
+ return out;
+ }
+
+ reset();
- if ( n == 0 )
- return out;
+ for (;;) {
+ CoderResult cr;
- reset();
+ if (in.hasRemaining()) {
+ cr = encoder.encode(in, out, true);
+ } else {
+ cr = encoder.flush(out);
+ }
- for (;;) {
- CoderResult cr;
-
- if ( in.hasRemaining() )
- cr = encoder.encode ( in, out, true );
- else
- cr = encoder.flush ( out );
+ if (cr.isUnderflow()) {
+ break;
+ }
- if ( cr.isUnderflow() )
- break;
-
- if ( cr.isOverflow() ) {
- n *= 2;
- ByteBuffer o = ByteBuffer.allocate ( n );
- out.flip();
- o.put ( out );
- out = o;
- continue;
- }
-
- if ( map & cr.isUnmappable() ) {
- lossy = true;
- in.get();
- out.put ( replacement );
- continue;
- }
-
- cr.throwException();
- }
+ if (cr.isOverflow()) {
+ n *= 2;
+ ByteBuffer o = ByteBuffer.allocate(n);
+ out.flip();
+ o.put(out);
+ out = o;
+ continue;
+ }
- out.flip();
-
- return out;
+ if (map & cr.isUnmappable()) {
+ lossy = true;
+ in.get();
+ out.put(replacement);
+ continue;
+ }
+ cr.throwException();
+ }
+ out.flip();
+ return out;
}
-
- public byte[] encode ( String s, byte replacement )
- throws CharacterCodingException {
- ByteBuffer out = encode ( CharBuffer.wrap ( s ), true, replacement );
-
- byte[] b = new byte[out.remaining()];
-
- out.get ( b );
-
- return b;
+ public byte[] encode(String s, byte replacement) throws CharacterCodingException {
+ ByteBuffer out = encode(CharBuffer.wrap(s), true, replacement);
+ byte[] b = new byte[out.remaining()];
+ out.get(b);
+ return b;
}
-
- public byte[] encode ( String s )
- throws CharacterCodingException {
- ByteBuffer out = encode ( CharBuffer.wrap ( s ), false, (byte)'?' );
-
- byte[] b = new byte[out.remaining()];
-
- out.get ( b );
-
- return b;
+ public byte[] encode(String s) throws CharacterCodingException {
+ ByteBuffer out = encode(CharBuffer.wrap(s), false, (byte) '?');
+ byte[] b = new byte[out.remaining()];
+ out.get(b);
+ return b;
}
}
Modified: trunk/fs/src/fs/org/jnode/fs/jfat/Fat.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/jfat/Fat.java 2008-06-07 03:48:55 UTC (rev 4207)
+++ trunk/fs/src/fs/org/jnode/fs/jfat/Fat.java 2008-06-07 10:22:01 UTC (rev 4208)
@@ -7,360 +7,285 @@
import java.nio.ByteBuffer;
import java.util.Arrays;
-import org.apache.log4j.Logger;
import org.jnode.driver.block.BlockDeviceAPI;
-import org.jnode.fs.jfat.BootSector;
-import org.jnode.fs.FileSystemFullException;
import org.jnode.fs.FileSystemException;
-import org.jnode.util.LittleEndian;
-import org.jnode.util.NumberUtils;
/**
* @author gvt
*/
public abstract class Fat {
- private static final Logger log =
- Logger.getLogger ( Fat.class );
private final BlockDeviceAPI api;
- private final BootSector bs;
+ private final BootSector bs;
- private final FatCache cache;
+ private final FatCache cache;
- private int lastfree;
-
- private final ByteBuffer clearbuf;
+ private int lastfree;
-
- protected Fat ( BootSector bs, BlockDeviceAPI api ) {
- this.bs = bs;
- this.api = api;
+ private final ByteBuffer clearbuf;
- /*
- * create a suitable cache
- */
- cache = new FatCache ( this, 8192, 512 );
-
+ protected Fat(BootSector bs, BlockDeviceAPI api) {
+ this.bs = bs;
+ this.api = api;
- /*
- * set lastfree
- */
- rewindFree();
+ /*
+ * create a suitable cache
+ */
+ cache = new FatCache(this, 8192, 512);
- /*
- * and blank the clear buffer
- */
- byte[] cleardata = new byte[getClusterSize()];
- Arrays.fill ( cleardata, 0, cleardata.length, (byte)0x00 );
+ /*
+ * set lastfree
+ */
+ rewindFree();
- /*
- * setup the clear buffer
- */
- clearbuf = ByteBuffer.wrap ( cleardata ).asReadOnlyBuffer();
+ /*
+ * and blank the clear buffer
+ */
+ byte[] cleardata = new byte[getClusterSize()];
+ Arrays.fill(cleardata, 0, cleardata.length, (byte) 0x00);
+
+ /*
+ * setup the clear buffer
+ */
+ clearbuf = ByteBuffer.wrap(cleardata).asReadOnlyBuffer();
}
-
- public static Fat create ( BlockDeviceAPI api )
- throws IOException, FileSystemException {
- BootSector bs = new BootSector ( 512 );
-
- bs.read ( api );
+ public static Fat create(BlockDeviceAPI api) throws IOException, FileSystemException {
+ BootSector bs = new BootSector(512);
- if ( bs.isFat32() )
- return new Fat32 ( bs, api );
- /*
- else if ( bs.isFat16() )
- return new Fat16 ( bs, api );
- else if ( bs.isFat12() )
- return new Fat12 ( bs, api );
- */
- throw new FileSystemException ( "FAT not recognized" );
+ bs.read(api);
+
+ if (bs.isFat32()) {
+ return new Fat32(bs, api);
+ }
+ /*
+ * else if ( bs.isFat16() ) return new Fat16 ( bs, api ); else if (
+ * bs.isFat12() ) return new Fat12 ( bs, api );
+ */
+ throw new FileSystemException("FAT not recognized");
}
-
public final BootSector getBootSector() {
- return bs;
+ return bs;
}
-
public final BlockDeviceAPI getApi() {
- return api;
+ return api;
}
-
public final int getClusterSize() {
- return
- getBootSector().getBytesPerSector() *
- getBootSector().getSectorsPerCluster();
+ return getBootSector().getBytesPerSector() * getBootSector().getSectorsPerCluster();
}
+ public final long getFirstSector(int fatnum) {
+ if (fatnum < 0 || fatnum >= getBootSector().getNrFats()) {
+ throw new IndexOutOfBoundsException("illegal fat: " + fatnum);
+ }
+ return (long) getBootSector().getNrReservedSectors() + getBootSector().getSectorsPerFat() *
+ (long) fatnum;
+ }
- public final long getFirstSector ( int fatnum ) {
- if ( fatnum < 0 || fatnum >= getBootSector().getNrFats() )
- throw new
- IndexOutOfBoundsException ( "illegal fat: " + fatnum );
- return
- (long)getBootSector().getNrReservedSectors() +
- getBootSector().getSectorsPerFat() * (long)fatnum;
+ public final boolean isFirstSector(int fatnum, long sector) {
+ return (sector == getFirstSector(fatnum));
}
-
- public final boolean isFirstSector ( int fatnum, long sector ) {
- return ( sector == getFirstSector ( fatnum ) );
+ public final long getLastSector(int fatnum) {
+ return getFirstSector(fatnum) + getBootSector().getSectorsPerFat() - 1;
}
-
- public final long getLastSector ( int fatnum ) {
- return
- getFirstSector ( fatnum ) +
- getBootSector().getSectorsPerFat() - 1;
+ public final boolean isLastSector(int fatnum, long sector) {
+ return (sector == getLastSector(fatnum));
}
-
- public final boolean isLastSector ( int fatnum, long sector ) {
- return ( sector == getLastSector ( fatnum ) );
+ public final long getFirst(int fatnum) {
+ return getFirstSector(fatnum) * (long) getBootSector().getBytesPerSector();
}
-
- public final long getFirst ( int fatnum ) {
- return
- getFirstSector ( fatnum ) *
- (long)getBootSector().getBytesPerSector();
+ public final long getLast(int fatnum) {
+ return getLast(fatnum) + offset(size() - 1);
}
-
- public final long getLast ( int fatnum ) {
- return
- ge...
[truncated message content] |