public class StringType extends Object implements MagicMatcher
Modifier and Type | Class and Description |
---|---|
protected static class |
StringType.TestInfo
Internal holder for test information about strings.
|
MagicMatcher.MutableOffset
Constructor and Description |
---|
StringType() |
Modifier and Type | Method and Description |
---|---|
Object |
convertTestString(String typeStr,
String testStr)
Converts the test-string from the magic line to be the testValue object to be passed into
MagicMatcher.isMatch(Object, Long, boolean, Object, MutableOffset, byte[]) and MagicMatcher.getStartingBytes(Object) . |
Object |
extractValueFromBytes(int offset,
byte[] bytes,
boolean required)
Extract the value from the bytes either for doing the match or rendering it in the format.
|
protected String |
findOffsetMatch(StringType.TestInfo info,
int startOffset,
MagicMatcher.MutableOffset mutableOffset,
byte[] bytes,
char[] chars,
int maxPos)
Find offset match either in an array of bytes or chars, which ever is not null.
|
byte[] |
getStartingBytes(Object testValue)
Return the starting bytes of the pattern or null if none.
|
Object |
isMatch(Object testValue,
Long andValue,
boolean unsignedType,
Object extractedValue,
MagicMatcher.MutableOffset mutableOffset,
byte[] bytes)
Matches if the bytes match at a certain offset.
|
void |
renderValue(StringBuilder sb,
Object extractedValue,
MagicFormatter formatter)
Returns the string version of the extracted value.
|
protected static final String EMPTY
public Object convertTestString(String typeStr, String testStr)
MagicMatcher
MagicMatcher.isMatch(Object, Long, boolean, Object, MutableOffset, byte[])
and MagicMatcher.getStartingBytes(Object)
.convertTestString
in interface MagicMatcher
public Object extractValueFromBytes(int offset, byte[] bytes, boolean required)
MagicMatcher
extractValueFromBytes
in interface MagicMatcher
offset
- Number of bytes into the bytes array that we are extracting from.bytes
- Array of bytes we are extracting from.required
- Whether or not the extracted value is required for later. If it is not then the type may opt to not
extract the value and to do the matching directly.MagicMatcher.isMatch(Object, Long, boolean, Object, MutableOffset, byte[])
or null
if not enough bytes.public Object isMatch(Object testValue, Long andValue, boolean unsignedType, Object extractedValue, MagicMatcher.MutableOffset mutableOffset, byte[] bytes)
MagicMatcher
isMatch
in interface MagicMatcher
public void renderValue(StringBuilder sb, Object extractedValue, MagicFormatter formatter)
MagicMatcher
renderValue
in interface MagicMatcher
public byte[] getStartingBytes(Object testValue)
MagicMatcher
getStartingBytes
in interface MagicMatcher
protected String findOffsetMatch(StringType.TestInfo info, int startOffset, MagicMatcher.MutableOffset mutableOffset, byte[] bytes, char[] chars, int maxPos)
This content is licensed by Gray Watson under the Creative Commons Attribution-Share Alike 3.0 License.