Project

General

Profile

« Previous | Next » 

Revision 27820075

Added by Andreas Kohlbecker about 5 years ago

fix #8149 inclusion of NULL and Genric ref types optional and fixing bugy refresh

View differences:

src/main/java/eu/etaxonomy/cdm/service/CdmFilterablePagingProviderFactory.java
39 39
    @Qualifier("cdmRepository")
40 40
    private CdmRepository repo;
41 41

  
42

  
43
    public CdmFilterablePagingProvider<Reference,Reference> referencePagingProvider(){
44
        return inReferencePagingProvider(null);
42
    public CdmFilterablePagingProvider<Reference, Reference> referencePagingProvider() {
43
        return inReferencePagingProvider(null, false);
45 44
    }
46 45

  
47
    public CdmFilterablePagingProvider<Reference,Reference> inReferencePagingProvider(ReferenceType subReferenceType){
46
    /**
47
     *
48
     * @param subReferenceType
49
     *            the type of the reference for which to the paging provider is
50
     *            to be created
51
     * @param includeUnspecificTypes
52
     *            Whether to include references with the types
53
     *            {@link ReferenceType.Generic Generic} and {@code null},
54
     * @return
55
     */
56
    public CdmFilterablePagingProvider<Reference, Reference> inReferencePagingProvider(ReferenceType subReferenceType,
57
            boolean includeUnspecificTypes) {
48 58
        List<OrderHint> referenceOrderHints = new ArrayList<OrderHint>();
49 59
        referenceOrderHints.add(OrderHint.ORDER_BY_TITLE_CACHE);
50 60
        referenceOrderHints.add(new OrderHint("issn", SortOrder.ASCENDING));
51 61
        referenceOrderHints.add(new OrderHint("isbn", SortOrder.ASCENDING));
52
        CdmFilterablePagingProvider<Reference,Reference> pagingProvider = new CdmFilterablePagingProvider<Reference, Reference>(
62
        CdmFilterablePagingProvider<Reference, Reference> pagingProvider = new CdmFilterablePagingProvider<Reference, Reference>(
53 63
                repo.getReferenceService(), MatchMode.ANYWHERE, referenceOrderHints);
54 64

  
55 65
        Set<ReferenceType> inRefTypes = subReferenceType.inReferenceContraints(subReferenceType);
56 66

  
57
        if(!inRefTypes.isEmpty()){
58
            inRefTypes.add(ReferenceType.Generic); // generic references and those with missing type are always valid
59
            inRefTypes.add(null);
60
            pagingProvider.addRestriction(new Restriction<ReferenceType>("type", null, inRefTypes.toArray(new ReferenceType[inRefTypes.size()])));
67
        if (!inRefTypes.isEmpty()) {
68
            if (includeUnspecificTypes) {
69
                inRefTypes.add(ReferenceType.Generic);
70
                inRefTypes.add(null);
71
            }
72
            pagingProvider.addRestriction(new Restriction<ReferenceType>("type", null,
73
                    inRefTypes.toArray(new ReferenceType[inRefTypes.size()])));
61 74
        }
62 75

  
63 76
        return pagingProvider;
64 77
    }
65 78

  
66
    public TypifiedEntityFilterablePagingProvider<Reference> referenceEntityReferencePagingProvider(ReferenceEllypsisFormatter labelProvider, List<String> initStrategy){
79
    public TypifiedEntityFilterablePagingProvider<Reference> referenceEntityReferencePagingProvider(
80
            ReferenceEllypsisFormatter labelProvider, List<String> initStrategy) {
67 81
        List<OrderHint> referenceOrderHints = new ArrayList<OrderHint>();
68 82
        referenceOrderHints.add(OrderHint.ORDER_BY_TITLE_CACHE);
69 83
        referenceOrderHints.add(new OrderHint("issn", SortOrder.ASCENDING));
......
75 89
        return pagingProvider;
76 90
    }
77 91

  
78
    public CdmFilterablePagingProvider<TaxonName, TaxonName> taxonNamesWithoutOrthophicIncorrect(){
92
    public CdmFilterablePagingProvider<TaxonName, TaxonName> taxonNamesWithoutOrthophicIncorrect() {
79 93

  
80 94
        CdmFilterablePagingProvider<TaxonName, TaxonName> pagingProvider = new CdmFilterablePagingProvider<TaxonName, TaxonName>(
81 95
                repo.getNameService());
82
        pagingProvider.setInitStrategy(Arrays.asList("registrations", "nomenclaturalReference", "nomenclaturalReference.inReference"));
83
        //pagingProvider.addRestriction(new Restriction<>("relationsFromThisName.type", Operator.AND_NOT, null, NameRelationshipType.ORTHOGRAPHIC_VARIANT()));
96
        pagingProvider.setInitStrategy(
97
                Arrays.asList("registrations", "nomenclaturalReference", "nomenclaturalReference.inReference"));
98
        // pagingProvider.addRestriction(new
99
        // Restriction<>("relationsFromThisName.type", Operator.AND_NOT, null,
100
        // NameRelationshipType.ORTHOGRAPHIC_VARIANT()));
84 101
        return pagingProvider;
85 102
    }
86 103

  
87

  
88 104
}

Also available in: Unified diff