public abstract class

AbstractUnitIdentifier

extends Object
implements IUnitIdentifier
java.lang.Object
   ↳ com.pnfsoftware.jeb.core.units.AbstractUnitIdentifier

Class Overview

Skeleton implementation for an IUnitIdentifier class (aka, a Parser). It is recommended parsers extend this class (or one of the its many subclasses) instead of implementing IUnitIdentifier.

Summary

Fields
protected IPropertyDefinitionManager pdm
protected IPropertyManager pm
protected double priority
protected String type
Public Constructors
AbstractUnitIdentifier(String type, double priority)
Create a new unit identifier.
Public Methods
static boolean checkBytes(byte[] data, int offset, byte... marker)
Convenience method used to check for expected bytes at a specific offset within the provided data buffer.
static boolean checkBytes(byte[] data, int offset, int... marker)
static boolean checkBytes(IInput input, int offset, String header)
static boolean checkBytes(IInput input, int offset, byte... marker)
static boolean checkBytes(IInput input, int offset, int... marker)
String getFormatType()
Retrieve the identity of the unit type.
double getPriority()
Get the identifier priority.
IPropertyDefinitionManager getPropertyDefinitionManager()
Retrieve the property definition manager used by the identifier.
ITypeIdProvider getTypeIdProvider()
The type-id provider for this type of units.
void initialize(IPropertyDefinitionManager parentPdm)
Initialize the property manager for this identifier.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.pnfsoftware.jeb.core.IPlugin
From interface com.pnfsoftware.jeb.core.units.IUnitIdentifier

Fields

protected IPropertyManager pm

protected double priority

protected String type

Public Constructors

public AbstractUnitIdentifier (String type, double priority)

Create a new unit identifier.

Parameters
type mandatory type, which will be used as the sub-region type when the identifier is initialized. The type should be a valid region name, please see PropertyDefinitionManager
priority mandatory priority

Public Methods

public static boolean checkBytes (byte[] data, int offset, byte... marker)

Convenience method used to check for expected bytes at a specific offset within the provided data buffer.

Parameters
data the input data buffer
offset the offset
marker the bytes to check for
Returns
  • true if the bytes at &data[offset] are equals to the provided bytes

public static boolean checkBytes (byte[] data, int offset, int... marker)

See Also
  • AbstractUnitIdentifier#checkBytes(byte[], int, byte...)

public static boolean checkBytes (IInput input, int offset, String header)

Parameters
header converted to byte[] using encodeUTF8(String)
See Also
  • AbstractUnitIdentifier#checkBytes(byte[], int, byte...)

public static boolean checkBytes (IInput input, int offset, byte... marker)

See Also
  • AbstractUnitIdentifier#checkBytes(byte[], int, byte...)

public static boolean checkBytes (IInput input, int offset, int... marker)

See Also
  • AbstractUnitIdentifier#checkBytes(byte[], int, byte...)

public String getFormatType ()

Retrieve the identity of the unit type. The type should be unique across all units.

Returns
  • the non-null type

public double getPriority ()

Get the identifier priority. Priority can be negative. Priorities are used by identifier managers (eg, Processors) to ensure that identifiers are called in a (partially) predictable order, if need be. The higher the number, the higher the priority.

Recommendation: typical priority is zero. Relying on priority for proper identification should be used as a last resort measure.

Returns
  • the identifier priority

public IPropertyDefinitionManager getPropertyDefinitionManager ()

Retrieve the property definition manager used by the identifier.

Returns
  • the PDM

public ITypeIdProvider getTypeIdProvider ()

The type-id provider for this type of units. Currently, This method is not intended to use by third-party clients.

Returns
  • a type-id provider, null if none

public void initialize (IPropertyDefinitionManager parentPdm)

Initialize the property manager for this identifier. This method is usually called after construction on the identifier.

Overrides are allowed if a plugin needs to define its own properties, but a call to the superclass method should take place first.

Parameters
parentPdm the parent PDM