Clover icon

Magnolia Imaging Module 3.4.2-SUPPORT-10161

  1. Project Clover database Tue Jul 16 2019 23:33:19 EEST
  2. Package info.magnolia.imaging.caching

File ImageGenerationJob.java

 

Coverage histogram

../../../../img/srcFileCovDistChart7.png
64% of files have more coverage

Code metrics

8
15
3
1
87
32
8
0.53
5
3
2.67
13.3% of code in this file is excluded from these metrics.

Classes

Class Line # Actions
ImageGenerationJob 49 15 13.3% 8 8
0.692307769.2%
 

Contributing tests

This file is covered by 1 test. .

Source view

1    /**
2    * This file Copyright (c) 2009-2018 Magnolia International
3    * Ltd. (http://www.magnolia-cms.com). All rights reserved.
4    *
5    *
6    * This file is dual-licensed under both the Magnolia
7    * Network Agreement and the GNU General Public License.
8    * You may elect to use one or the other of these licenses.
9    *
10    * This file is distributed in the hope that it will be
11    * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
12    * implied warranty of MERCHANTABILITY or FITNESS FOR A
13    * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
14    * Redistribution, except as permitted by whichever of the GPL
15    * or MNA you select, is prohibited.
16    *
17    * 1. For the GPL license (GPL), you can redistribute and/or
18    * modify this file under the terms of the GNU General
19    * Public License, Version 3, as published by the Free Software
20    * Foundation. You should have received a copy of the GNU
21    * General Public License, Version 3 along with this program;
22    * if not, write to the Free Software Foundation, Inc., 51
23    * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24    *
25    * 2. For the Magnolia Network Agreement (MNA), this file
26    * and the accompanying materials are made available under the
27    * terms of the MNA which accompanies this distribution, and
28    * is available at http://www.magnolia-cms.com/mna.html
29    *
30    * Any modifications to this file must keep this entire header
31    * intact.
32    *
33    */
34    package info.magnolia.imaging.caching;
35   
36    import info.magnolia.imaging.ImageGenerator;
37    import info.magnolia.imaging.ParameterProvider;
38   
39    /**
40    * Wrapper around an ImageGenerator and a ParameterProvider used as a key for current running jobs in
41    * CachingImageStreamer.
42    *
43    * The IMPORTANT bit here is that we implemented equals() and hashCode() to compare
44    * the actual parameter and not the ParameterProvider instance: we're assuming that whatever parameter
45    * is used provides an appropriate equals/hashCode() implementation.
46    *
47    * @param <P> type of ParameterProvider's parameter
48    */
 
49    class ImageGenerationJob<P> {
50   
51    private final ImageGenerator<ParameterProvider<P>> generator;
52    private final ParameterProvider<P> params;
53   
 
54  8 toggle ImageGenerationJob(ImageGenerator<ParameterProvider<P>> generator, ParameterProvider<P> params) {
55  8 this.generator = generator;
56  8 this.params = params;
57    }
58   
 
59    toggle public ImageGenerator<ParameterProvider<P>> getGenerator() {
60    return generator;
61    }
62   
 
63    toggle public ParameterProvider<P> getParams() {
64    return params;
65    }
66   
 
67  7 toggle @Override
68    public boolean equals(Object o) {
69  7 if (this == o) return true;
70  7 if (o == null || getClass() != o.getClass()) return false;
71   
72  7 final ImageGenerationJob<ParameterProvider<P>> that = (ImageGenerationJob<ParameterProvider<P>>) o;
73   
74  7 if (!generator.equals(that.generator)) return false;
75  7 if (!params.getParameter().equals(that.params.getParameter())) return false;
76   
77  7 return true;
78    }
79   
 
80  6 toggle @Override
81    public int hashCode() {
82  7 int result = generator.hashCode();
83  6 result = 31 * result + params.getParameter().hashCode();
84  5 return result;
85    }
86   
87    }