StockLevelOrgUnitSummary.java

package com.tradecloud.domain.model.requestforquote;

import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class StockLevelOrgUnitSummary extends StockLevelRowSummary {

    private StockLevelSummary stockLevelSummary;

    private OrganisationalUnit organisationalUnit;

    private List<StockLevelRegionSummary>  regionSummaries=new ArrayList<>();

    public StockLevelOrgUnitSummary(StockLevelSummary stockLevelSummary, OrganisationalUnit organisationalUnit) {
        this.stockLevelSummary = stockLevelSummary;
        this.organisationalUnit = organisationalUnit;
        stockLevelSummary.getOrgUnitSummaries().add(this);
    }

    public StockLevelSummary getStockLevelSummary() {
        return stockLevelSummary;
    }

    public void setStockLevelSummary(StockLevelSummary stockLevelSummary) {
        this.stockLevelSummary = stockLevelSummary;
    }

    public List<StockLevelRegionSummary> getRegionSummaries() {
        return regionSummaries;
    }

    public void setRegionSummaries(List<StockLevelRegionSummary> regionSummaries) {
        this.regionSummaries = regionSummaries;
    }

    public OrganisationalUnit getOrganisationalUnit() {
        return organisationalUnit;
    }

    public void setOrganisationalUnit(OrganisationalUnit organisationalUnit) {
        this.organisationalUnit = organisationalUnit;
    }

    @Override
    public boolean equals(Object object) {
        if (this == object) return true;
        if (object == null || getClass() != object.getClass()) return false;
        StockLevelOrgUnitSummary that = (StockLevelOrgUnitSummary) object;
        return Objects.equals(stockLevelSummary, that.stockLevelSummary) && Objects.equals(organisationalUnit, that.organisationalUnit);
    }

    @Override
    public int hashCode() {
        return Objects.hash(stockLevelSummary, organisationalUnit);
    }

    @Override
    public String getDescription() {
        return organisationalUnit.getName();
    }
}