mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
Added an ISBN parsed result type courtesy of jbreiden.
git-svn-id: https://zxing.googlecode.com/svn/trunk@576 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
853ab5cdaa
commit
d45123da9e
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright 2008 ZXing authors
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package com.google.zxing.client.result;
|
||||
|
||||
/**
|
||||
* @author jbreiden@google.com (Jeff Breidenbach)
|
||||
*/
|
||||
public final class ISBNParsedResult extends ParsedResult {
|
||||
|
||||
private final String isbn;
|
||||
|
||||
ISBNParsedResult(String isbn) {
|
||||
super(ParsedResultType.ISBN);
|
||||
this.isbn = isbn;
|
||||
}
|
||||
|
||||
public String getISBN() {
|
||||
return isbn;
|
||||
}
|
||||
|
||||
public String getDisplayResult() {
|
||||
return isbn;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyright 2008 ZXing authors
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package com.google.zxing.client.result;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.Result;
|
||||
|
||||
/**
|
||||
* Parses strings of digits that represent a ISBN.
|
||||
*
|
||||
* @author jbreiden@google.com (Jeff Breidenbach)
|
||||
*/
|
||||
public class ISBNResultParser extends ResultParser {
|
||||
|
||||
private ISBNResultParser() {
|
||||
}
|
||||
|
||||
// ISBN-13 For Dummies
|
||||
// http://www.bisg.org/isbn-13/for.dummies.html
|
||||
public static ISBNParsedResult parse(Result result) {
|
||||
BarcodeFormat format = result.getBarcodeFormat();
|
||||
if (!BarcodeFormat.EAN_13.equals(format)) {
|
||||
return null;
|
||||
}
|
||||
String rawText = result.getText();
|
||||
if (rawText == null) {
|
||||
return null;
|
||||
}
|
||||
int length = rawText.length();
|
||||
if (length != 13) {
|
||||
return null;
|
||||
}
|
||||
if (!rawText.startsWith("978") && !rawText.startsWith("979")) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new ISBNParsedResult(rawText);
|
||||
}
|
||||
|
||||
}
|
|
@ -37,6 +37,7 @@ public final class ParsedResultType {
|
|||
// "optional" types
|
||||
public static final ParsedResultType NDEF_SMART_POSTER = new ParsedResultType("NDEF_SMART_POSTER");
|
||||
public static final ParsedResultType MOBILETAG_RICH_WEB = new ParsedResultType("MOBILETAG_RICH_WEB");
|
||||
public static final ParsedResultType ISBN = new ParsedResultType("ISBN");
|
||||
|
||||
private final String name;
|
||||
|
||||
|
|
|
@ -65,6 +65,8 @@ public abstract class ResultParser {
|
|||
return result;
|
||||
} else if ((result = URIResultParser.parse(theResult)) != null) {
|
||||
return result;
|
||||
} else if ((result = ISBNResultParser.parse(theResult)) != null) {
|
||||
return result;
|
||||
} else if ((result = UPCResultParser.parse(theResult)) != null) {
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,9 @@ final class UPCResultParser extends ResultParser {
|
|||
!BarcodeFormat.EAN_8.equals(format) && !BarcodeFormat.EAN_13.equals(format)) {
|
||||
return null;
|
||||
}
|
||||
if (ISBNResultParser.parse(result) != null) {
|
||||
return null;
|
||||
}
|
||||
String rawText = result.getText();
|
||||
if (rawText == null) {
|
||||
return null;
|
||||
|
@ -50,7 +53,7 @@ final class UPCResultParser extends ResultParser {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
// Not actually checking the checkusm again here
|
||||
// Not actually checking the checksum again here
|
||||
return new UPCParsedResult(rawText);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue