Project

General

Profile

« Previous | Next » 

Revision 1925e9f2

Added by Andreas Müller over 7 years ago

ref #5974 Fix synonymRelationship issues in vaadin

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/container/LeafNodeTaxonContainer.java
73 73
     */
74 74
    public LeafNodeTaxonContainer(int classificationId) throws SQLException {
75 75
        super(CdmQueryFactory.generateTaxonBaseQuery(NAME_ID, PB_ID, UNP_ID, RANK_ID, HAS_SYN_ID));
76
        this.synonymContainer = new CdmSQLContainer(CdmQueryFactory.generateSynonymofTaxonQuery(NAME_ID));
76
        this.synonymContainer = new CdmSQLContainer(CdmQueryFactory.generateSynonymOfTaxonQuery(NAME_ID));
77 77
        this.synonymContainer.sort(new String[]{NAME_ID}, new boolean[]{true});
78 78
        this.classificationId = classificationId;
79 79
        taxonSynonymMap = new HashMap<>();
......
94 94
        int saoIndex = Rank.SPECIESAGGREGATE().getOrderIndex();
95 95
        rankFilter = new Compare.GreaterOrEqual("dtb.orderindex", saoIndex);
96 96

  
97
        synonymFilter = new Not(new IsNull("syn.acceptedTaxon_id"));
97
        synonymFilter = new Not(new IsNull("acc.id"));
98 98

  
99 99
        currentFilters = new HashSet<>();
100 100
    }
......
203 203
    }
204 204

  
205 205
    public boolean isSynonym(Object itemId) {
206
        Property hasSynProperty = getItem(itemId).getItemProperty(HAS_SYN_ID);
206
        Property<?> hasSynProperty = getItem(itemId).getItemProperty(HAS_SYN_ID);
207 207
        return hasSynProperty == null;
208 208
    }
209 209

  
......
220 220
    }
221 221

  
222 222
    private List<Object> addToSynonymCache(Object taxonItemId) {
223
        Filter synonymOfTaxonFilter = new Compare.Equal("syn.acceptedTaxon_id", Integer.valueOf(taxonItemId.toString()));
223
        Filter synonymOfTaxonFilter = new Compare.Equal("acc.id", Integer.valueOf(taxonItemId.toString()));
224 224
        synonymContainer.addContainerFilter(synonymOfTaxonFilter);
225
        List<Object> synList = new ArrayList<Object>();
225
        List<Object> synList = new ArrayList<>();
226 226
        synList.addAll(synonymContainer.getItemIds());
227 227
        for(Object synItemId : synList) {
228 228
            addSynItem((RowItem) synonymContainer.getItem(synItemId));
src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmQueryFactory.java
173 173
        return generateQueryDelegate(SELECT_QUERY, COUNT_QUERY, CONTAINS_QUERY);
174 174
    }
175 175

  
176
    public static QueryDelegate generateSynonymofTaxonQuery(String name_id)  {
176
    public static QueryDelegate generateSynonymOfTaxonQuery(String name_id)  {
177 177
    	String FROM_QUERY = " FROM TaxonBase tb " +
178 178
    			"INNER JOIN TaxonNameBase tnb on tb.name_id=tnb.id " +
179
    			"INNER JOIN TaxonBase syn on tb.id = syn.acceptedTaxon_id "; //or s.id = ?
179
    			"INNER JOIN TaxonBase acc on tb.acceptedTaxon_id = acc.id "; //or s.id = ?
180 180
    	String SELECT_QUERY="SELECT tb.id as " + ID +
181 181
    			", tnb.titleCache as " + name_id +
182 182
    			FROM_QUERY;
183 183
    	String COUNT_QUERY = "SELECT count(*) " + FROM_QUERY;
184
    	String CONTAINS_QUERY = "SELECT * FROM TaxonBase syn WHERE syn.acceptedTaxon_id = ?"; //or s.id = ?
184
    	String CONTAINS_QUERY = "SELECT * FROM TaxonBase syn WHERE syn.id = ?"; //or s.id = ?
185 185

  
186 186
    	return generateQueryDelegate(SELECT_QUERY, COUNT_QUERY, CONTAINS_QUERY);
187 187
    }
src/test/java/eu/etaxonomy/cdm/vaadin/presenter/NewTaxonBasePresenterTest.java
41 41
@DataSet
42 42
public class NewTaxonBasePresenterTest extends CdmVaadinBaseTest {
43 43

  
44
    @SuppressWarnings("unused")
44 45
    private static final Logger logger = Logger.getLogger(NewTaxonBasePresenterTest.class);
45 46

  
46 47
    private static NewTaxonBasePresenter ntbp;
......
52 53

  
53 54

  
54 55
    @Test
55
    public void testNewTaxonBase() throws SQLException {
56
    public void testNewTaxonBase(){
56 57
        RowId refId20 = new RowId(20);
57 58
        RowId refId21 = new RowId(21);
58 59
        UUID newTaxonUuid = ntbp.newTaxon("Taxon  h", refId20, UUID.fromString("6595638e-4993-421a-9fe5-76b09d94f36a")).getUuid();
59 60
        List<String> ACC_TAXON_INIT_STRATEGY = Arrays.asList(new String []{
60 61
                "sec",
61
                "synonymRelations"
62
                "synonyms"
62 63
        });
63 64
        Taxon taxon = CdmBase.deproxy(CdmSpringContextHelper.getTaxonService().load(newTaxonUuid,ACC_TAXON_INIT_STRATEGY),Taxon.class);
64 65

  
src/test/java/eu/etaxonomy/cdm/vaadin/presenter/StatusPresenterTest.java
31 31
/**
32 32
 * @author cmathew
33 33
 * @date 10 Mar 2015
34
 *
35 34
 */
36 35
@DataSet
37 36
public class StatusPresenterTest extends CdmVaadinBaseTest {

Also available in: Unified diff