# HG changeset patch # User robcast # Date 1374058683 -7200 # Node ID e7608a7205e13c056dcbc489f8caaf41f441523b # Parent 2c448b6b21da142a393e2c7ab92f028883ca6682 working on IIIF parser. diff -r 2c448b6b21da -r e7608a7205e1 common/src/main/java/digilib/conf/DigilibRequest.java --- a/common/src/main/java/digilib/conf/DigilibRequest.java Wed Jul 17 10:45:41 2013 +0200 +++ b/common/src/main/java/digilib/conf/DigilibRequest.java Wed Jul 17 12:58:03 2013 +0200 @@ -336,8 +336,20 @@ if (query.hasMoreTokens()) { token = query.nextToken(); if (!token.equals("/")) { - // TODO - setValueFromString("mo", token); + if (token.equals("full")) { + // full: size of original + options.setOption("ascale"); + setValue("scale", 1f); + } else if (token.startsWith("pct:")){ + // pct:n n% size of original + try { + float pct = Float.parseFloat(token.substring(4)); + options.setOption("ascale"); + setValue("scale", pct / 100); + } catch (NumberFormatException e) { + logger.error("Error parsing size parameter in IIIF path!"); + } + } // skip / if (query.hasMoreTokens()) { query.nextToken(); diff -r 2c448b6b21da -r e7608a7205e1 common/src/main/java/digilib/util/OptionsSet.java --- a/common/src/main/java/digilib/util/OptionsSet.java Wed Jul 17 10:45:41 2013 +0200 +++ b/common/src/main/java/digilib/util/OptionsSet.java Wed Jul 17 12:58:03 2013 +0200 @@ -60,6 +60,22 @@ } } + /** + * Set the option opt. + * + * @param opt + * @return + */ + public boolean setOption(String opt) { + return this.add(opt); + } + + /** + * Return if the option opt is set. + * + * @param opt + * @return + */ public boolean hasOption(String opt) { return this.contains(opt); }