|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object | +--org.mmbase.util.magicfile.Detector
A Detector stores one entry from the magic.xml file, and contains
the functionality to determins if a certain byte[] satisfies it.
Implementation made on the basis of actual magic file and its manual.
TODO:
- link the info with mimetypes
- add test modifiers
- add commandline switches for warning, error and debugging messages
Ignored features of magic:
- date types
- indirect offsets (prefix of '&' in sublevel match or (address+bytes) where offset = value of address plus bytes
- AND'ing of type
BUGS:
- test string isn't read when end of line is reached in absence of a message string
Tested:
- .doc
- .rtf
- .pdf
- .sh
- .gz
- .bz2
- .html
- .rpm
- .wav
Not supported by magic file:
- StarOffice
| Method Summary | |
void |
addChild(Detector detector,
int level)
Add an embedded detector object that searches for more details after an initial match. |
char |
getComparator()
|
java.lang.String |
getDesignation()
todo: I noticed there is also a %5.5s variation in magic... |
java.lang.String |
getExtension()
|
java.util.List |
getExtensions()
|
java.lang.String |
getMimeType()
|
int |
getOffset()
|
java.lang.String |
getTest()
|
java.lang.String |
getType()
|
void |
setComparator(char comparator)
|
void |
setDesignation(java.lang.String designation)
|
void |
setExtension(java.lang.String extension)
Adds a possible extension. |
void |
setInvalid()
|
void |
setMimeType(java.lang.String mimetype)
|
void |
setOffset(java.lang.String offset)
|
void |
setTest(java.lang.String test)
|
void |
setType(java.lang.String type)
|
boolean |
test(byte[] lithmus)
|
protected boolean |
testByte(byte[] lithmus)
Test whether a byte matches |
protected boolean |
testLong(byte[] lithmus,
int endian)
Test whether a long matches |
protected boolean |
testShort(byte[] lithmus,
int endian)
Test whether a short matches |
protected boolean |
testString(byte[] lithmus)
Test whether a string matches |
java.lang.String |
toString()
|
void |
toXML(java.io.FileWriter f)
XML notatie: |
void |
toXML(java.io.FileWriter f,
int level)
|
boolean |
valid()
|
protected java.lang.String |
xmlEntities(java.lang.String s)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Method Detail |
public void addChild(Detector detector,
int level)
public void setExtension(java.lang.String extension)
public java.lang.String getExtension()
public java.util.List getExtensions()
public void setMimeType(java.lang.String mimetype)
public java.lang.String getMimeType()
public void setDesignation(java.lang.String designation)
public void setOffset(java.lang.String offset)
public int getOffset()
public void setType(java.lang.String type)
public java.lang.String getType()
public void setTest(java.lang.String test)
public java.lang.String getTest()
public void setComparator(char comparator)
public char getComparator()
public boolean test(byte[] lithmus)
public java.lang.String getDesignation()
public void setInvalid()
public boolean valid()
protected boolean testString(byte[] lithmus)
protected boolean testShort(byte[] lithmus,
int endian)
protected boolean testLong(byte[] lithmus,
int endian)
protected boolean testByte(byte[] lithmus)
protected java.lang.String xmlEntities(java.lang.String s)
public void toXML(java.io.FileWriter f)
throws java.io.IOException
public void toXML(java.io.FileWriter f,
int level)
throws java.io.IOException
level - Indicates depth of (child) elementpublic java.lang.String toString()
toString in class java.lang.Object
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||