/*******************************************************************************
 * Copyright (c) 2016 Parasoft.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *   Janusz Studzizba - initial API and implementation
 *   Dariusz Oszczedlowski - initial API and implementation
 *   Magdalena Gniewek - initial API and implementation
 *   Michal Wlodarczyk - initial API and implementation
 *******************************************************************************/
package org.eclipse.opencert.impactanalysis;

import org.eclipse.opencert.apm.assuranceassets.assuranceasset.EventKind;

public class ImpactSource
{
    private final Long impactingArtefactCdoId;
    private final EventKind impactingEventKind;
    
    public ImpactSource(Long impactingArtefactCdoId,
            EventKind impactingEventKind)
    {
        this.impactingArtefactCdoId = impactingArtefactCdoId;
        this.impactingEventKind = impactingEventKind;
    }

    public Long getImpactingArtefactCdoId()
    {
        return impactingArtefactCdoId;
    }

    public EventKind getImpactingEventKind()
    {
        return impactingEventKind;
    }
}
