Hi, can we update QDox from 1.6.3 to 1.10?
I have an issue with QDox 1.6.3: It can't parse my Fixed16 class (which I have attached to this mail). The problem is in line 35: private static final float DENOMINATOR = (float) (1 << 14); It can't parse the shift operator. QDox 1.10 works fine. Best Regards Alex -- e-mail: alexanderk...@gmx.net web: www.alexanderkiel.net
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* $Id$ */ package org.apache.fop.fonts.opentype.common.io; import java.text.NumberFormat; import java.util.Locale; /** * A 16-bit signed fixed-point number (2.14). */ public final class Fixed16 { /** * This constant represents the fixed-point number zero. */ public static final Fixed16 ZERO = new Fixed16((short) 0); private static final float DENOMINATOR = (float) (1 << 14); private static final NumberFormat FORMAT = NumberFormat.getNumberInstance(Locale.US); static { FORMAT.setMinimumFractionDigits(1); FORMAT.setMaximumFractionDigits(6); } private final short value; /** * Creates a new fixed-point number. * * @param value the value of the fixed point number as short * @return a fixed-point number */ public static Fixed16 fromShort(short value) { return new Fixed16(value); } /** * Creates a new fixed-point number. * * @param value the value of the fixed point number as float * @return a fixed-point number */ public static Fixed16 fromFloat(float value) { int fixedValue = Math.round(value * DENOMINATOR); if (fixedValue > Short.MAX_VALUE) { throw new ArithmeticException("overflow; value: " + value); } if (fixedValue < Short.MIN_VALUE) { throw new ArithmeticException("underflow; value: " + value); } return new Fixed16((short) fixedValue); } private Fixed16(short value) { this.value = value; } /** * Retruns the internal short representation of this fixed-point number. * * @return the internal short representation of this fixed-point number. */ public short toShort() { return value; } /** * Retruns the value of this fixed-point number as float. * * @return the value of this fixed-point number as float. */ public float toFloat() { return value / DENOMINATOR; } /** * {...@inheritdoc} */ public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Fixed16 otherFixed = (Fixed16) obj; return this.value == otherFixed.value; } /** * {...@inheritdoc} */ public int hashCode() { return value; } /** * {...@inheritdoc} */ public String toString() { return FORMAT.format(toFloat()); } }
signature.asc
Description: This is a digitally signed message part