Changeset 16265

Show
Ignore:
Timestamp:
18/07/08 17:54:50 (1 month ago)
Author:
kmr
Message:

More code for the new export system. Refs #1673.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/GFF3Exporter.java

    r16254 r16265  
    1111 */ 
    1212 
    13 import java.io.PrintWriter; 
    1413import java.util.ArrayList; 
    1514import java.util.Arrays; 
     
    1817import java.util.Map; 
    1918 
    20 import org.flymine.model.genomic.LocatedSequenceFeature; 
    2119import org.intermine.bio.io.gff3.GFF3Record; 
    2220import org.intermine.bio.util.GFF3Util; 
    2321import org.intermine.objectstore.ObjectStoreException; 
     22import org.intermine.path.Path; 
    2423import org.intermine.util.IntPresentSet; 
    2524import org.intermine.util.TypeUtil; 
     
    2827import org.intermine.web.logic.export.ExportHelper; 
    2928import org.intermine.web.logic.export.Exporter; 
    30 import org.intermine.web.logic.results.Column; 
    3129import org.intermine.web.logic.results.ResultElement; 
     30 
     31import org.flymine.model.genomic.LocatedSequenceFeature; 
     32 
     33import java.io.PrintWriter; 
    3234 
    3335/** 
     
    6264     */ 
    6365    public void export(List<List<ResultElement>> results, 
    64                        @SuppressWarnings("unused") List<Column> columns) { 
     66                       @SuppressWarnings("unused") List<Path> path) { 
    6567        if (featureIndexes.size() == 0) { 
    6668            throw new ExportException("No columns with sequence."); 
  • tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/GFF3HttpExporter.java

    r16264 r16265  
    7777            throw new ExportException("Export failed.", e); 
    7878        } 
    79         exporter.export(pt.getRearrangedResults(), pt.getColumns()); 
     79        exporter.export(pt.getRearrangedResults(), ExportHelper.getColumnPaths(pt)); 
    8080        if (exporter.getWrittenResultsCount() == 0) { 
    8181            throw new ExportException("Nothing was found for export."); 
  • tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/SequenceExporter.java

    r16264 r16265  
    8585     * is used for writing sequence. 
    8686     */ 
    87     public void export(List<List<ResultElement>> results, List<Column> columns) { 
     87    public void export(List<List<ResultElement>> results, List<Path> paths) { 
    8888        // IDs of the features we have successfully output - used to avoid duplicates 
    8989        IntPresentSet exportedIDs = new IntPresentSet(); 
     
    110110 
    111111                if (object instanceof LocatedSequenceFeature) { 
    112                     bioSequence = createLocatedSequenceFeature(header, object, row, columns); 
     112                    bioSequence = createLocatedSequenceFeature(header, object, row, paths); 
    113113                } else if (object instanceof Protein) { 
    114114                    bioSequence = createProtein(header, object); 
     
    211211    private BioSequence createLocatedSequenceFeature(StringBuffer header, 
    212212                                                     Object object, List<ResultElement> row, 
    213                                                      List<Column> columns) 
     213                                                     List<Path> paths) 
    214214        throws IllegalSymbolException { 
    215215        BioSequence bioSequence; 
     
    222222        } 
    223223        header.append(' '); 
    224         header.append(getHeadersFromColumns(row, columns)); 
     224        header.append(getHeadersFromColumns(row, paths)); 
    225225 
    226226        Location chromosomeLoc = feature.getChromosomeLocation(); 
     
    247247 
    248248    /** 
    249      * Look at the Columns and the current row and return a String containing all the elements of 
     249     * Look at the Paths and the current row and return a String containing all the elements of 
    250250     * the row except the primaryIdentifier (if any). 
    251251     */ 
    252     private String getHeadersFromColumns(List<ResultElement> row, List<Column> columns) { 
     252    private String getHeadersFromColumns(List<ResultElement> row, List<Path> columnPaths) { 
    253253        StringBuffer sb = new StringBuffer(); 
    254254 
    255255        for (int i = 0; i < row.size(); i++) { 
    256             Column column = columns.get(i); 
    257             if (!column.getPath().getEndFieldDescriptor().getName().equals("primaryIdentifier")) { 
     256            Path path = columnPaths.get(i); 
     257            if (!path.getEndFieldDescriptor().getName().equals("primaryIdentifier")) { 
    258258                ResultElement resultElement = row.get(i); 
    259259                Object rawField = resultElement.getField(); 
  • tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/export/SequenceHttpExporter.java

    r16264 r16265  
    8181        SequenceExporter exporter = new SequenceExporter(os, outputStream, realFeatureIndex); 
    8282 
    83         exporter.export(pt.getRearrangedResults(), pt.getColumns()); 
     83        exporter.export(pt.getRearrangedResults(), ExportHelper.getColumnPaths(pt)); 
    8484        if (exporter.getWrittenResultsCount() == 0) { 
    8585            throw new ExportException("Nothing was found for export."); 
  • tickets/ticket-1673/bio/webapp/src/org/intermine/bio/web/struts/SequenceExportAction.java

    r16264 r16265  
    1111 */ 
    1212 
    13 import java.io.OutputStream; 
    1413import java.util.ArrayList; 
    1514import java.util.Arrays; 
    1615import java.util.List; 
    1716import java.util.Properties; 
     17 
     18import org.intermine.bio.web.biojava.BioSequence; 
     19import org.intermine.bio.web.biojava.BioSequenceFactory; 
     20import org.intermine.bio.web.biojava.BioSequenceFactory.SequenceType; 
     21import org.intermine.bio.web.export.ResidueFieldExporter; 
     22import org.intermine.bio.web.export.SequenceHttpExporter; 
     23import org.intermine.model.InterMineObject; 
     24import org.intermine.objectstore.ObjectStore; 
     25import org.intermine.objectstore.ObjectStoreException; 
     26import org.intermine.util.TypeUtil; 
     27import org.intermine.web.logic.Constants; 
     28import org.intermine.web.struts.InterMineAction; 
     29 
     30import org.flymine.model.genomic.BioEntity; 
     31import org.flymine.model.genomic.LocatedSequenceFeature; 
     32import org.flymine.model.genomic.Protein; 
     33import org.flymine.model.genomic.Sequence; 
     34import org.flymine.model.genomic.Translation; 
     35 
     36import java.io.OutputStream; 
    1837 
    1938import javax.servlet.http.HttpServletRequest; 
     
    2948import org.biojava.bio.symbol.IllegalSymbolException; 
    3049import org.biojava.utils.ChangeVetoException; 
    31 import org.flymine.model.genomic.BioEntity; 
    32 import org.flymine.model.genomic.Gene; 
    33 import org.flymine.model.genomic.LocatedSequenceFeature; 
    34 import org.flymine.model.genomic.Protein; 
    35 import org.flymine.model.genomic.Sequence; 
    36 import org.flymine.model.genomic.Translation; 
    37 import org.intermine.bio.web.biojava.BioSequence; 
    38 import org.intermine.bio.web.biojava.BioSequenceFactory; 
    39 import org.intermine.bio.web.biojava.BioSequenceFactory.SequenceType; 
    40 import org.intermine.bio.web.export.ResidueFieldExporter; 
    41 import org.intermine.bio.web.export.SequenceHttpExporter; 
    42 import org.intermine.model.InterMineObject; 
    43 import org.intermine.objectstore.ObjectStore; 
    44 import org.intermine.objectstore.ObjectStoreException; 
    45 import org.intermine.util.TypeUtil; 
    46 import org.intermine.web.logic.Constants; 
    47 import org.intermine.web.struts.InterMineAction; 
    4850 
    4951/** 
     
    6466     *  an exception 
    6567     */ 
     68    @Override 
    6669    public ActionForward execute(ActionMapping mapping, 
    6770                                 ActionForm form, 
  • tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/ExcelExporter.java

    r16254 r16265  
    1313import java.util.List; 
    1414 
    15 import org.intermine.web.logic.results.Column
     15import org.intermine.path.Path
    1616import org.intermine.web.logic.results.ResultElement; 
    1717 
     
    4646     */ 
    4747    public void export(List<List<ResultElement>> results, 
    48                        @SuppressWarnings("unused") List<Column> columns) { 
     48                       @SuppressWarnings("unused") List<Path> path) { 
    4949        try { 
    5050            HSSFWorkbook wb = new HSSFWorkbook(); 
  • tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/Exporter.java

    r16254 r16265  
    1212import java.util.List; 
    1313 
    14 import org.intermine.web.logic.results.Column
     14import org.intermine.path.Path
    1515import org.intermine.web.logic.results.ResultElement; 
    1616 
     
    3232     * Do export. 
    3333     * @param results to be exported 
    34      * @param columns the columns descriptions 
     34     * @param paths the Paths to export 
    3535     */ 
    36     public void export(List<List<ResultElement>> results, List<Column> columns); 
     36    public void export(List<List<ResultElement>> results, List<Path> paths); 
    3737 
    3838    /** 
  • tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/ExporterImpl.java

    r16264 r16265  
    1515 
    1616import org.intermine.objectstore.flatouterjoins.ReallyFlatIterator; 
    17 import org.intermine.web.logic.results.Column
     17import org.intermine.path.Path
    1818import org.intermine.web.logic.results.ResultElement; 
    1919 
     
    6262 
    6363    /** 
    64      * Exports results. 
    65      * @param results results to be exported 
    66      * @param columns the columns descriptions 
     64     * {@inheritDoc} 
    6765     */ 
    68     public void export(List<List<ResultElement>> results, List<Column> columns) { 
     66    public void export(List<List<ResultElement>> results, List<Path> path) { 
    6967        try { 
    7068            ResultElementConverter converter = new ResultElementConverter(); 
  • tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/http/ExcelHttpExporter.java

    r16264 r16265  
    2929 * @author Jakub Kulaviak 
    3030 **/ 
    31 public class ExcelHttpExporter extends HttpExporterBase implements TableHttpExporter 
     31public class ExcelHttpExporter extends HttpExporterBase 
    3232{ 
    3333    /** 
  • tickets/ticket-1673/intermine/web/main/src/org/intermine/web/logic/export/http/HttpExporterBase.java

    r16264 r16265  
    8080        } 
    8181        Exporter exporter = getExporter(out, separator); 
    82         exporter.export(results, pt.getColumns()); 
     82        exporter.export(results, ExportHelper.getColumnPaths(pt)); 
    8383        if (exporter.getWrittenResultsCount() == 0) { 
    8484            throw new ExportException("Nothing was found for export."); 
  • tickets/ticket-1673/intermine/web/main/src/org/intermine/web/struts/TableExportAction.java

    r16264 r16265  
    1010 * 
    1111 */ 
     12 
     13import org.intermine.web.logic.config.WebConfig; 
     14import org.intermine.web.logic.export.ExportException; 
     15import org.intermine.web.logic.export.http.TableExporterFactory; 
     16import org.intermine.web.logic.export.http.TableHttpExporter; 
     17import org.intermine.web.logic.results.PagedTable; 
     18import org.intermine.web.logic.results.WebResults; 
     19import org.intermine.web.logic.session.SessionMethods; 
    1220 
    1321import java.io.IOException; 
     
    2432import org.apache.struts.action.ActionMapping; 
    2533import org.apache.struts.action.ActionMessage; 
    26 import org.jfree.data.xy.TableXYDataset; 
    27  
    28 import org.intermine.web.logic.config.WebConfig; 
    29 import org.intermine.web.logic.export.ExportException; 
    30 import org.intermine.web.logic.export.http.TableExporterFactory; 
    31 import org.intermine.web.logic.export.http.TableHttpExporter; 
    32 import org.intermine.web.logic.results.PagedTable; 
    33 import org.intermine.web.logic.results.WebResults; 
    34 import org.intermine.web.logic.session.SessionMethods; 
    3534 
    3635/** 
  • tickets/ticket-1673/intermine/web/test/src/org/intermine/web/logic/export/ExcelExporterTest.java

    r16254 r16265  
    4646        Model model = Model.getInstanceByName("testmodel"); 
    4747 
    48         List<Column> columns = new ArrayList<Column>(); 
    49         columns.add(new Column(new Path(model, "Employee.age"), "age", 0, Integer.class)); 
    50         columns.add(new Column(new Path(model, "Employee.end"), "end", 1, String.class)); 
    51         columns.add(new Column(new Path(model, "Employee.fullTime"), "fullTime", 2, Boolean.class)); 
    52         columns.add(new Column(new Path(model, "Employee.name"), "name", 3, String.class)); 
     48        List<Path> paths = new ArrayList<Path>(); 
     49        paths.add(new Path(model, "Employee.age")); 
     50        paths.add(new Path(model, "Employee.end")); 
     51        paths.add(new Path(model, "Employee.fullTime")); 
     52        paths.add(new Path(model, "Employee.name")); 
    5353 
    5454        ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    5555        Exporter exporter = new ExcelExporter(out); 
    56         exporter.export(input, columns); 
     56        exporter.export(input, paths); 
    5757        InputStream is = new ByteArrayInputStream(out.toByteArray()); 
    5858        HSSFWorkbook wb = new HSSFWorkbook(is); 
  • tickets/ticket-1673/intermine/web/test/src/org/intermine/web/logic/export/ExporterImplTest.java

    r16254 r16265  
    11package org.intermine.web.logic.export; 
    22 
    3 import java.io.ByteArrayOutputStream; 
    4 import java.io.PrintWriter; 
    53import java.util.ArrayList; 
    64import java.util.List; 
    75 
     6import org.intermine.path.Path; 
     7import org.intermine.web.logic.results.ResultElement; 
     8 
     9import java.io.ByteArrayOutputStream; 
     10 
    811import junit.framework.TestCase; 
    9  
    10 import org.intermine.web.logic.results.Column; 
    11 import org.intermine.web.logic.results.ResultElement; 
    1212 
    1313/* 
     
    3232        RowFormatter formatter = new RowFormatterImpl(",", true); 
    3333        ExporterImpl exporter = new ExporterImpl(out, formatter); 
    34         exporter.export(input, new ArrayList<Column>()); 
     34        exporter.export(input, new ArrayList<Path>()); 
    3535        assertEquals(getExpected(), out.toString()); 
    3636    } 
  • tickets/ticket-1673/intermine/webapp/main/resources/webapp/WEB-INF/struts-config.xml

    r16264 r16265  
    3131    <form-bean name="modifyBagDetailsForm" type="org.intermine.web.struts.ModifyBagDetailsForm"/> 
    3232    <form-bean name="widgetForm" type="org.intermine.web.struts.WidgetForm"/> 
    33     <form-bean name="exporttabForm" type="org.intermine.web.struts.TableExportForm"/> 
    34     <form-bean name="exportcvsForm" type="org.intermine.web.struts.TableExportForm"/> 
    35     <form-bean name="exportexcelForm" type="org.intermine.web.struts.TableExportForm"/> 
     33    <form-bean name="tabExportForm" type="org.intermine.web.struts.TableExportForm"/> 
     34    <form-bean name="cvsExportForm" type="org.intermine.web.struts.TableExportForm"/> 
     35    <form-bean name="excelExportForm" type="org.intermine.web.struts.TableExportForm"/> 
    3636    <!-- don't (re)move this - it's used for importing any model-specific forms --> 
    3737    <!--@MODEL_FORM_INCLUDE@-->