private void compileParameters() throws IllegalArgumentException, IllegalAccessException, MalformedLayarRequestException {
		Field[] fields = LayarGetPOIsRequest.class.getFields();
		for (Field f : fields) {
			String fName = f.getName();
			Class fClass = f.getType();
			if(parameters.containsKey(fName)) {
				String[] ss = parameters.get(fName);
				Object v = ss[0];
				try {
					if (fClass == Integer.class) {
						v = Integer.parseInt((String)v);
					} else if (fClass == Long.class) {
						v = Long.parseLong((String)v);
					} else if (fClass == Double.class) {
						v = Double.parseDouble((String)v);
					}
				} catch (NumberFormatException exc) {
					throw new MalformedLayarRequestException(fName +"("+v+") is not a valid " + fClass);
				}
				f.set(layarRequest, v);
			}
		}
	}