changeset 1197:e7608a7205e1

working on IIIF parser.
author robcast
date Wed, 17 Jul 2013 12:58:03 +0200
parents 2c448b6b21da
children 569b6a1ab1a6
files common/src/main/java/digilib/conf/DigilibRequest.java common/src/main/java/digilib/util/OptionsSet.java
diffstat 2 files changed, 30 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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();
--- 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);
 	}