[
https://issues.apache.org/jira/browse/IMAGING-159?focusedWorklogId=705251&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-705251
]
ASF GitHub Bot logged work on IMAGING-159:
------------------------------------------
Author: ASF GitHub Bot
Created on: 07/Jan/22 21:04
Start Date: 07/Jan/22 21:04
Worklog Time Spent: 10m
Work Description: kinow commented on a change in pull request #116:
URL: https://github.com/apache/commons-imaging/pull/116#discussion_r780528232
##########
File path: src/main/java/org/apache/commons/imaging/Imaging.java
##########
@@ -857,20 +837,19 @@ public static Dimension getImageSize(final File file)
throws ImageReadException,
*
* @param file
* File containing image data.
- * @param params
- * Map of optional parameters, defined in ImagingConstants.
+ * @param params optional parameters.
* @return The width and height of the image.
* @throws ImageReadException if it fails to parse the image
* @throws IOException if it fails to read the image data
*/
- public static Dimension getImageSize(final File file, final Map<String,
Object> params)
+ public static Dimension getImageSize(final File file, final
ImagingParameters params)
Review comment:
@darkma773r I went with option 2. It reduces the `Imaging.java` size,
and prevents the god-class issue in case we added more image formats later.
IMHO, it will be simpler to either improve the `ImageParser`'s API, or think in
how to better handle parameters in the `Imaging` class (like merging
parameters, of providing factories as you suggested).
But for 1.0 this should be better than the old `Hashmap`, and avoid runtime
exceptions. Thank you!!!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 705251)
Time Spent: 17h (was: 16h 50m)
> There should be a Parameters class
> ----------------------------------
>
> Key: IMAGING-159
> URL: https://issues.apache.org/jira/browse/IMAGING-159
> Project: Commons Imaging
> Issue Type: Improvement
> Components: imaging.*
> Affects Versions: 1.0-alpha2
> Reporter: Benedikt Ritter
> Assignee: Bruno P. Kinoshita
> Priority: Major
> Labels: github
> Fix For: 1.0-alpha3
>
> Time Spent: 17h
> Remaining Estimate: 0h
>
> Currently options for image I/O are defined as Maps. The leads to the problem
> that our code has to validate parameter types when they are used:
> {code:java}
> final Object value = params.get(PARAM_KEY_COMPRESSION);
> if (value != null) {
> if (!(value instanceof Number)) {
> throw new ImageWriteException(
> "Invalid compression parameter, must be numeric: "
> + value);
> }
> compression = ((Number) value).intValue();
> }
> {code}
> This can be simplified if we define a Parameters class that provides
> additional methods like {{public int getInt(String key)}}. The implementation
> could then look up the value from the map through an exception if it is null
> or not a number.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)