/*
* Tanaguru - Automated webpage assessment
* Copyright (C) 2008-2015 Tanaguru.org
*
* This file is part of Tanaguru.
*
* Tanaguru is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact us by mail: tanaguru AT tanaguru DOT org
*/
package org.tanaguru.webapp.entity.contract;
import java.util.Collection;
import java.util.Date;
import org.tanaguru.sdk.entity.Entity;
import org.tanaguru.webapp.entity.functionality.Functionality;
import org.tanaguru.webapp.entity.option.OptionElement;
import org.tanaguru.webapp.entity.referential.Referential;
import org.tanaguru.webapp.entity.scenario.Scenario;
import org.tanaguru.webapp.entity.user.User;
/**
*
* @author jkowalczyk
*/
public interface Contract extends Entity {
/**
*
* @return
* the label associated with the contract
*/
String getLabel();
/**
*
* @param label
*/
void setLabel(String label);
/**
*
* @return
* the begin date of the contract
*/
Date getBeginDate();
/**
*
* @param beginDate
*/
void setBeginDate(Date beginDate);
/**
*
* @return
* the end date of the contract
*/
Date getEndDate();
/**
*
* @param endDate
*/
void setEndDate(Date endDate);
/**
*
* @return
* the renewal date of the contract
*/
Date getRenewalDate();
/**
*
* @param renewalDate
*/
void setRenewalDate(Date renewalDate);
/**
*
* @return
* the price of the contract
*/
Float getPrice();
/**
*
* @param price
*/
void setPrice(Float price);
/**
*
* @return
* the user owning the contract
*/
User getUser();
/**
*
* @param user
*/
void setUser(User user);
/**
*
* @return
* the set of the acts associated with the contract
*/
Collection<Act> getActSet();
/**
*
* @param act
*/
void addAct (Act act);
/**
*
* @param actSet
*/
void addAllAct (Collection<Act> actSet);
/**
*
* @return
* the set of the option elements associated with the offer
*/
Collection<OptionElement> getOptionElementSet();
/**
*
* @param optionElement
*/
void addOptionElement (OptionElement optionElement);
/**
*
* @param optionElementSet
*/
void addAllOptionElement (Collection<OptionElement> optionElementSet);
/**
*
* @return
* the set of functionality associated with the contract
*/
Collection<Functionality> getFunctionalitySet();
/**
*
* @param functionality
*/
void addFunctionality(Functionality functionality);
/**
*
* @param functionalitySet
*/
void addAllFunctionality(Collection<Functionality> functionalitySet);
/**
*
* @return
* the set of references associated with the contract
*/
Collection<Referential> getReferentialSet();
/**
*
* @param referential
*/
void addReferential(Referential referential);
/**
*
* @param referentialSet
*/
void addAllReferential(Collection<Referential> referentialSet);
/**
*
* @return
* the set of scenarios associated with the contract
*/
Collection<Scenario> getScenarioSet();
/**
*
* @param scenario
*/
void addScenario(Scenario scenario);
/**
*
* @param scenarioSet
*/
void addAllScenario(Collection<Scenario> scenarioSet);
}