001package org.kuali.rice.krms.dto;
002
003import org.kuali.rice.krms.api.repository.term.TermDefinitionContract;
004import org.kuali.rice.krms.api.repository.term.TermParameterDefinitionContract;
005import org.kuali.rice.krms.api.repository.term.TermSpecificationDefinition;
006import org.kuali.rice.krms.api.repository.term.TermSpecificationDefinitionContract;
007
008import java.io.Serializable;
009import java.util.ArrayList;
010import java.util.List;
011
012/**
013 * Created with IntelliJ IDEA.
014 * User: SW
015 * Date: 2013/03/05
016 * Time: 5:16 PM
017 * To change this template use File | Settings | File Templates.
018 */
019public class TermEditor implements TermDefinitionContract, Serializable {
020
021    private String id;
022    private TermSpecificationDefinitionContract specification;
023    private String description;
024    private List<TermParameterEditor> parameters;
025    private Long versionNumber;
026
027    public TermEditor(){
028        super();
029    }
030
031    public TermEditor(TermDefinitionContract contract){
032        this.id = contract.getId();
033        //this.specification = contract.getSpecification();
034        this.description = contract.getDescription();
035        if(contract.getParameters() != null){
036            parameters = new ArrayList<TermParameterEditor>();
037            for (TermParameterDefinitionContract parameter : contract.getParameters()){
038                parameters.add(new TermParameterEditor(parameter));
039            }
040        }
041        this.setSpecification(contract.getSpecification());
042        this.versionNumber = contract.getVersionNumber();
043    }
044
045    public void setId(String id) {
046        this.id = id;
047    }
048
049    public void setSpecification(TermSpecificationDefinitionContract specification) {
050        this.specification = specification;
051    }
052
053    public void setDescription(String description) {
054        this.description = description;
055    }
056
057    public void setParameters(List<TermParameterEditor> parameters) {
058        this.parameters = parameters;
059    }
060
061    public void setVersionNumber(Long versionNumber) {
062        this.versionNumber = versionNumber;
063    }
064
065    @Override
066    public TermSpecificationDefinitionContract getSpecification() {
067        return this.specification;
068    }
069
070    @Override
071    public String getDescription() {
072        return this.description;
073    }
074
075    @Override
076    public List<? extends TermParameterDefinitionContract> getParameters() {
077        return this.parameters;
078    }
079
080    public List<TermParameterEditor> getEditorParameters() {
081        return this.parameters;
082    }
083
084    @Override
085    public String getId() {
086        return this.id;
087    }
088
089    @Override
090    public Long getVersionNumber() {
091        return this.versionNumber;
092    }
093}