com.perforce.p4java.io.apple
Class AppleFile

java.lang.Object
  extended by com.perforce.p4java.io.apple.AppleFile
Direct Known Subclasses:
AppleFileDecoder, AppleFileEncoder

public abstract class AppleFile
extends Object

This abstract class handles AppleSingle/Double files. It contains a common method to verify the Apple file, and figure out if it is an AppleSingle or AppleDouble formatted file.

The AppleSingle format is a representation of Macintosh files as one consecutive stream of bytes. AppleSingle combines the data fork, resource fork and the related Finder meta-file information into a single file.

The AppleDouble format stores the data fork, resource fork as two separate files. AppleDouble leaves the data fork in its original format, and the resource fork and Finder information were combined into a second file.

Apple defined the magic number for the AppleSingle format as 0x00051600, and the magic number for the AppleDouble format as 0x00051607.

 AppleSingle file header: 
 
 Field Length
 ----- ------
 Magic number ------- 4 bytes
 Version number ------ 4 bytes
 Filler ------------- 16 bytes
 Number of entries ----- 2 bytes
 
 Entry descriptor for each entry:
 Entry ID ------ 4 bytes
 Offset -------- 4 bytes
 Length -------- 4 bytes
 
 Apple reserved entry IDs:
 
 Data Fork -------- 1 Data fork
 Resource Fork ----- 2 Resource fork
 Real Name -------- 3 File's name as created on home file system
 Comment --------- 4 Standard Macintosh comment
 Icon, B&W -------- 5 Standard Macintosh black and white icon
 Icon, Color -------- 6 Macintosh color icon
 File Dates Info ------8 File creation date, modification date, and so on
 Finder Info -------- 9 Standard Macintosh Finder information
 Macintosh File Info ---10 Macintosh file information, attributes, and so on
 ProDOS File Info -----11 ProDOS file information, attributes, and so on
 MS-DOS File Info ----12 MS-DOS file information, attributes, and so on
 Short Name --------13 AFP short name
 AFP File Info ------- 14 AFP file information, attributes, and so on
 Directory ID --------15 AFP directory ID
 
See RFC 1740 for reference: http://tools.ietf.org/html/rfc1740


Nested Class Summary
 class AppleFile.FileDatesInfoEntry
          This class represents the file dates.
static class AppleFile.FileFormat
          The Apple file format.
 
Field Summary
protected  AppleFileData afpFileInfo
          Entry 14: AFP file information, attributes, and so on.
protected  AppleFileData comment
          Entry 4: Standard Macintosh comment.
protected  AppleFileData dataFork
          Entry 1: Data fork.
protected  AppleFileData directoryID
          Entry 15: AFP directory ID.
protected  AppleFileData fileData
          The raw Apple file.
protected  AppleFileData fileDatesInfo
          Entry 8: File creation date, modification date, and so on.
protected  AppleFile.FileDatesInfoEntry fileDatesInfoEntry
          The file dates info entry.
protected  AppleFileData finderInfo
          Entry 9: Standard Macintosh Finder information.
protected  AppleFile.FileFormat format
          The Apple file format: AppleSingle, AppleDouble, default to unknown.
protected  AppleFileData iconBW
          Entry 5: Standard Macintosh black and white icon.
protected  AppleFileData iconColor
          Entry 6: Macintosh color icon.
protected  AppleFileData macintoshInfo
          Entry 10: Macintosh file information, attributes, and so on.
protected  AppleFileData msDOSFileInfo
          Entry 12: MS-DOS file information, attributes, and so on.
protected  int numEntries
          The num entries.
protected  AppleFileData proDOSFileInfo
          Entry 11: ProDOS file information, attributes, and so on.
protected  AppleFileData realName
          Entry 3: File's name as created on home file system.
protected  AppleFileData resourceFork
          Entry 2: Resource fork.
protected  AppleFileData shortName
          Entry 13: AFP short name.
 
Constructor Summary
AppleFile()
           
 
Method Summary
protected  void extractFileDates(byte[] data, int offset, int length)
          Extract file dates.
 AppleFileData getAfpFileInfo()
          Gets the afp file info.
 AppleFileData getComment()
          Gets the comment.
 AppleFileData getDataFork()
          Gets the data fork.
 AppleFileData getDirectoryID()
          Gets the directory id.
 AppleFileData getFileData()
          Gets the file data.
 AppleFileData getFileDatesInfo()
          Gets the file dates info.
 AppleFileData getFinderInfo()
          Gets the finder info.
 AppleFile.FileFormat getFormat()
          Gets the format.
 AppleFileData getIconBW()
          Gets the icon bw.
 AppleFileData getIconColor()
          Gets the icon color.
 AppleFileData getMacintoshInfo()
          Gets the macintosh info.
 AppleFileData getMsDOSFileInfo()
          Gets the ms dos file info.
 int getNumEntries()
          Gets the num entries.
 AppleFileData getProDOSFileInfo()
          Gets the pro dos file info.
 AppleFileData getRealName()
          Gets the real name.
 AppleFileData getResourceFork()
          Gets the resource fork.
 AppleFileData getShortName()
          Gets the short name.
 void setAfpFileInfo(AppleFileData afpFileInfo)
          Sets the afp file info.
 void setComment(AppleFileData comment)
          Sets the comment.
 void setDataFork(AppleFileData dataFork)
          Sets the data fork.
 void setDirectoryID(AppleFileData directoryID)
          Sets the directory id.
 void setFileData(AppleFileData fileData)
          Sets the file data.
 void setFileDatesInfo(AppleFileData fileDatesInfo)
          Sets the file dates info.
 void setFinderInfo(AppleFileData finderInfo)
          Sets the finder info.
 void setFormat(AppleFile.FileFormat format)
          Sets the format.
 void setIconBW(AppleFileData iconBW)
          Sets the icon bw.
 void setIconColor(AppleFileData iconColor)
          Sets the icon color.
 void setMacintoshInfo(AppleFileData macintoshInfo)
          Sets the macintosh info.
 void setMsDOSFileInfo(AppleFileData msDOSFileInfo)
          Sets the ms dos file info.
 void setNumEntries(int numEntries)
          Sets the num entries.
 void setProDOSFileInfo(AppleFileData proDOSFileInfo)
          Sets the pro dos file info.
 void setRealName(AppleFileData realName)
          Sets the real name.
 void setResourceFork(AppleFileData resourceFork)
          Sets the resource fork.
 void setShortName(AppleFileData shortName)
          Sets the short name.
protected  void verify()
          Verify the validity of the Apple file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

format

protected AppleFile.FileFormat format
The Apple file format: AppleSingle, AppleDouble, default to unknown.


fileData

protected AppleFileData fileData
The raw Apple file.


dataFork

protected AppleFileData dataFork
Entry 1: Data fork.


resourceFork

protected AppleFileData resourceFork
Entry 2: Resource fork.


realName

protected AppleFileData realName
Entry 3: File's name as created on home file system.


comment

protected AppleFileData comment
Entry 4: Standard Macintosh comment.


iconBW

protected AppleFileData iconBW
Entry 5: Standard Macintosh black and white icon.


iconColor

protected AppleFileData iconColor
Entry 6: Macintosh color icon.


fileDatesInfo

protected AppleFileData fileDatesInfo
Entry 8: File creation date, modification date, and so on.


fileDatesInfoEntry

protected AppleFile.FileDatesInfoEntry fileDatesInfoEntry
The file dates info entry.


finderInfo

protected AppleFileData finderInfo
Entry 9: Standard Macintosh Finder information.


macintoshInfo

protected AppleFileData macintoshInfo
Entry 10: Macintosh file information, attributes, and so on.


proDOSFileInfo

protected AppleFileData proDOSFileInfo
Entry 11: ProDOS file information, attributes, and so on.


msDOSFileInfo

protected AppleFileData msDOSFileInfo
Entry 12: MS-DOS file information, attributes, and so on.


shortName

protected AppleFileData shortName
Entry 13: AFP short name.


afpFileInfo

protected AppleFileData afpFileInfo
Entry 14: AFP file information, attributes, and so on.


directoryID

protected AppleFileData directoryID
Entry 15: AFP directory ID.


numEntries

protected int numEntries
The num entries.

Constructor Detail

AppleFile

public AppleFile()
Method Detail

setNumEntries

public void setNumEntries(int numEntries)
Sets the num entries.

Parameters:
numEntries - the new num entries

verify

protected void verify()
               throws FileDecoderException
Verify the validity of the Apple file.

Throws:
FileDecoderException - the file decoder exception

extractFileDates

protected void extractFileDates(byte[] data,
                                int offset,
                                int length)
Extract file dates.

Parameters:
data - the data
offset - the offset
length - the length

getFormat

public AppleFile.FileFormat getFormat()
Gets the format.

Returns:
the format

setFormat

public void setFormat(AppleFile.FileFormat format)
Sets the format.

Parameters:
format - the new format

getFileData

public AppleFileData getFileData()
Gets the file data.

Returns:
the file data

setFileData

public void setFileData(AppleFileData fileData)
Sets the file data.

Parameters:
fileData - the new file data

getDataFork

public AppleFileData getDataFork()
Gets the data fork.

Returns:
the data fork

setDataFork

public void setDataFork(AppleFileData dataFork)
Sets the data fork.

Parameters:
dataFork - the new data fork

getResourceFork

public AppleFileData getResourceFork()
Gets the resource fork.

Returns:
the resource fork

setResourceFork

public void setResourceFork(AppleFileData resourceFork)
Sets the resource fork.

Parameters:
resourceFork - the new resource fork

getRealName

public AppleFileData getRealName()
Gets the real name.

Returns:
the real name

setRealName

public void setRealName(AppleFileData realName)
Sets the real name.

Parameters:
realName - the new real name

getComment

public AppleFileData getComment()
Gets the comment.

Returns:
the comment

setComment

public void setComment(AppleFileData comment)
Sets the comment.

Parameters:
comment - the new comment

getIconBW

public AppleFileData getIconBW()
Gets the icon bw.

Returns:
the icon bw

setIconBW

public void setIconBW(AppleFileData iconBW)
Sets the icon bw.

Parameters:
iconBW - the new icon bw

getIconColor

public AppleFileData getIconColor()
Gets the icon color.

Returns:
the icon color

setIconColor

public void setIconColor(AppleFileData iconColor)
Sets the icon color.

Parameters:
iconColor - the new icon color

getFileDatesInfo

public AppleFileData getFileDatesInfo()
Gets the file dates info.

Returns:
the file dates info

setFileDatesInfo

public void setFileDatesInfo(AppleFileData fileDatesInfo)
Sets the file dates info.

Parameters:
fileDatesInfo - the new file dates info

getFinderInfo

public AppleFileData getFinderInfo()
Gets the finder info.

Returns:
the finder info

setFinderInfo

public void setFinderInfo(AppleFileData finderInfo)
Sets the finder info.

Parameters:
finderInfo - the new finder info

getMacintoshInfo

public AppleFileData getMacintoshInfo()
Gets the macintosh info.

Returns:
the macintosh info

setMacintoshInfo

public void setMacintoshInfo(AppleFileData macintoshInfo)
Sets the macintosh info.

Parameters:
macintoshInfo - the new macintosh info

getProDOSFileInfo

public AppleFileData getProDOSFileInfo()
Gets the pro dos file info.

Returns:
the pro dos file info

setProDOSFileInfo

public void setProDOSFileInfo(AppleFileData proDOSFileInfo)
Sets the pro dos file info.

Parameters:
proDOSFileInfo - the new pro dos file info

getMsDOSFileInfo

public AppleFileData getMsDOSFileInfo()
Gets the ms dos file info.

Returns:
the ms dos file info

setMsDOSFileInfo

public void setMsDOSFileInfo(AppleFileData msDOSFileInfo)
Sets the ms dos file info.

Parameters:
msDOSFileInfo - the new ms dos file info

getShortName

public AppleFileData getShortName()
Gets the short name.

Returns:
the short name

setShortName

public void setShortName(AppleFileData shortName)
Sets the short name.

Parameters:
shortName - the new short name

getAfpFileInfo

public AppleFileData getAfpFileInfo()
Gets the afp file info.

Returns:
the afp file info

setAfpFileInfo

public void setAfpFileInfo(AppleFileData afpFileInfo)
Sets the afp file info.

Parameters:
afpFileInfo - the new afp file info

getDirectoryID

public AppleFileData getDirectoryID()
Gets the directory id.

Returns:
the directory id

setDirectoryID

public void setDirectoryID(AppleFileData directoryID)
Sets the directory id.

Parameters:
directoryID - the new directory id

getNumEntries

public int getNumEntries()
Gets the num entries.

Returns:
the num entries


Copyright © 2015 Perforce Software. All Rights Reserved.