Revision 1925e9f2
Added by Andreas Müller almost 7 years ago
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
ref #5974 Fix synonymRelationship issues in vaadin