package com.capgemini.reports.teamcenter.resolution.structureservice;

import com.capgemini.framework.teamcenter.authent.TcSession;
import com.capgemini.framework.teamcenter.exceptions.EmptyNomenclatureException;
import com.capgemini.framework.teamcenter.exceptions.NoSuchBomViewException;
import com.capgemini.framework.teamcenter.resolution.structureservice.MultiStructureServiceCallerRaw;
import com.capgemini.reports.bomlineholder.BOMLineHolder;
import com.capgemini.reports.filter.IFilterExplosionNomenclature;
import com.teamcenter.soa.client.model.strong.BOMLine;

/**
 * Wrapper dedicated to multi levels resolution of configurations.
 **/
public class MultiStructureServiceCaller implements IStructureServiceCaller {

    private final TcSession session;

    /**
     * Constructor for multi levels resolution.
     */
    public MultiStructureServiceCaller(final TcSession session) {
        this.session = session;
    }

    @Override
    public BOMLineHolder resolve(final BOMLine topBomLine, final IFilterExplosionNomenclature filter) throws EmptyNomenclatureException, NoSuchBomViewException {
        return new MultiStructureServiceCallerRaw(session).resolve(topBomLine, filter);
    }
}
