Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Genesys PGR
Genesys Backend
Commits
85e789a5
Commit
85e789a5
authored
Feb 27, 2014
by
Matija Obreza
Browse files
CropTaxonomy linked to Taxonomy2
parent
b52fcf56
Changes
10
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/genesys2/server/model/genesys/Taxonomy.java
View file @
85e789a5
...
...
@@ -17,17 +17,13 @@
package
org.genesys2.server.model.genesys
;
import
java.text.MessageFormat
;
import
java.util.List
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.FetchType
;
import
javax.persistence.OneToMany
;
import
javax.persistence.Table
;
import
javax.persistence.UniqueConstraint
;
import
org.genesys2.server.model.BusinessModel
;
import
org.genesys2.server.model.impl.CropTaxonomy
;
import
org.hibernate.search.annotations.Field
;
import
org.hibernate.search.annotations.Indexed
;
import
org.hibernate.search.annotations.Store
;
...
...
@@ -50,9 +46,6 @@ public class Taxonomy extends BusinessModel {
@Field
(
name
=
"title"
,
store
=
Store
.
NO
)
private
String
taxonName
;
@OneToMany
(
cascade
=
{},
fetch
=
FetchType
.
LAZY
,
mappedBy
=
"taxonomy"
)
private
List
<
CropTaxonomy
>
cropTaxonomies
;
public
String
getGenus
()
{
return
this
.
genus
;
}
...
...
@@ -77,14 +70,6 @@ public class Taxonomy extends BusinessModel {
this
.
taxonName
=
taxonName
;
}
public
List
<
CropTaxonomy
>
getCropTaxonomies
()
{
return
cropTaxonomies
;
}
public
void
setCropTaxonomies
(
List
<
CropTaxonomy
>
cropTaxonomies
)
{
this
.
cropTaxonomies
=
cropTaxonomies
;
}
@Override
public
String
toString
()
{
return
MessageFormat
.
format
(
"Tax id={0} genus={1} sp={2}, full={3}"
,
id
,
genus
,
species
,
taxonName
);
...
...
src/main/java/org/genesys2/server/model/genesys/Taxonomy2.java
View file @
85e789a5
...
...
@@ -17,15 +17,19 @@
package
org.genesys2.server.model.genesys
;
import
java.text.MessageFormat
;
import
java.util.List
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.FetchType
;
import
javax.persistence.Lob
;
import
javax.persistence.OneToMany
;
import
javax.persistence.PrePersist
;
import
javax.persistence.Table
;
import
javax.persistence.UniqueConstraint
;
import
org.genesys2.server.model.GlobalVersionedAuditedModel
;
import
org.genesys2.server.model.impl.CropTaxonomy
;
import
org.hibernate.search.annotations.Indexed
;
@Entity
...
...
@@ -59,8 +63,8 @@ public class Taxonomy2 extends GlobalVersionedAuditedModel {
private
Long
taxSpecies
;
//
@OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "taxonomy")
//
private List<CropTaxonomy> cropTaxonomies;
@OneToMany
(
cascade
=
{},
fetch
=
FetchType
.
LAZY
,
mappedBy
=
"taxonomy"
)
private
List
<
CropTaxonomy
>
cropTaxonomies
;
@PrePersist
private
void
prePersist
()
{
...
...
@@ -152,6 +156,14 @@ public class Taxonomy2 extends GlobalVersionedAuditedModel {
this
.
taxSpecies
=
taxSpecies
;
}
public
List
<
CropTaxonomy
>
getCropTaxonomies
()
{
return
cropTaxonomies
;
}
public
void
setCropTaxonomies
(
List
<
CropTaxonomy
>
cropTaxonomies
)
{
this
.
cropTaxonomies
=
cropTaxonomies
;
}
@Override
public
String
toString
()
{
return
MessageFormat
.
format
(
"Tax id={0} taxonName={1}"
,
id
,
getTaxonName
());
...
...
src/main/java/org/genesys2/server/model/impl/CropTaxonomy.java
View file @
85e789a5
...
...
@@ -22,9 +22,8 @@ import javax.persistence.ManyToOne;
import
javax.persistence.Table
;
import
org.genesys2.server.model.BusinessModel
;
import
org.genesys2.server.model.genesys.Taxonomy
;
import
org.genesys2.server.model.genesys.Taxonomy
2
;
// TODO FIXME Need to link to {@link Taxonomy2}
@Entity
@Table
(
name
=
"croptaxonomy"
)
public
class
CropTaxonomy
extends
BusinessModel
{
...
...
@@ -36,7 +35,7 @@ public class CropTaxonomy extends BusinessModel {
@ManyToOne
(
cascade
=
{},
optional
=
false
)
@JoinColumn
(
name
=
"taxonomyId"
)
private
Taxonomy
taxonomy
;
private
Taxonomy
2
taxonomy
;
public
Crop
getCrop
()
{
return
crop
;
...
...
@@ -46,11 +45,11 @@ public class CropTaxonomy extends BusinessModel {
this
.
crop
=
crop
;
}
public
Taxonomy
getTaxonomy
()
{
public
Taxonomy
2
getTaxonomy
()
{
return
taxonomy
;
}
public
void
setTaxonomy
(
Taxonomy
taxonomy
)
{
public
void
setTaxonomy
(
Taxonomy
2
taxonomy
)
{
this
.
taxonomy
=
taxonomy
;
}
...
...
src/main/java/org/genesys2/server/persistence/domain/CropTaxonomyRepository.java
View file @
85e789a5
...
...
@@ -18,7 +18,7 @@ package org.genesys2.server.persistence.domain;
import
java.util.List
;
import
org.genesys2.server.model.genesys.Taxonomy
;
import
org.genesys2.server.model.genesys.Taxonomy
2
;
import
org.genesys2.server.model.impl.Crop
;
import
org.genesys2.server.model.impl.CropTaxonomy
;
import
org.springframework.data.domain.Page
;
...
...
@@ -39,12 +39,11 @@ public interface CropTaxonomyRepository extends JpaRepository<CropTaxonomy, Long
Page
<
CropTaxonomy
>
findByCrop
(
Crop
crop
,
Pageable
pageable
);
// TODO FIXME todo
@Query
(
"select distinct t from CropTaxonomy ct inner join ct.taxonomy t where ct.crop = ?1"
)
List
<
Taxonomy
>
findTaxonomiesByCrop
(
Crop
crop
);
List
<
Taxonomy
2
>
findTaxonomiesByCrop
(
Crop
crop
);
@Query
(
"select distinct ct.crop from CropTaxonomy ct where ct.taxonomy= ?1"
)
List
<
Crop
>
findByTaxonomy
(
Taxonomy
taxonomy
);
List
<
Crop
>
findByTaxonomy
(
Taxonomy
2
taxonomy
);
@Modifying
@Query
(
"delete from CropTaxonomy ct where ct.crop = ?1"
)
...
...
src/main/java/org/genesys2/server/persistence/domain/Taxonomy2Repository.java
View file @
85e789a5
...
...
@@ -32,4 +32,10 @@ public interface Taxonomy2Repository extends JpaRepository<Taxonomy2, Long> {
List
<
String
>
autocompleteTaxonomy
(
String
term
,
Pageable
page
);
Taxonomy2
findByGenusAndSpeciesAndSpAuthorAndSubtaxaAndSubtAuthor
(
String
genus
,
String
species
,
String
spAuthor
,
String
subtaxa
,
String
subtAuthor
);
List
<
Taxonomy2
>
findByGenus
(
String
genus
);
List
<
Taxonomy2
>
findByGenusAndSpecies
(
String
genus
,
String
species
);
List
<
Taxonomy2
>
findByGenusAndSpeciesAndSubtaxa
(
String
genus
,
String
species
,
String
subtaxa
);
}
src/main/java/org/genesys2/server/service/CropService.java
View file @
85e789a5
...
...
@@ -19,7 +19,6 @@ package org.genesys2.server.service;
import
java.util.List
;
import
java.util.Locale
;
import
org.genesys2.server.model.genesys.Taxonomy
;
import
org.genesys2.server.model.genesys.Taxonomy2
;
import
org.genesys2.server.model.impl.Crop
;
import
org.genesys2.server.model.impl.CropRule
;
...
...
@@ -35,8 +34,6 @@ public interface CropService {
List
<
Crop
>
list
(
Locale
locale
);
List
<
Crop
>
getCrops
(
Taxonomy
taxonomy
);
List
<
Crop
>
getCrops
(
Taxonomy2
taxonomy2
);
void
rebuildTaxonomies
();
...
...
src/main/java/org/genesys2/server/service/impl/CropServiceImpl.java
View file @
85e789a5
...
...
@@ -22,10 +22,11 @@ import java.util.Comparator;
import
java.util.List
;
import
java.util.Locale
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.Predicate
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.genesys2.server.model.genesys.Taxonomy
;
import
org.genesys2.server.model.genesys.Taxonomy2
;
import
org.genesys2.server.model.impl.Crop
;
import
org.genesys2.server.model.impl.CropRule
;
...
...
@@ -33,7 +34,7 @@ import org.genesys2.server.model.impl.CropTaxonomy;
import
org.genesys2.server.persistence.domain.CropRepository
;
import
org.genesys2.server.persistence.domain.CropRuleRepository
;
import
org.genesys2.server.persistence.domain.CropTaxonomyRepository
;
import
org.genesys2.server.persistence.domain.TaxonomyRepository
;
import
org.genesys2.server.persistence.domain.Taxonomy
2
Repository
;
import
org.genesys2.server.service.CropService
;
import
org.genesys2.server.service.HtmlSanitizer
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -60,10 +61,10 @@ public class CropServiceImpl implements CropService {
CropTaxonomyRepository
cropTaxonomyRepository
;
@Autowired
TaxonomyRepository
taxonomyRepository
;
private
HtmlSanitizer
htmlSanitizer
;
@Autowired
private
HtmlSanitizer
htmlSanitizer
;
private
Taxonomy2Repository
taxonomy2Repository
;
@Override
public
Crop
getCrop
(
String
shortName
)
{
...
...
@@ -87,15 +88,9 @@ public class CropServiceImpl implements CropService {
return
crops
;
}
@Override
public
List
<
Crop
>
getCrops
(
Taxonomy
taxonomy
)
{
return
cropTaxonomyRepository
.
findByTaxonomy
(
taxonomy
);
}
@Override
public
List
<
Crop
>
getCrops
(
Taxonomy2
taxonomy2
)
{
// TODO FIXME get the crops!
return
null
;
return
cropTaxonomyRepository
.
findByTaxonomy
(
taxonomy2
);
}
@Override
...
...
@@ -135,35 +130,35 @@ public class CropServiceImpl implements CropService {
LOG
.
info
(
"Included: "
+
includedTaxa
.
size
());
LOG
.
info
(
"Excluded: "
+
excludedTaxa
.
size
());
List
<
Taxonomy
>
taxa
=
new
ArrayList
<
Taxonomy
>();
List
<
Taxonomy
2
>
taxa
=
new
ArrayList
<
Taxonomy
2
>();
for
(
CropRule
cr
:
includedTaxa
)
{
if
(
cr
.
getSpecies
()
==
null
)
{
taxa
.
addAll
(
taxonomyRepository
.
findByGenus
(
cr
.
getGenus
()));
if
(
cr
.
getSpecies
()
==
null
&&
cr
.
getSubtaxa
()
==
null
)
{
taxa
.
addAll
(
taxonomy2Repository
.
findByGenus
(
cr
.
getGenus
()));
}
else
if
(
cr
.
getSubtaxa
()
==
null
)
{
taxa
.
addAll
(
taxonomy2Repository
.
findByGenusAndSpecies
(
cr
.
getGenus
(),
cr
.
getSpecies
()));
}
else
{
taxa
.
add
(
taxonomyRepository
.
get
ByGenusAndSpecies
(
cr
.
getGenus
(),
cr
.
getSpecies
()));
taxa
.
add
All
(
taxonomy
2
Repository
.
find
ByGenusAndSpecies
AndSubtaxa
(
cr
.
getGenus
(),
cr
.
getSpecies
()
,
cr
.
getSubtaxa
()
));
}
}
for
(
CropRule
cr
:
excludedTaxa
)
{
if
(
cr
.
getSpecies
()
==
null
)
{
for
(
Taxonomy
notincluded
:
taxonomyRepository
.
findByGenus
(
cr
.
getGenus
()))
{
for
(
int
i
=
taxa
.
size
()
-
1
;
i
>=
0
;
i
--)
{
if
(
taxa
.
get
(
i
).
getId
().
equals
(
notincluded
.
getId
()))
{
taxa
.
remove
(
i
);
}
for
(
final
CropRule
cr
:
excludedTaxa
)
{
CollectionUtils
.
filterInverse
(
taxa
,
new
Predicate
<
Taxonomy2
>()
{
@Override
public
boolean
evaluate
(
Taxonomy2
taxonomy
)
{
if
(
cr
.
getSpecies
()
==
null
&&
cr
.
getSubtaxa
()
==
null
)
{
return
StringUtils
.
equalsIgnoreCase
(
taxonomy
.
getSubtaxa
(),
cr
.
getSubtaxa
())
&&
StringUtils
.
equalsIgnoreCase
(
taxonomy
.
getSpecies
(),
cr
.
getSpecies
());
}
else
if
(
cr
.
getSubtaxa
()
==
null
)
{
return
StringUtils
.
equalsIgnoreCase
(
taxonomy
.
getSpecies
(),
cr
.
getSpecies
());
}
else
{
return
StringUtils
.
equalsIgnoreCase
(
taxonomy
.
getGenus
(),
cr
.
getGenus
());
}
}
}
else
{
Taxonomy
notincluded
=
taxonomyRepository
.
getByGenusAndSpecies
(
cr
.
getGenus
(),
cr
.
getSpecies
());
for
(
int
i
=
taxa
.
size
()
-
1
;
i
>=
0
;
i
--)
{
if
(
taxa
.
get
(
i
).
getId
().
equals
(
notincluded
.
getId
()))
{
taxa
.
remove
(
i
);
}
}
}
});
}
LOG
.
warn
(
"Clearing crop taxonomy for "
+
crop
.
getName
());
// To check
...
...
@@ -176,7 +171,7 @@ public class CropServiceImpl implements CropService {
long
taxonomyId
=
ct
.
getTaxonomy
().
getId
();
boolean
found
=
false
;
for
(
Taxonomy
taxonomy
:
taxa
)
{
for
(
Taxonomy
2
taxonomy
:
taxa
)
{
if
(
taxonomyId
==
taxonomy
.
getId
())
{
found
=
true
;
break
;
...
...
@@ -191,7 +186,7 @@ public class CropServiceImpl implements CropService {
List
<
CropTaxonomy
>
toAdd
=
new
ArrayList
<
CropTaxonomy
>();
// To add
for
(
Taxonomy
taxonomy
:
taxa
)
{
for
(
Taxonomy
2
taxonomy
:
taxa
)
{
boolean
found
=
false
;
for
(
CropTaxonomy
ct
:
existing
)
{
...
...
src/main/java/org/genesys2/server/service/impl/GenesysFilterServiceImpl.java
View file @
85e789a5
...
...
@@ -70,7 +70,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
@Service
@Transactional
(
readOnly
=
true
)
// FIXME TODO Change taxonomy to taxonomy2
public
class
GenesysFilterServiceImpl
implements
GenesysFilterService
{
private
static
final
Log
LOG
=
LogFactory
.
getLog
(
GenesysFilterServiceImpl
.
class
);
...
...
@@ -215,7 +214,7 @@ public class GenesysFilterServiceImpl implements GenesysFilterService {
StringBuffer
sb
=
new
StringBuffer
();
sb
.
append
(
" from accession a "
);
if
(
jsonTree
.
has
(
"crop"
)
||
jsonTree
.
has
(
"genus"
)
||
jsonTree
.
has
(
"taxon"
))
{
sb
.
append
(
" inner join taxonomy t on t.id=a.taxonomyId "
);
sb
.
append
(
" inner join taxonomy
2
t on t.id=a.taxonomyId
2
"
);
if
(
jsonTree
.
has
(
"crop"
))
{
sb
.
append
(
" inner join croptaxonomy ct on ct.taxonomyId=t.id inner join crop on crop.id=ct.cropId "
);
}
...
...
@@ -682,7 +681,7 @@ public class GenesysFilterServiceImpl implements GenesysFilterService {
final
StringBuffer
sb
=
new
StringBuffer
();
sb
.
append
(
" from accessiongeo geo inner join accession a on a.id=geo.accessionId "
);
if
(
jsonTree
.
has
(
"crop"
)
||
jsonTree
.
has
(
"genus"
)
||
jsonTree
.
has
(
"taxon"
))
{
sb
.
append
(
" inner join taxonomy t on t.id=a.taxonomyId "
);
sb
.
append
(
" inner join taxonomy
2
t on t.id=a.taxonomyId
2
"
);
if
(
jsonTree
.
has
(
"crop"
))
{
sb
.
append
(
" inner join croptaxonomy ct on ct.taxonomyId=t.id inner join crop on crop.id=ct.cropId "
);
}
...
...
src/main/java/org/genesys2/server/service/impl/GenesysServiceImpl.java
View file @
85e789a5
...
...
@@ -389,7 +389,7 @@ public class GenesysServiceImpl implements GenesysService, TraitService, Dataset
@Override
public
Page
<
Accession
>
listAccessionsByCrop
(
Crop
crop
,
Pageable
pageable
)
{
List
<
Taxonomy2
>
taxonomies
=
null
;
// FIXME TODO
cropTaxonomyRepository.findTaxonomiesByCrop(crop);
List
<
Taxonomy2
>
taxonomies
=
cropTaxonomyRepository
.
findTaxonomiesByCrop
(
crop
);
if
(
taxonomies
==
null
||
taxonomies
.
size
()
==
0
)
{
return
null
;
}
...
...
src/main/java/org/genesys2/server/service/impl/TaxonomyServiceImpl.java
View file @
85e789a5
...
...
@@ -86,12 +86,12 @@ public class TaxonomyServiceImpl implements TaxonomyService {
@Override
public
List
<
String
>
autocompleteGenus
(
String
term
)
{
return
taxonomyRepository
.
autocompleteGenus
(
term
+
"%"
,
new
PageRequest
(
0
,
10
));
return
taxonomy
2
Repository
.
autocompleteGenus
(
term
+
"%"
,
new
PageRequest
(
0
,
10
));
}
@Override
public
List
<
String
>
autocompleteTaxonomy
(
String
term
)
{
return
taxonomyRepository
.
autocompleteTaxonomy
(
"%"
+
term
+
"%"
,
new
PageRequest
(
0
,
10
));
return
taxonomy
2
Repository
.
autocompleteTaxonomy
(
"%"
+
term
+
"%"
,
new
PageRequest
(
0
,
10
));
}
@Override
...
...
@@ -207,11 +207,19 @@ public class TaxonomyServiceImpl implements TaxonomyService {
return
taxonomy2Repository
.
count
();
}
/**
* @deprecated Will be removed when {@link Taxonomy} is removed.
*/
// TODO FIXME Remove
@Override
public
List
<
Taxonomy
>
findAll
()
{
return
taxonomyRepository
.
findAll
();
}
/**
* @deprecated Will be removed when {@link Taxonomy} is removed.
*/
// TODO FIXME Remove
@Override
@Transactional
public
long
upgradeTaxonomy
(
Taxonomy
t1
,
Taxonomy2
t2
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment