package uk.ac.ebi.quickgo.annotation.download;

import java.util.Arrays;
import java.util.List;

/**
 * Holds a list of fields names used for TSV. Specified as it's own class as it is used in more than one client.
 * @author Tony Wardell
 * Date: 28/06/2017
 * Time: 11:22
 * Created with IntelliJ IDEA.
 */
public class TSVDownload {

    public static final String GENE_PRODUCT_ID_FIELD_NAME = "geneproductid";
    public static final String SYMBOL_FIELD_NAME = "symbol";
    public static final String QUALIFIER_FIELD_NAME = "qualifier";
    public static final String GO_TERM_FIELD_NAME = "goid";
    public static final String GO_NAME_FIELD_NAME = "goname";
    public static final String ECO_ID_FIELD_NAME = "evidencecode";
    public static final String GO_EVIDENCE_CODE_FIELD_NAME = "goevidence";
    public static final String REFERENCE_FIELD_NAME = "reference";
    public static final String WITH_FROM_FIELD_NAME = "withfrom";
    public static final String TAXON_ID_FIELD_NAME = "taxonid";
    public static final String ASSIGNED_BY_FIELD_NAME = "assignedby";
    public static final String ANNOTATION_EXTENSION_FIELD_NAME = "extensions";
    public static final String DATE_FIELD_NAME = "date";
    public static final String TAXON_NAME_FIELD_NAME = "taxonname";
    public static final String GENE_PRODUCT_NAME_FIELD_NAME = "name";
    public static final String GENE_PRODUCT_SYNONYMS_FIELD_NAME = "synonyms";
    public static final String GENE_PRODUCT_TYPE_FIELD_NAME = "geneProductType";

    private static final List<String> FULL_FIELD_LIST = Arrays.asList(GENE_PRODUCT_ID_FIELD_NAME, SYMBOL_FIELD_NAME,
                                                                      QUALIFIER_FIELD_NAME, GO_TERM_FIELD_NAME,
                                                                      GO_NAME_FIELD_NAME, ECO_ID_FIELD_NAME,
                                                                      GO_EVIDENCE_CODE_FIELD_NAME,
                                                                      REFERENCE_FIELD_NAME, WITH_FROM_FIELD_NAME,
                                                                      TAXON_ID_FIELD_NAME, ASSIGNED_BY_FIELD_NAME,
                                                                      ANNOTATION_EXTENSION_FIELD_NAME, DATE_FIELD_NAME,
                                                                      TAXON_NAME_FIELD_NAME,
                                                                      GENE_PRODUCT_NAME_FIELD_NAME,
                                                                      GENE_PRODUCT_SYNONYMS_FIELD_NAME,
                                                                      GENE_PRODUCT_TYPE_FIELD_NAME);

    public static List<String> whichColumnsWillWeShow(List<String> selectedFields) {
        return selectedFields.isEmpty() ? FULL_FIELD_LIST : selectedFields;
    }
}

Change the field names for gene product name and synonyms so that match the ones used in the Annotation model.