
com.jaeksoft.searchlib.scheduler.TaskAbstract Maven / Gradle / Ivy
/**
* License Agreement for OpenSearchServer
*
* Copyright (C) 2010-2013 Emmanuel Keller / Jaeksoft
*
* http://www.open-search-server.com
*
* This file is part of OpenSearchServer.
*
* OpenSearchServer is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenSearchServer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenSearchServer.
* If not, see .
**/
package com.jaeksoft.searchlib.scheduler;
import java.io.IOException;
import com.jaeksoft.searchlib.Client;
import com.jaeksoft.searchlib.SearchLibException;
import com.jaeksoft.searchlib.config.Config;
import com.jaeksoft.searchlib.util.Variables;
public abstract class TaskAbstract {
/**
* The name of the task
*
* @return the name
*/
public abstract String getName();
/**
* List of the properties
*
* @return an array containing the definition of the properties
*/
public abstract TaskPropertyDef[] getPropertyList();
public boolean isProperty() {
TaskPropertyDef[] props = getPropertyList();
if (props == null)
return false;
return props.length > 0;
}
/**
* The possible values for a property.
*
* @param client
* @param property
* @param properties
* @return an array with the possible value name
*/
public abstract String[] getPropertyValues(Config config,
TaskPropertyDef propertyDef, TaskProperties properties)
throws SearchLibException;
/**
* Implements the task execution
*
* @param client
* @param properties
* @param variables
* @param taskLog
* @throws SearchLibException
* @throws IOException
* @throws InterruptedException
*/
public abstract void execute(Client client, TaskProperties properties,
Variables variables, TaskLog taskLog) throws SearchLibException,
IOException, InterruptedException;
/**
* Returns the default value of the property
*
* @param config
* @param propertyDef
* @return
*/
public abstract String getDefaultValue(Config config,
TaskPropertyDef propertyDef);
/**
* Find a propertyDef from its configName
*
* @param name
* @return
*/
public TaskPropertyDef findPropertyByConfigName(String configName) {
TaskPropertyDef[] propDefs = getPropertyList();
if (propDefs == null)
return null;
for (TaskPropertyDef propDef : propDefs)
if (propDef.configName.equalsIgnoreCase(configName))
return propDef;
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy