commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Groß (JIRA) <j...@apache.org>
Subject [jira] [Comment Edited] (IMAGING-159) There should be a Parameters class
Date Thu, 29 Jan 2015 22:18:34 GMT

    [ https://issues.apache.org/jira/browse/IMAGING-159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14295804#comment-14295804
] 

Michael Groß edited comment on IMAGING-159 at 1/29/15 10:18 PM:
----------------------------------------------------------------

This question is outdated - see my proposal for a parameter object class below or at http://github.com/mgmechanics/commons-imaging/tree/IMAGING-159
 !!
---------------------------------original text-----------------------------------------
How about provide options as an enum rather than a Map? Like:
{noformat}
Options.PARAM_KEY_COMPRESSION.getInt()
{noformat}

But there is a problem in it. If the value of another option is something else than an int,
maybe a Byte, and then caller calls

{noformat}
Options.PARAM_KEY_ANOTHER_IS_A_BYTE.getInt()
{noformat}
instead of
{noformat}
Options.PARAM_KEY_ANOTHER_IS_A_BYTE.getByte()
{noformat}
then - what then?



was (Author: mgmechanics):
How about provide options as an enum rather than a Map? Like:
{noformat}
Options.PARAM_KEY_COMPRESSION.getInt()
{noformat}

But there is a problem in it. If the value of another option is something else than an int,
maybe a Byte, and then caller calls

{noformat}
Options.PARAM_KEY_ANOTHER_IS_A_BYTE.getInt()
{noformat}
instead of
{noformat}
Options.PARAM_KEY_ANOTHER_IS_A_BYTE.getByte()
{noformat}
then - what then?


> 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.*
>            Reporter: Benedikt Ritter
>             Fix For: Patch Needed
>
>
> 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
(v6.3.4#6332)

Mime
View raw message