|
|
QAPlugin API
|
|
|
===========
|
|
|
Module annotations
|
|
|
---------------------
|
|
|
Module annoations are used on AIModule's. These modules are used to either create an API.ai question or to create an external module jar.
|
|
|
Annotations can be used to give the name, author, description and constraints for the module.
|
|
|
|
|
|
### ModuleName
|
|
|
Used to give the name of the module. The name will also be used in lowercase for any API.ai actions you create.
|
|
|
Without a name the AIModule will not load!
|
|
|
**Package:** `be.maximvdw.qaplugin.api.annotations.ModuleName`
|
|
|
|
|
|
#### Example usage
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### ModuleAuthor
|
|
|
Used to give the author name of the module.
|
|
|
**Package:** `be.maximvdw.qaplugin.api.annotations.ModuleAuthor`
|
|
|
|
|
|
#### Example usage
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleAuthor("Maximvdw")
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### ModuleDescription
|
|
|
Used to give description to the module.
|
|
|
**Package:** `be.maximvdw.qaplugin.api.annotations.ModuleDescription`
|
|
|
|
|
|
#### Example usage
|
|
|
```java
|
|
|
@ModuleDescription("This module is a test")
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### ModuleVersion
|
|
|
Used to give the version of the module.
|
|
|
**Package:** `be.maximvdw.qaplugin.api.annotations.ModuleVersion`
|
|
|
|
|
|
#### Example usage
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleVersion("1.0.0")
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
### ModuleConstraints
|
|
|
When combining multiple `ModuleConstraint`'s together user this.
|
|
|
**Package:** `be.maximvdw.qaplugin.api.annotations.ModuleConstraints`
|
|
|
#### Example usage
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleConstraints({
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN, value = "Essentials")
|
|
|
})
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### ModuleConstraint
|
|
|
This is a rule you add to an AIModule. There are multiple types of rules/constraints, when one of them is not met
|
|
|
the AIModule will not load.
|
|
|
|
|
|
It is used to require specific dependencies, versions ,... .
|
|
|
**Package:** `be.maximvdw.qaplugin.api.annotations.ModuleConstraint`
|
|
|
|
|
|
#### Constraint types
|
|
|
These are the available constraint types you can check for.
|
|
|
|
|
|
##### PLUGIN
|
|
|
Checks if a specific plugin is loaded
|
|
|
**Example:** Check for a plugin called "Essentials"
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN, value = "Essentials")
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
##### PLUGIN_VERSION
|
|
|
Checks if the version (string) of the plugin *starts with* a 'value'.
|
|
|
Requires you have set a PLUGIN constraint as well!
|
|
|
**Example:** Will check if the version of Essentials starts with "1."
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleConstraints({
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN, value = "Essentials"),
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN_VERSION, value = "1.")
|
|
|
})
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
##### PLUGIN_MAIN
|
|
|
Checks if the "main" class matches the one you provided in the value.
|
|
|
Requires you have set a PLUGIN constraint as well!
|
|
|
**Example:** Will check if the main class of QAPlugin is "be.maximvdw.qaplugin.QAPlugin"
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleConstraints({
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN, value = "QAPlugin"),
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN_MAIN, value = "be.maximvdw.qaplugin.QAPlugin")
|
|
|
})
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
##### PLUGIN_VERSION_IS_LOWER
|
|
|
Checks if the major.minor.build version is lower.
|
|
|
Requires you have set a PLUGIN constraint as well!
|
|
|
**Example:** Make sure the version is lower than 2.0.0
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleConstraints({
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN, value = "Essentials"),
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN_VERSION_IS_LOWER, value = "2.0.0")
|
|
|
})
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
##### PLUGIN_VERSION_IS_HIGHER
|
|
|
Checks if the major.minor.build version is higher.
|
|
|
Requires you have set a PLUGIN constraint as well!
|
|
|
**Example:** Make sure the version is higher than 2.0.0
|
|
|
```java
|
|
|
@ModuleName("ModuleName")
|
|
|
@ModuleConstraints({
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN, value = "Essentials"),
|
|
|
@ModuleConstraint(type = ModuleConstraint.ContraintType.PLUGIN_VERSION_IS_HIGHER, value = "2.0.0")
|
|
|
})
|
|
|
public class MyModule extends AIModule{
|
|
|
public MyModule() {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
``` |