See: Description
Enum | Description |
---|---|
InjectionPoint |
The location in a method where a particular instrumentation will be made.
|
ResponseType |
The type of response
|
Annotation Type | Description |
---|---|
DebugEnabledCheck |
The Debug Enabled Check determines if the application allows being
debugged.
|
DebugEnabledResponse |
The Debug Enabled Response allows you to react to a Debug Enabled Check in a different area or
multiple areas.
|
DebuggingCheck |
The Debugging Check determines if the application is being debugged.
|
DebuggingResponse |
The Debugging Response allows you to react to a Debugging Check in a different area or
multiple areas.
|
EmulatorCheck |
The Emulator Check determines if the device running the application is an emulator.
|
EmulatorResponse |
The Emulator Response allows you to react to an Emulator Check in a different area
or multiple areas.
|
ExpiryKeyFile |
The Shelf Life key file purchased from PreEmptive Solutions.
|
HookCheck |
The Hook Check determines if hooking is being used.
|
HookResponse |
The Hook Response allows you to react to a Hook Check in a different area or
multiple areas.
|
RootCheck |
The Root Check determines if the device running the application is rooted.
|
RootResponse |
The Root Response allows you to react to a Root Check in a different area or
multiple areas.
|
ShelfLifeCheck |
Perform a Shelf Life expiration check.
|
TamperCheck |
The Tamper Check confirms that the class has been signed by a given entity.
|
TamperResponse |
The Tamper Response allows you to react to a Tamper Check in a different location or in multiple code locations.
|
DashO uses these annotations as well as values from the DashO project file to inject Checks and Responses into your classes files.
The following dynamic properties can be used in annotations.
CLASS_NAME
- the full name of the current class, including its package name.CLASS_SIMPLENAME
- the simple name of the class, i.e. the class name without its package name.CLASS_PACKAGE
- the package name of the class, including a trailing period. This will be an empty string for classes in the default package: use ${CLASS_PACKAGE:-}
to ensure that the property will be expanded.METHOD_NAME
- the name of the current method. For constructors this is the same as CLASS_SIMPLENAME
.PROP_NAME
- if the method is a setter or getter the name of the related property. For constructors this is the same as CLASS_SIMPLENAME
.You can use METHOD_NAME
and PROP_NAME
in annotations used at the class level. The actual values will be expanded only when the annotation is applied to a specific method.
Several annotations specify sources or actions for dynamic information that will be used with the generated information. These can reference either a field or a method defined in the current class or a static method or field in a different class.
Static fields and methods can be used from any method. Instance fields and methods can only be used from instance methods in the same class. Fields must have the expected type as required by the annotation. Methods must have the expected return type and parameters as required by the annotation. Specified fields and methods must be accessible from the injection location at runtime.
Use the following format for specifying the field or method:
field
- use a field in the current class
as the source. If the source is used from a static method it must be
static, otherwise it may be an instance or static field.@field
- use a static field in the current
class as the source. This can be used from static or instance methods.class.field
- use a static field in
the given class as the source. class is a fully qualified Java
class name. This can be used from static or instance methods.method()
- use a method in the current
class as the source. For sources, the method must return a value and must take no
arguments. For actions, the method must take a value and return void.
If used from a static method it must be static, otherwise it may be an instance or static method.@method()
- use a static method in the
current class as the source or action. This can be used from static or instance
methods.class.method()
- use a static
method in the given class as the source or action. class is a fully
qualified Java class name. This can be used from static or instance
methods.Note: The @
cannot be used when referencing a static method or field in a different class.
The @
is optional when referencing a static method or field in the same class.
An incorrectly specified source or action will cause an error.
Copyright 2019 PreEmptive Solutions, LLC. All Rights Reserved.