package be.iminds.ilabt.jfed.rspec.model;

import be.iminds.ilabt.jfed.rspec.parser.ExtraXml;
import be.iminds.ilabt.jfed.util.GeniUrn;

import java.util.List;

/**
 * User: twalcari
 * Date: 4/22/2015
 * Time: 18:00
 */
public interface Channel {

    GeniUrn getComponentManagerId();

    void setComponentManagerId(GeniUrn value);

    void setComponentManagerId(String value);

    GeniUrn getComponentId();

    void setComponentId(GeniUrn value);

    void setComponentId(String value);

    String getComponentName();

    void setComponentName(String value);

    String getFrequency();

    void setFrequency(String value);

    double getEditorX();

    void setEditorX(double value);

    double getEditorY();

    void setEditorY(double value);

    void addLeaseIdRef(String leaseIdRef);

    /**
     * The Lease ID Ref should only be set in NITOS Reservation broker rspecs.
     *
     * This ID refers to the lease-id in the advertisements and manifest-rspecs, and to the lease-client-id in a request
     *
     * There can be multiple Lease ID references, for example, in the advertisement RSpec
     * @return
     */
    List<String> getLeaseIdRefs();


    /** the returned list is modifiable, and modifying it changes the modelRspec. */
    List<ExtraXml> getExtraXml();
}
