Configuration Object Example

This is a simple configuration object example from the DTK examples. The example shows a Disk Collection agent configuration including a directory field and a fileNamePrefix field.

@DRStorableId("devkitexamples.DiskCollectionConfig")
@DRConfigTypeInfo(version = 10f, section = "Disk Collection")
public class DiskCollectionConfig extends DRAbstractConfigObject {

    public static final String DIRECTORY = "Directory";
    public static final String FILENAME_PREFIX = "Filename Prefix";
    private String _directory = "";
    private String _fileNamePrefix = "";

    public DiskCollectionConfig() {}

    @DRConfigFieldInfo(title = DIRECTORY, description = "The path to the source directory")
    public void setDirectory(String directory) { _directory = directory; }
    public String getDirectory() { return _directory; }

    @DRConfigFieldInfo(title = FILENAME_PREFIX, description = "The filename prefix")
    public void setFileNamePrefix(String fileNamePrefix) { _fileNamePrefix = fileNamePrefix; }
    public String getFileNamePrefix() { return _fileNamePrefix; }

    @Override
    public String validateField(String fieldName, Object fieldValue, DREnvironment env) throws DRException {
        if (fieldName.equalsIgnoreCase("directory")) {
            if (fieldValue == null || ((String) fieldValue).length() < 1)
                return "Directory may not be empty";
        }

        return null;
    }
}