Biiig standardization of whitespace. 2 space indents now, no tabs.

git-svn-id: https://zxing.googlecode.com/svn/trunk@191 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
srowen 2008-02-14 20:25:54 +00:00
parent c36a3b64cc
commit eb2fa80eaf
71 changed files with 700 additions and 521 deletions

View file

@ -4,11 +4,11 @@
<application android:icon="@drawable/icon">
<activity class=".BarcodeReaderCaptureActivity" android:label="@string/app_name">
<intent-filter>
<action android:value="android.intent.action.MAIN" />
<category android:value="android.intent.category.LAUNCHER" />
<action android:value="android.intent.action.MAIN"/>
<category android:value="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-permission id="android.permission.READ_CONTACTS" />
<uses-permission id="android.permission.WRITE_CONTACTS" />
<uses-permission id="android.permission.READ_CONTACTS"/>
<uses-permission id="android.permission.WRITE_CONTACTS"/>
</manifest>

View file

@ -124,12 +124,12 @@ public final class BarcodeReaderCaptureActivity extends Activity {
return super.onOptionsItemSelected(item);
}
Handler messageHandler = new Handler() {
private final Handler messageHandler = new Handler() {
@Override
public void handleMessage(Message message) {
switch (message.what) {
case R.id.decoding_succeeded_message:
handleDecode((Result)message.obj);
handleDecode((Result) message.obj);
break;
case R.id.decoding_failed_message:
Context context = getApplication();

View file

@ -16,8 +16,6 @@
package com.google.zxing.client.android;
import com.google.zxing.ResultPoint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@ -27,6 +25,7 @@ import android.hardware.CameraDevice;
import android.util.Log;
import android.view.Display;
import android.view.WindowManager;
import com.google.zxing.ResultPoint;
/**
* This object wraps the CameraDevice and expects to be the only one talking to it. The
@ -118,8 +117,8 @@ final class CameraManager {
Point[] output = new Point[count];
for (int x = 0; x < count; x++) {
output[x] = new Point();
output[x].x = frame.left + (int)(points[x].getX() * frameSize / stillResolution.x + 0.5f);
output[x].y = frame.top + (int)(points[x].getY() * frameSize / stillResolution.y + 0.5f);
output[x].x = frame.left + (int) (points[x].getX() * frameSize / stillResolution.x + 0.5f);
output[x].y = frame.top + (int) (points[x].getY() * frameSize / stillResolution.y + 0.5f);
}
return output;
}
@ -135,8 +134,8 @@ final class CameraManager {
if (on != previewMode) {
if (on) {
params.type = 1; // preview
if (cameraResolution.x / (float)cameraResolution.y <
screenResolution.x / (float)screenResolution.y) {
if (cameraResolution.x / (float) cameraResolution.y <
screenResolution.x / (float) screenResolution.y) {
params.srcWidth = cameraResolution.x;
params.srcHeight = cameraResolution.x * screenResolution.y / screenResolution.x;
params.leftPixel = 0;
@ -183,7 +182,7 @@ final class CameraManager {
cameraResolution = getMaximumCameraResolution();
int minDimension = (cameraResolution.x < cameraResolution.y) ? cameraResolution.x :
cameraResolution.y;
int diagonalResolution = (int)Math.sqrt(cameraResolution.x * cameraResolution.x +
int diagonalResolution = (int) Math.sqrt(cameraResolution.x * cameraResolution.x +
cameraResolution.y * cameraResolution.y);
float diagonalFov = getFieldOfView();
@ -197,7 +196,7 @@ final class CameraManager {
// accuracy.
// TODO(dswitkin): Handle a device with a great macro mode where objectSize < 4 inches.
double crop = 3.0 / objectSize;
int nativeResolution = (int)(minDimension * crop);
int nativeResolution = (int) (minDimension * crop);
// The camera driver can only capture images which are a multiple of eight, so it's necessary to
// round up.
@ -211,7 +210,7 @@ final class CameraManager {
double dpi = nativeResolution / objectSize;
stillMultiplier = 1;
if (dpi > 200) {
stillMultiplier = (int)(dpi / 200 + 1);
stillMultiplier = (int) (dpi / 200 + 1);
}
stillResolution = new Point(nativeResolution, nativeResolution);
Log.v(TAG, "FOV " + fov + " objectSize " + objectSize + " crop " + crop + " dpi " + dpi +
@ -237,7 +236,7 @@ final class CameraManager {
private Point getScreenResolution() {
if (screenResolution == null) {
WindowManager manager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = manager.getDefaultDisplay();
screenResolution = new Point(display.getWidth(), display.getHeight());
}

View file

@ -16,8 +16,6 @@
package com.google.zxing.client.android;
import com.google.zxing.ResultPoint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
@ -26,13 +24,14 @@ import android.graphics.Point;
import android.graphics.Rect;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import com.google.zxing.ResultPoint;
/**
* @author dswitkin@google.com (Daniel Switkin)
*/
final class CameraSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
private static int[] SCANNER_ALPHA = { 0, 64, 128, 192, 255, 192, 128, 64 };
private static int[] SCANNER_ALPHA = {0, 64, 128, 192, 255, 192, 128, 64};
private CameraManager cameraManager;
private SurfaceHolder surfaceHolder;

View file

@ -55,7 +55,7 @@ final class ResultHandler extends Handler {
Intent intent = null;
ParsedReaderResultType type = result.getType();
if (type == ParsedReaderResultType.ADDRESSBOOK) {
AddressBookDoCoMoResult addressResult = (AddressBookDoCoMoResult)result;
AddressBookDoCoMoResult addressResult = (AddressBookDoCoMoResult) result;
intent = new Intent(Contacts.Intents.Insert.ACTION, Contacts.People.CONTENT_URI);
putExtra(intent, Contacts.Intents.Insert.NAME, addressResult.getName());
putExtra(intent, Contacts.Intents.Insert.PHONE, addressResult.getPhoneNumbers()[0]);
@ -66,12 +66,12 @@ final class ResultHandler extends Handler {
// For now, we can only open the browser, and not actually add a bookmark
try {
intent = new Intent(Intent.VIEW_ACTION,
new ContentURI(((BookmarkDoCoMoResult)result).getURI()));
new ContentURI(((BookmarkDoCoMoResult) result).getURI()));
} catch (URISyntaxException e) {
return;
}
} else if (type == ParsedReaderResultType.EMAIL) {
EmailDoCoMoResult emailResult = (EmailDoCoMoResult)result;
EmailDoCoMoResult emailResult = (EmailDoCoMoResult) result;
try {
intent = new Intent(Intent.SENDTO_ACTION, new ContentURI(emailResult.getTo()));
} catch (URISyntaxException e) {
@ -80,14 +80,14 @@ final class ResultHandler extends Handler {
putExtra(intent, "subject", emailResult.getSubject());
putExtra(intent, "body", emailResult.getBody());
} else if (type == ParsedReaderResultType.EMAIL_ADDRESS) {
EmailAddressResult emailResult = (EmailAddressResult)result;
EmailAddressResult emailResult = (EmailAddressResult) result;
try {
intent = new Intent(Intent.SENDTO_ACTION, new ContentURI(emailResult.getEmailAddress()));
} catch (URISyntaxException e) {
return;
}
} else if (type == ParsedReaderResultType.UPC) {
UPCParsedResult upcResult = (UPCParsedResult)result;
UPCParsedResult upcResult = (UPCParsedResult) result;
try {
ContentURI uri = new ContentURI("http://www.upcdatabase.com/item.asp?upc=" +
upcResult.getUPC());
@ -96,7 +96,7 @@ final class ResultHandler extends Handler {
return;
}
} else if (type == ParsedReaderResultType.URI) {
URIParsedResult uriResult = (URIParsedResult)result;
URIParsedResult uriResult = (URIParsedResult) result;
try {
intent = new Intent(Intent.VIEW_ACTION, new ContentURI(uriResult.getURI()));
} catch (URISyntaxException e) {

View file

@ -16,15 +16,14 @@
package com.google.zxing.client.android;
import android.graphics.Bitmap;
import android.os.Handler;
import android.os.Message;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import android.graphics.Bitmap;
import android.os.Handler;
import android.os.Message;
/**
* This thread does all the heavy lifting, both during preview and for the final capture and
* decoding. That leaves the main thread free to handle UI tasks.
@ -36,12 +35,14 @@ final class WorkerThread extends Thread {
private CameraSurfaceView surfaceView;
private CameraManager cameraManager;
private Handler handler;
private enum State {
IDLE,
PREVIEW_LOOP,
STILL_AND_DECODE,
DONE
}
private State state;
WorkerThread(CameraSurfaceView surfaceView, CameraManager cameraManager, Handler handler) {
@ -58,7 +59,8 @@ final class WorkerThread extends Thread {
case IDLE:
try {
sleep(50);
} catch (InterruptedException e) { }
} catch (InterruptedException e) {
}
break;
case PREVIEW_LOOP:
surfaceView.capturePreviewAndDraw();

View file

@ -16,13 +16,12 @@
package com.google.zxing.client.android;
import com.google.zxing.MonochromeBitmapSource;
import android.graphics.Bitmap;
import com.google.zxing.BlackPointEstimationMethod;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.BlackPointEstimator;
import android.graphics.Bitmap;
/**
* This object implements MonochromeBitmapSource around an Android Bitmap. Rather than capturing an
* RGB image and calculating the grey value at each pixel, we ask the camera driver for YUV data and

View file

@ -61,7 +61,8 @@
<target name="javadoc">
<mkdir dir="docs/javadoc"/>
<javadoc destdir="docs/javadoc" footer="&lt;script src=&quot;http://www.google-analytics.com/urchin.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;&gt;_uacct = &quot;UA-788492-5&quot;; urchinTracker();&lt;/script&gt;">
<javadoc destdir="docs/javadoc"
footer="&lt;script src=&quot;http://www.google-analytics.com/urchin.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;&gt;_uacct = &quot;UA-788492-5&quot;; urchinTracker();&lt;/script&gt;">
<sourcepath>
<pathelement location="core/src"/>
<pathelement location="javame/src"/>

View file

@ -1,22 +1,30 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Common Public License - v 1.0</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Common Public License - v 1.0</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
<P><B></B><FONT SIZE="3"></FONT>
<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
AGREEMENT.</FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"><B>1. DEFINITIONS</B></FONT>
<P><FONT SIZE="2">"Contribution" means:</FONT>
<UL><FONT SIZE="2">a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and<BR CLEAR="LEFT">
b) in the case of each subsequent Contributor:</FONT></UL>
<UL><FONT SIZE="2">a) in the case of the initial Contributor, the initial code and documentation distributed under this
Agreement, and<BR CLEAR="LEFT">
b) in the case of each subsequent Contributor:</FONT></UL>
<UL><FONT SIZE="2">i) changes to the Program, and</FONT></UL>
@ -25,44 +33,81 @@ b) in the case of each subsequent Contributor:</FONT></UL>
<UL><FONT SIZE="2">ii) additions to the Program;</FONT></UL>
<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. </FONT><FONT SIZE="2">A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. </FONT><FONT SIZE="2">Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. </FONT></UL>
<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that
particular Contributor. </FONT><FONT SIZE="2">A Contribution 'originates' from a Contributor if it was added to the
Program by such Contributor itself or anyone acting on such Contributor's behalf. </FONT><FONT SIZE="2">Contributions
do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with
the Program under their own license agreement, and (ii) are not derivative works of the Program. </FONT></UL>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. </FONT>
<P><FONT SIZE="2">"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by
the use or sale of its Contribution alone or when combined with the Program. </FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this
Agreement.</FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all
Contributors.</FONT>
<P><FONT SIZE="2"><B></B></FONT>
<P><FONT SIZE="2"><B>2. GRANT OF RIGHTS</B></FONT>
<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a) </FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.</FONT></UL>
<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a) </FONT><FONT SIZE="2">Subject to the terms of this Agreement, each
Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license
to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">reproduce, prepare derivative works of, publicly
display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative
works, in source code and object code form.</FONT></UL>
<UL><FONT SIZE="2"></FONT></UL>
<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. </FONT></UL>
<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) Subject to the terms of this Agreement, each Contributor hereby
grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT
SIZE="2">royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise
transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall
apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the
Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The
patent license shall not apply to any other combinations which include the Contribution. No hardware per se is
licensed hereunder. </FONT></UL>
<UL><FONT SIZE="2"></FONT></UL>
<UL><FONT SIZE="2">c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.</FONT></UL>
<UL><FONT SIZE="2">c) Recipient understands that although each Contributor grants the licenses to its Contributions set
forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other
intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to
exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any
other intellectual property rights needed, if any. For example, if a third party patent license is required to allow
Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the
Program.</FONT></UL>
<UL><FONT SIZE="2"></FONT></UL>
<UL><FONT SIZE="2">d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. </FONT></UL>
<UL><FONT SIZE="2">d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its
Contribution, if any, to grant the copyright license set forth in this Agreement. </FONT></UL>
<UL><FONT SIZE="2"></FONT></UL>
<P><FONT SIZE="2"><B>3. REQUIREMENTS</B></FONT>
<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license
agreement, provided that:</FONT>
<UL><FONT SIZE="2">a) it complies with the terms and conditions of this Agreement; and</FONT></UL>
@ -70,16 +115,22 @@ b) in the case of each subsequent Contributor:</FONT></UL>
<UL><FONT SIZE="2">b) its license agreement:</FONT></UL>
<UL><FONT SIZE="2">i) effectively disclaims</FONT><FONT SIZE="2"> on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; </FONT></UL>
<UL><FONT SIZE="2">i) effectively disclaims</FONT><FONT SIZE="2"> on behalf of all Contributors all warranties and
conditions, express and implied, including warranties or conditions of title and non-infringement, and implied
warranties or conditions of merchantability and fitness for a particular purpose; </FONT></UL>
<UL><FONT SIZE="2">ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
<UL><FONT SIZE="2">ii) effectively excludes on behalf of all Contributors all liability for damages, including direct,
indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2"> states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2"> states that any provisions which differ from this Agreement are offered by
that Contributor alone and not by any other party; and</FONT></UL>
<UL><FONT SIZE="2">iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
<UL><FONT SIZE="2">iv) states that source code for the Program is available from such Contributor, and informs licensees
how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.</FONT><FONT
SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
@ -92,32 +143,118 @@ b) in the case of each subsequent Contributor:</FONT></UL>
<UL><FONT SIZE="2">b) a copy of this Agreement must be included with each copy of the Program. </FONT></UL>
<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program. </FONT>
<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any
copyright notices contained within the Program. </FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. </FONT>
<P><FONT SIZE="2">Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that
reasonably allows subsequent Recipients to identify the originator of the Contribution. </FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"><B>4. COMMERCIAL DISTRIBUTION</B></FONT>
<P><FONT SIZE="2">Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.</FONT>
<P><FONT SIZE="2">Commercial distributors of software may accept certain responsibilities with respect to end users,
business partners and the like. While this license is intended to facilitate the commercial use of the Program, the
Contributor who includes the Program in a commercial product offering should do so in a manner which does not create
potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product
offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor
("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims,
lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by
the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a
commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any
actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a)
promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to
control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The
Indemnified Contributor may participate in any such claim at its own expense.</FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.</FONT>
<P><FONT SIZE="2">For example, a Contributor might include the Program in a commercial product offering, Product X. That
Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers
warranties related to Product X, those performance claims and warranties are such Commercial Contributor's
responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other
Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay
any damages as a result, the Commercial Contributor must pay those damages.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5. NO WARRANTY</B></FONT>
<P><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">. </FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient
is</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT
SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this
Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with
applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or
interruption of operations</FONT><FONT SIZE="2">. </FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6. DISCLAIMER OF LIABILITY</B></FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGES.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"><B>7. GENERAL</B></FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">If any provision of this Agreement is invalid or unenforceable under applicable
law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without
further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such
provision valid and enforceable.</FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. </FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to
software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor
to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if
Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes
such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date
such litigation is filed. </FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. </FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the
material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after
becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to
cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under
this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. </FONT><FONT
SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. </FONT><FONT SIZE="2">Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new </FONT><FONT SIZE="2">version. </FONT><FONT SIZE="2">Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2"> All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2">Everyone is permitted to copy and distribute copies of this Agreement, but in
order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The
Agreement Steward reserves the right to </FONT><FONT SIZE="2">publish new versions (including revisions) of this
Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify
this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement
Steward to a suitable separate entity. </FONT><FONT SIZE="2">Each new version of the Agreement will be given a
distinguishing version number. The Program (including Contributions) may always be distributed subject to the version
of the Agreement under which it was received. In addition, after a new version of the Agreement is published,
Contributor may elect to distribute the Program (including its Contributions) under the new </FONT><FONT SIZE="2">version. </FONT><FONT
SIZE="2">Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the
intellectual property of any Contributor under this Agreement, whether expressly, </FONT><FONT SIZE="2">by
implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2"> All rights in the Program not
expressly granted under this Agreement are reserved.</FONT>
<P><FONT SIZE="2"></FONT>
<P><FONT SIZE="2">This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.</FONT>
<P><FONT SIZE="2">This Agreement is governed by the laws of the State of New York and the intellectual property laws of
the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one
year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.</FONT>
<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
<P><FONT SIZE="2"></FONT>
</BODY>

View file

@ -25,13 +25,20 @@ public final class BarcodeFormat {
// No, we can't use an enum here. J2ME doesn't support it.
/** 1D barcode format family. */
/**
* 1D barcode format family.
*/
public static final BarcodeFormat ONED = new BarcodeFormat();
/** QR Code 2D barcode format */
/**
* QR Code 2D barcode format
*/
public static final BarcodeFormat QR_CODE = new BarcodeFormat();
/** DataMatrix 2D barcode format */
/**
* DataMatrix 2D barcode format
*/
public static final BarcodeFormat DATAMATRIX = new BarcodeFormat();
private BarcodeFormat() {}
private BarcodeFormat() {
}
}

View file

@ -23,9 +23,13 @@ package com.google.zxing;
*/
public final class BlackPointEstimationMethod {
/** Method probably most suitable for use with 2D barcdoe format. */
/**
* Method probably most suitable for use with 2D barcdoe format.
*/
public static final BlackPointEstimationMethod TWO_D_SAMPLING = new BlackPointEstimationMethod();
/** Method probably most suitable for 1D barcode decoding, where one row at a time is sampled. */
/**
* Method probably most suitable for 1D barcode decoding, where one row at a time is sampled.
*/
public static final BlackPointEstimationMethod ROW_SAMPLING = new BlackPointEstimationMethod();
private BlackPointEstimationMethod() {

View file

@ -28,9 +28,13 @@ public final class DecodeHintType {
// No, we can't use an enum here. J2ME doesn't support it.
/** Unspecified, application-specific hint. */
/**
* Unspecified, application-specific hint.
*/
public static final DecodeHintType OTHER = new DecodeHintType();
/** Image is a pure monochrome image of a barcode. */
/**
* Image is a pure monochrome image of a barcode.
*/
public static final DecodeHintType PURE_BARCODE = new DecodeHintType();
/**
* Image is known to be of one of a few possible formats.
@ -38,6 +42,7 @@ public final class DecodeHintType {
*/
public static final DecodeHintType POSSIBLE_FORMATS = new DecodeHintType();
private DecodeHintType() {}
private DecodeHintType() {
}
}

View file

@ -25,6 +25,7 @@ package com.google.zxing;
public interface ResultPoint {
float getX();
float getY();
}

View file

@ -52,7 +52,7 @@ abstract class AbstractDoCoMoResult extends ParsedReaderResult {
// No terminating semicolon? uh, done. Set i such that loop terminates and break
i = rawText.length();
done = true;
} else if (rawText.charAt(i-1) == '\\') {
} else if (rawText.charAt(i - 1) == '\\') {
// semicolon was escaped so continue
i++;
} else {

View file

@ -32,6 +32,7 @@ final class GF256 {
private static final int PRIMITIVE = 0x011D;
private static final int[] exp = new int[256];
private static final int[] log = new int[256];
static {
int x = 1;
for (int i = 0; i < 256; i++) {
@ -87,7 +88,6 @@ final class GF256 {
}
/**
*
* @param a
* @param b
* @return product of a and b in GF(256)

View file

@ -27,10 +27,14 @@ package com.google.zxing.common.reedsolomon;
*/
final class GF256Poly {
/** Polynimal representing the monomial 0. */
static final GF256Poly ZERO = new GF256Poly(new int[] { 0 });
/** Polynimal representing the monomial 1. */
static final GF256Poly ONE = new GF256Poly(new int[] { 1 });
/**
* Polynimal representing the monomial 0.
*/
static final GF256Poly ZERO = new GF256Poly(new int[]{0});
/**
* Polynimal representing the monomial 1.
*/
static final GF256Poly ONE = new GF256Poly(new int[]{1});
private final int[] coefficients;

View file

@ -125,7 +125,7 @@ public final class ReedSolomonDecoder {
int inverse = GF256.inverse(sigmaTildeAtZero);
GF256Poly sigma = t.multiply(inverse);
GF256Poly omega = r.multiply(inverse);
return new GF256Poly[] { sigma, omega };
return new GF256Poly[]{sigma, omega};
}
private static int[] findErrorLocations(GF256Poly errorLocator)

View file

@ -16,9 +16,9 @@
package com.google.zxing.oned;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.ResultPoint;
import com.google.zxing.ReaderException;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.GenericResultPoint;
@ -34,13 +34,19 @@ public abstract class AbstractUPCEANReader extends AbstractOneDReader implements
private static final float MAX_VARIANCE = 0.4f;
/** Start/end guard pattern. */
/**
* Start/end guard pattern.
*/
protected static final int[] START_END_PATTERN = {1, 1, 1,};
/** Pattern marking the middle of a UPC/EAN pattern, separating the two halves. */
/**
* Pattern marking the middle of a UPC/EAN pattern, separating the two halves.
*/
protected static final int[] MIDDLE_PATTERN = {1, 1, 1, 1, 1};
/** "Odd", or "L" patterns used to encode UPC/EAN digits. */
/**
* "Odd", or "L" patterns used to encode UPC/EAN digits.
*/
protected static final int[][] L_PATTERNS = {
{3, 2, 1, 1}, // 0
{2, 2, 2, 1}, // 1
@ -54,7 +60,9 @@ public abstract class AbstractUPCEANReader extends AbstractOneDReader implements
{3, 1, 1, 2} // 9
};
/** As above but also including the "even", or "G" patterns used to encode UPC/EAN digits. */
/**
* As above but also including the "even", or "G" patterns used to encode UPC/EAN digits.
*/
protected static final int[][] L_AND_G_PATTERNS;
static {
@ -193,7 +201,7 @@ public abstract class AbstractUPCEANReader extends AbstractOneDReader implements
} else {
if (counterPosition == patternLength - 1) {
if (patternMatchVariance(counters, pattern) < MAX_VARIANCE) {
return new int[] {patternStart, x};
return new int[]{patternStart, x};
}
patternStart += counters[0] + counters[1];
for (int y = 2; y < patternLength; y++) {

View file

@ -16,8 +16,8 @@
package com.google.zxing.oned;
import com.google.zxing.Result;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.ResultPoint;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.GenericResultPoint;
@ -182,7 +182,7 @@ public final class Code128Reader extends AbstractOneDReader {
if (counterPosition == patternLength - 1) {
for (int startCode = CODE_START_A; startCode <= CODE_START_C; startCode++) {
if (patternMatchVariance(counters, CODE_PATTERNS[startCode]) < MAX_VARIANCE) {
return new int[] {patternStart, i, startCode};
return new int[]{patternStart, i, startCode};
}
}
patternStart += counters[0] + counters[1];

View file

@ -138,7 +138,7 @@ public final class Code39Reader extends AbstractOneDReader {
if (counterPosition == patternLength - 1) {
try {
if (toNarrowWidePattern(counters) == ASTERISK_ENCODING) {
return new int[] {patternStart, i};
return new int[]{patternStart, i};
}
} catch (ReaderException re) {
// no match, continue

View file

@ -33,7 +33,7 @@ public final class MultiFormatUPCEANReader extends AbstractOneDReader {
* Reader implementations to which this implementation delegates, in the order
* they will be attempted. Order is important.
*/
private final UPCEANReader[] readers = new UPCEANReader[] {
private final UPCEANReader[] readers = new UPCEANReader[]{
new EAN13Reader(), new UPCAReader(), new EAN8Reader(), new UPCEReader()
};

View file

@ -26,16 +26,24 @@ final class ErrorCorrectionLevel {
// No, we can't use an enum here. J2ME doesn't support it.
/** L = ~7% correction */
/**
* L = ~7% correction
*/
static final ErrorCorrectionLevel L = new ErrorCorrectionLevel(0);
/** M = ~15% correction */
/**
* M = ~15% correction
*/
static final ErrorCorrectionLevel M = new ErrorCorrectionLevel(1);
/** Q = ~25% correction */
/**
* Q = ~25% correction
*/
static final ErrorCorrectionLevel Q = new ErrorCorrectionLevel(2);
/** H = ~30% correction */
/**
* H = ~30% correction
*/
static final ErrorCorrectionLevel H = new ErrorCorrectionLevel(3);
private static final ErrorCorrectionLevel[] FOR_BITS = new ErrorCorrectionLevel[] { M, L, H, Q };
private static final ErrorCorrectionLevel[] FOR_BITS = new ErrorCorrectionLevel[]{M, L, H, Q};
private final int ordinal;

View file

@ -66,7 +66,9 @@ final class FormatInformation {
{0x2BED, 0x1F},
};
/** Offset i holds the number of 1 bits in the binary representation of i */
/**
* Offset i holds the number of 1 bits in the binary representation of i
*/
private static final int[] BITS_SET_IN_HALF_BYTE =
new int[]{0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4};
@ -94,7 +96,6 @@ final class FormatInformation {
}
/**
*
* @param rawFormatInfo
* @return
*/

View file

@ -28,11 +28,11 @@ final class Mode {
// No, we can't use an enum here. J2ME doesn't support it.
static final Mode TERMINATOR = new Mode(new int[] {0, 0, 0}); // Not really a mode...
static final Mode NUMERIC = new Mode(new int[] {10, 12, 14});
static final Mode ALPHANUMERIC = new Mode(new int[] {9, 11, 13});
static final Mode BYTE = new Mode(new int[] {8, 16, 16});
static final Mode KANJI = new Mode(new int[] {8, 10, 12});
static final Mode TERMINATOR = new Mode(new int[]{0, 0, 0}); // Not really a mode...
static final Mode NUMERIC = new Mode(new int[]{10, 12, 14});
static final Mode ALPHANUMERIC = new Mode(new int[]{9, 11, 13});
static final Mode BYTE = new Mode(new int[]{8, 16, 16});
static final Mode KANJI = new Mode(new int[]{8, 10, 12});
private int[] characterCountBitsForVersions;

View file

@ -55,7 +55,7 @@ public final class Version {
ECBlocks ecBlocks4) {
this.versionNumber = versionNumber;
this.alignmentPatternCenters = alignmentPatternCenters;
this.ecBlocks = new ECBlocks[] { ecBlocks1, ecBlocks2, ecBlocks3, ecBlocks4 };
this.ecBlocks = new ECBlocks[]{ecBlocks1, ecBlocks2, ecBlocks3, ecBlocks4};
int total = 0;
ECBlocks levelLECBlocks = ecBlocks1; // L,M,Q,H -- all the same total
int ecCodewords = levelLECBlocks.ecCodewords;
@ -187,12 +187,12 @@ public final class Version {
private ECBlocks(int ecCodewords, ECB ecBlocks) {
this.ecCodewords = ecCodewords;
this.ecBlocks = new ECB[] { ecBlocks };
this.ecBlocks = new ECB[]{ecBlocks};
}
private ECBlocks(int ecCodewords, ECB ecBlocks1, ECB ecBlocks2) {
this.ecCodewords = ecCodewords;
this.ecBlocks = new ECB[] { ecBlocks1, ecBlocks2 };
this.ecBlocks = new ECB[]{ecBlocks1, ecBlocks2};
}
int getECCodewords() {

View file

@ -99,9 +99,9 @@ public final class Detector {
ResultPoint[] points;
if (alignmentPattern == null) {
points = new ResultPoint[] { bottomLeft, topLeft, topRight };
points = new ResultPoint[]{bottomLeft, topLeft, topRight};
} else {
points = new ResultPoint[] { bottomLeft, topLeft, topRight, alignmentPattern };
points = new ResultPoint[]{bottomLeft, topLeft, topRight, alignmentPattern};
}
return new DetectorResult(bits, points);
}

View file

@ -437,7 +437,7 @@ final class FinderPatternFinder {
if (size == 3) {
// Found just enough -- hope these are good!
return new FinderPattern[] {
return new FinderPattern[]{
(FinderPattern) possibleCenters.elementAt(0),
(FinderPattern) possibleCenters.elementAt(1),
(FinderPattern) possibleCenters.elementAt(2)
@ -458,7 +458,7 @@ final class FinderPatternFinder {
// We don't have java.util.Collections in J2ME
Collections.insertionSort(possibleCenters, new ClosestToAverageComparator(averageModuleSize));
return new FinderPattern[] {
return new FinderPattern[]{
(FinderPattern) possibleCenters.elementAt(0),
(FinderPattern) possibleCenters.elementAt(1),
(FinderPattern) possibleCenters.elementAt(2)
@ -510,7 +510,7 @@ final class FinderPatternFinder {
bottomLeft = temp;
}
return new FinderPattern[] {bottomLeft, topLeft, topRight};
return new FinderPattern[]{bottomLeft, topLeft, topRight};
}
/**
@ -536,9 +536,11 @@ final class FinderPatternFinder {
*/
private static class ClosestToAverageComparator implements Comparator {
private final float averageModuleSize;
private ClosestToAverageComparator(float averageModuleSize) {
this.averageModuleSize = averageModuleSize;
}
public int compare(Object center1, Object center2) {
return Math.abs(((FinderPattern) center1).getEstimatedModuleSize() - averageModuleSize) <
Math.abs(((FinderPattern) center2).getEstimatedModuleSize() - averageModuleSize) ?

View file

@ -69,10 +69,10 @@ final class PerspectiveTransform {
float a33 = this.a33;
for (int i = 0; i < max; i += 2) {
float x = points[i];
float y = points[i+1];
float denominator = a13*x + a23*y + a33;
points[i] = (a11*x + a21*y + a31) / denominator;
points[i+1] = (a12*x + a22*y + a32) / denominator;
float y = points[i + 1];
float denominator = a13 * x + a23 * y + a33;
points[i] = (a11 * x + a21 * y + a31) / denominator;
points[i + 1] = (a12 * x + a22 * y + a32) / denominator;
}
}
@ -91,11 +91,11 @@ final class PerspectiveTransform {
float dx2 = x3 - x2;
float dx3 = x0 - x1 + x2 - x3;
float dy1 = y1 - y2;
float denominator = dx1*dy2 - dx2*dy1;
float a13 = (dx3*dy2 - dx2*dy3) / denominator;
float a23 = (dx1*dy3 - dx3*dy1) / denominator;
return new PerspectiveTransform(x1 - x0 + a13*x1, x3 - x0 + a23*x3, x0,
y1 - y0 + a13*y1, y3 - y0 + a23*y3, y0,
float denominator = dx1 * dy2 - dx2 * dy1;
float a13 = (dx3 * dy2 - dx2 * dy3) / denominator;
float a23 = (dx1 * dy3 - dx3 * dy1) / denominator;
return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0,
y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0,
a13, a23, 1.0f);
}
}
@ -110,27 +110,27 @@ final class PerspectiveTransform {
PerspectiveTransform buildAdjoint() {
// Adjoint is the transpose of the cofactor matrix:
return new PerspectiveTransform(a22*a33 - a23*a32,
a23*a31 - a21*a33,
a21*a32 - a22*a31,
a13*a32 - a12*a33,
a11*a33 - a13*a31,
a12*a31 - a11*a32,
a12*a23 - a13*a22,
a13*a21 - a11*a23,
a11*a22 - a12*a21);
return new PerspectiveTransform(a22 * a33 - a23 * a32,
a23 * a31 - a21 * a33,
a21 * a32 - a22 * a31,
a13 * a32 - a12 * a33,
a11 * a33 - a13 * a31,
a12 * a31 - a11 * a32,
a12 * a23 - a13 * a22,
a13 * a21 - a11 * a23,
a11 * a22 - a12 * a21);
}
PerspectiveTransform times(PerspectiveTransform other) {
return new PerspectiveTransform(a11*other.a11 + a21*other.a12 + a31*other.a13,
a11*other.a21 + a21*other.a22 + a31*other.a23,
a11*other.a31 + a21*other.a32 + a31*other.a33,
a12*other.a11 + a22*other.a12 + a32*other.a13,
a12*other.a21 + a22*other.a22 + a32*other.a23,
a12*other.a31 + a22*other.a32 + a32*other.a33,
a13*other.a11 + a23*other.a12 + a33*other.a13,
a13*other.a21 + a23*other.a22 + a33*other.a23,
a13*other.a31 + a23*other.a32 + a33*other.a33);
return new PerspectiveTransform(a11 * other.a11 + a21 * other.a12 + a31 * other.a13,
a11 * other.a21 + a21 * other.a22 + a31 * other.a23,
a11 * other.a31 + a21 * other.a32 + a31 * other.a33,
a12 * other.a11 + a22 * other.a12 + a32 * other.a13,
a12 * other.a21 + a22 * other.a22 + a32 * other.a23,
a12 * other.a31 + a22 * other.a32 + a32 * other.a33,
a13 * other.a11 + a23 * other.a12 + a33 * other.a13,
a13 * other.a21 + a23 * other.a22 + a33 * other.a23,
a13 * other.a31 + a23 * other.a32 + a33 * other.a33);
}

View file

@ -38,7 +38,7 @@ public final class CollectionsTestCase extends TestCase {
}
});
for (int i = 1; i < 100; i++) {
assertTrue("Element " + i, ((Integer) v.elementAt(i-1)).intValue() <=
assertTrue("Element " + i, ((Integer) v.elementAt(i - 1)).intValue() <=
((Integer) v.elementAt(i)).intValue());
}
}

View file

@ -16,8 +16,8 @@
package com.google.zxing.oned;
import com.google.zxing.common.AbstractBlackBoxTestCase;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.common.AbstractBlackBoxTestCase;
import java.io.File;

View file

@ -24,7 +24,7 @@ import junit.framework.TestCase;
public final class BitSourceTestCase extends TestCase {
public void testSource() {
byte[] bytes = new byte[] { (byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5 };
byte[] bytes = new byte[]{(byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5};
BitSource source = new BitSource(bytes);
assertEquals(40, source.available());
assertEquals(0, source.readBits(1));

View file

@ -59,7 +59,7 @@ public final class DataMaskTestCase extends TestCase {
public void testMask4() {
testMaskAcrossDimensions(4, new MaskCondition() {
public boolean isMasked(int i, int j) {
return (i/2 + j/3) % 2 == 0;
return (i / 2 + j / 3) % 2 == 0;
}
});
}
@ -67,7 +67,7 @@ public final class DataMaskTestCase extends TestCase {
public void testMask5() {
testMaskAcrossDimensions(5, new MaskCondition() {
public boolean isMasked(int i, int j) {
return (i*j) % 2 + (i*j) % 3 == 0;
return (i * j) % 2 + (i * j) % 3 == 0;
}
});
}
@ -75,7 +75,7 @@ public final class DataMaskTestCase extends TestCase {
public void testMask6() {
testMaskAcrossDimensions(6, new MaskCondition() {
public boolean isMasked(int i, int j) {
return ((i*j) % 2 + (i*j) % 3) % 2 == 0;
return ((i * j) % 2 + (i * j) % 3) % 2 == 0;
}
});
}
@ -83,7 +83,7 @@ public final class DataMaskTestCase extends TestCase {
public void testMask7() {
testMaskAcrossDimensions(7, new MaskCondition() {
public boolean isMasked(int i, int j) {
return ((i+j) % 2 + (i*j) % 3) % 2 == 0;
return ((i + j) % 2 + (i * j) % 3) % 2 == 0;
}
});
}
@ -92,7 +92,7 @@ public final class DataMaskTestCase extends TestCase {
MaskCondition condition) {
DataMask mask = DataMask.forReference(reference);
for (int version = 1; version <= 40; version++) {
int dimension = 17 + 4*version;
int dimension = 17 + 4 * version;
testMask(mask, dimension, condition);
}
}

View file

@ -27,7 +27,7 @@ public final class FormatInformationTestCase extends TestCase {
assertEquals(0, FormatInformation.numBitsDiffering(1, 1));
assertEquals(1, FormatInformation.numBitsDiffering(0, 2));
assertEquals(2, FormatInformation.numBitsDiffering(1, 2));
assertEquals(32, FormatInformation.numBitsDiffering(-1,0));
assertEquals(32, FormatInformation.numBitsDiffering(-1, 0));
}
public void testDecode() {

View file

@ -45,11 +45,11 @@ public final class PerspectiveTransformTestCase extends TestCase {
assertPointEquals(290.0f, 270.0f, 16.0f, 15.0f, pt);
assertPointEquals(150.0f, 280.0f, 4.0f, 9.0f, pt);
assertPointEquals(7.1516876f, -64.60185f, 0.5f, 0.5f, pt);
assertPointEquals(328.09116f, 334.16385f,50.0f, 50.0f, pt);
assertPointEquals(328.09116f, 334.16385f, 50.0f, 50.0f, pt);
}
private static void assertPointEquals(float expectedX, float expectedY, float sourceX, float sourceY, PerspectiveTransform pt) {
float[] points = new float[] { sourceX, sourceY };
float[] points = new float[]{sourceX, sourceY};
pt.transformPoints(points);
assertEquals(expectedX, points[0], EPSILON);
assertEquals(expectedY, points[1], EPSILON);

View file

@ -123,14 +123,16 @@
</fileset>
</copy>
<copy file="src/com/google/zxing/client/j2me/MANIFEST.MF.template" tofile="src/com/google/zxing/client/j2me/MANIFEST.MF" overwrite="true">
<copy file="src/com/google/zxing/client/j2me/MANIFEST.MF.template"
tofile="src/com/google/zxing/client/j2me/MANIFEST.MF" overwrite="true">
<filterset>
<filter token="APP_NAME" value="${jar-name}"/>
<filter token="VERSION" value="${version}"/>
</filterset>
</copy>
<jar jarfile="${jar-name}.jar" basedir="build-j2me" manifest="src/com/google/zxing/client/j2me/MANIFEST.MF" level="9"/>
<jar jarfile="${jar-name}.jar" basedir="build-j2me" manifest="src/com/google/zxing/client/j2me/MANIFEST.MF"
level="9"/>
<move file="${jar-name}.jar" tofile="temp.jar"/>
<java jar="${WTK-home}/bin/proguard.jar" fork="true" failonerror="true">

View file

@ -16,8 +16,8 @@
package com.google.zxing.client.j2me;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.BlackPointEstimationMethod;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.BlackPointEstimator;

View file

@ -16,8 +16,8 @@
package com.google.zxing.client.j2se;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.BlackPointEstimationMethod;
import com.google.zxing.MonochromeBitmapSource;
import com.google.zxing.common.BitArray;
import com.google.zxing.common.BlackPointEstimator;

View file

@ -69,7 +69,7 @@ public final class ImageConverter {
BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY);
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
result.setRGB(i, j, src.isBlack(i,j) ? BLACK : WHITE);
result.setRGB(i, j, src.isBlack(i, j) ? BLACK : WHITE);
}
}
@ -82,9 +82,9 @@ public final class ImageConverter {
String name = uri.getPath();
int slashPos = name.lastIndexOf((int) '/');
String parent, basename;
if (slashPos != -1 && slashPos != name.length()-1) {
if (slashPos != -1 && slashPos != name.length() - 1) {
parent = name.substring(0, slashPos);
basename = name.substring(slashPos+1);
basename = name.substring(slashPos + 1);
} else {
parent = ".";
basename = name;
@ -94,7 +94,7 @@ public final class ImageConverter {
return null;
}
File baseFile = new File(parent,basename);
File baseFile = new File(parent, basename);
if (!baseFile.exists()) {
return null;
}