package net.agef.jobexchange.application;
import java.util.Collection;
import java.util.List;
import net.agef.jobexchange.domain.Address;
import net.agef.jobexchange.domain.Country;
import net.agef.jobexchange.domain.Currency;
import net.agef.jobexchange.domain.DataProvider;
import net.agef.jobexchange.domain.JobActiveEnum;
import net.agef.jobexchange.domain.JobApplication;
import net.agef.jobexchange.domain.JobImpl;
import net.agef.jobexchange.domain.Territory;
import net.agef.jobexchange.exceptions.APDUserNotFoundException;
import net.agef.jobexchange.exceptions.CantChangeOnlineStateException;
import net.agef.jobexchange.exceptions.JobOfferNotFoundException;
import net.agef.jobexchange.exceptions.ObjectNotSavedException;
import net.agef.jobexchange.exceptions.PassedAttributeIsNullException;
import net.agef.jobexchange.webservice.entities.JobSearchResultDTO;
public interface JobWorker {
public Collection<JobImpl> getAllJobOffers();
public Collection<JobImpl> getJobOffersByAPDUser(Long userId) throws APDUserNotFoundException;
public Long addJobOffer(JobImpl jobOffer) throws ObjectNotSavedException, PassedAttributeIsNullException;
public Long addJobOffer(JobImpl jobOffer, DataProvider dataProvider) throws ObjectNotSavedException, PassedAttributeIsNullException;
public void setJobOfferOnlineStatus(JobImpl jobOffer, Boolean onlineStatus) throws ObjectNotSavedException, CantChangeOnlineStateException;
public JobImpl getJobOfferByCobraId(Long cobraJobId) throws JobOfferNotFoundException;
public List<String> getAutoCompleteResults(String partialString);
public Collection<JobImpl> getMoreLikeThis(Long jobOfferId);
public Collection<JobImpl> getJobOfferByCriteria(String criteria, Country country, Territory territory);
public Integer getJobOfferResultAmountByCriteria(final String criteria,final Country country,final Territory territory);
public Collection<JobSearchResultDTO> getJobOfferByCriteria(String criteria, Country country, Territory territory, Integer resultAmount, Integer pageIndexStart);
public Collection<JobImpl> getJobOfferByCriteriaGetjobs(String criteria, Country country, Territory territory);
public int getOnlineJobOffersByUser(Long userId);
public Long increaseJobApplicationLinkCounter(Long jobOfferId) throws ObjectNotSavedException, JobOfferNotFoundException;
public JobImpl getJobOfferDetails(Long JobOfferId) throws JobOfferNotFoundException;
public void deleteJobOffer(Long jobOfferId) throws JobOfferNotFoundException, PassedAttributeIsNullException;
public void deleteJobOfferByCobraId(Long cobraJobId) throws JobOfferNotFoundException, PassedAttributeIsNullException;
public void modifyJobOffer(JobImpl jobOffer) throws JobOfferNotFoundException, PassedAttributeIsNullException;
public void applyToJobOffer(Long jobOfferId, Long userGuid, String contactNote) throws JobOfferNotFoundException, APDUserNotFoundException, ObjectNotSavedException;
public Collection<JobApplication> getReceivedJobOfferApplications(Long apdUserId) throws APDUserNotFoundException;
public Collection<JobImpl> getJobOfferBySector(Long[] sectorIds);
public Currency getCurrencyByNameOrIsoNumber(String currencyValue);
public Address getJobOwnerAddress(Long jobOfferId) throws JobOfferNotFoundException;
public Collection<JobImpl> getOutdatedJobOffers();
public Collection<JobImpl> getUpdatedJobOffers();
public Collection<JobImpl> getJobOffersByAPDUserAndCriteria(Long apdUserId, JobActiveEnum jobActive, Country country, Territory territory, int numberOfResults, int indexStart) throws APDUserNotFoundException;
}