Package org.beangle.packagekit.engine.task

Source Code of org.beangle.packagekit.engine.task.AbstractResourceTask

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.packagekit.engine.task;

import org.beangle.packagekit.Repository;
import org.beangle.packagekit.Resource;
import org.beangle.packagekit.engine.ResourceTask;
import org.beangle.packagekit.engine.Task;
import org.beangle.packagekit.engine.TaskStatus;
import org.beangle.packagekit.engine.UpdateAction;
import org.beangle.packagekit.wagon.Wagon;
import org.beangle.packagekit.wagon.WagonFactory;

public abstract class AbstractResourceTask implements ResourceTask {

  private int priority;

  protected Resource resource;

  protected String cacheDir;

  protected TaskStatus status = TaskStatus.WAIT;

  public int getPriority() {
    return priority;
  }

  public void setPriority(int priority) {
    this.priority = priority;
  }

  public void increasePriority() {
    priority++;
  }

  public Resource getResource() {
    return resource;
  }

  public void setResource(Resource resource) {
    this.resource = resource;
  }

  public int compareTo(Task o) {
    return o.getPriority() - priority;
  }

  public TaskStatus getStatus() {
    return status;
  }

  public void after() {
    status = TaskStatus.END;
  }

  public void before() {
    status = TaskStatus.START;
    if (getAction() == UpdateAction.INSTALL || getAction() == UpdateAction.UPDATE) {
      Repository repository = resource.getRepository();
      if (null != repository) {
        Wagon wagon = WagonFactory.getWagon(repository.getProtocal());
        wagon.transfer(repository.getLocation(resource), cacheDir + "/"
            + resource.getPackageName());
      }
    }
  }

}
TOP

Related Classes of org.beangle.packagekit.engine.task.AbstractResourceTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.