📄 modulefactory.java
字号:
/***********************************************************************************************************************
* Copyright (c) 2003, International Barcode Consortium
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* Neither the name of the International Barcode Consortium nor the names of any contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
***********************************************************************************************************************/
package net.sourceforge.barbecue.linear.code128;
import net.sourceforge.barbecue.Module;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Code 128 barcode module definitions.
*
* @author <a href="mailto:opensource@ianbourke.com">Ian Bourke</a>
*/
public final class ModuleFactory {
private static final List A_KEYS = new ArrayList();
private static final List B_KEYS = new ArrayList();
private static final List C_KEYS = new ArrayList();
private static final Map A_SET = new HashMap();
private static final Map B_SET = new HashMap();
private static final Map C_SET = new HashMap();
static {
initA();
initB();
initC();
}
///CLOVER:OFF
/**
* Cannot construct.
*/
private ModuleFactory() {
}
///CLOVER:ON
/**
* Initialise the module definitions.
*/
private static void initA() {
A_KEYS.add(" "); A_SET.put(" ", new Module(new int[] {2, 1, 2, 2, 2, 2}));
A_KEYS.add("!"); A_SET.put("!", new Module(new int[] {2, 2, 2, 1, 2, 2}));
A_KEYS.add("\""); A_SET.put("\"", new Module(new int[] {2, 2, 2, 2, 2, 1}));
A_KEYS.add("#"); A_SET.put("#", new Module(new int[] {1, 2, 1, 2, 2, 3}));
A_KEYS.add("$"); A_SET.put("$", new Module(new int[] {1, 2, 1, 3, 2, 2}));
A_KEYS.add("%"); A_SET.put("%", new Module(new int[] {1, 3, 1, 2, 2, 2}));
A_KEYS.add("&"); A_SET.put("&", new Module(new int[] {1, 2, 2, 2, 1, 3}));
A_KEYS.add("'"); A_SET.put("'", new Module(new int[] {1, 2, 2, 3, 1, 2}));
A_KEYS.add("("); A_SET.put("(", new Module(new int[] {1, 3, 2, 2, 1, 2}));
A_KEYS.add(")"); A_SET.put(")", new Module(new int[] {2, 2, 1, 2, 1, 3}));
A_KEYS.add("*"); A_SET.put("*", new Module(new int[] {2, 2, 1, 3, 1, 2}));
A_KEYS.add("+"); A_SET.put("+", new Module(new int[] {2, 3, 1, 2, 1, 2}));
A_KEYS.add(","); A_SET.put(",", new Module(new int[] {1, 1, 2, 2, 3, 2}));
A_KEYS.add("-"); A_SET.put("-", new Module(new int[] {1, 2, 2, 1, 3, 2}));
A_KEYS.add("."); A_SET.put(".", new Module(new int[] {1, 2, 2, 2, 3, 1}));
A_KEYS.add("/"); A_SET.put("/", new Module(new int[] {1, 1, 3, 2, 2, 2}));
A_KEYS.add("0"); A_SET.put("0", new Module(new int[] {1, 2, 3, 1, 2, 2}));
A_KEYS.add("1"); A_SET.put("1", new Module(new int[] {1, 2, 3, 2, 2, 1}));
A_KEYS.add("2"); A_SET.put("2", new Module(new int[] {2, 2, 3, 2, 1, 1}));
A_KEYS.add("3"); A_SET.put("3", new Module(new int[] {2, 2, 1, 1, 3, 2}));
A_KEYS.add("4"); A_SET.put("4", new Module(new int[] {2, 2, 1, 2, 3, 1}));
A_KEYS.add("5"); A_SET.put("5", new Module(new int[] {2, 1, 3, 2, 1, 2}));
A_KEYS.add("6"); A_SET.put("6", new Module(new int[] {2, 2, 3, 1, 1, 2}));
A_KEYS.add("7"); A_SET.put("7", new Module(new int[] {3, 1, 2, 1, 3, 1}));
A_KEYS.add("8"); A_SET.put("8", new Module(new int[] {3, 1, 1, 2, 2, 2}));
A_KEYS.add("9"); A_SET.put("9", new Module(new int[] {3, 2, 1, 1, 2, 2}));
A_KEYS.add(":"); A_SET.put(":", new Module(new int[] {3, 2, 1, 2, 2, 1}));
A_KEYS.add(";"); A_SET.put(";", new Module(new int[] {3, 1, 2, 2, 1, 2}));
A_KEYS.add("<"); A_SET.put("<", new Module(new int[] {3, 2, 2, 1, 1, 2}));
A_KEYS.add("="); A_SET.put("=", new Module(new int[] {3, 2, 2, 2, 1, 1}));
A_KEYS.add(">"); A_SET.put(">", new Module(new int[] {2, 1, 2, 1, 2, 3}));
A_KEYS.add("?"); A_SET.put("?", new Module(new int[] {2, 1, 2, 3, 2, 1}));
A_KEYS.add("@"); A_SET.put("@", new Module(new int[] {2, 3, 2, 1, 2, 1}));
A_KEYS.add("A"); A_SET.put("A", new Module(new int[] {1, 1, 1, 3, 2, 3}));
A_KEYS.add("B"); A_SET.put("B", new Module(new int[] {1, 3, 1, 1, 2, 3}));
A_KEYS.add("C"); A_SET.put("C", new Module(new int[] {1, 3, 1, 3, 2, 1}));
A_KEYS.add("D"); A_SET.put("D", new Module(new int[] {1, 1, 2, 3, 1, 3}));
A_KEYS.add("E"); A_SET.put("E", new Module(new int[] {1, 3, 2, 1, 1, 3}));
A_KEYS.add("F"); A_SET.put("F", new Module(new int[] {1, 3, 2, 3, 1, 1}));
A_KEYS.add("G"); A_SET.put("G", new Module(new int[] {2, 1, 1, 3, 1, 3}));
A_KEYS.add("H"); A_SET.put("H", new Module(new int[] {2, 3, 1, 1, 1, 3}));
A_KEYS.add("I"); A_SET.put("I", new Module(new int[] {2, 3, 1, 3, 1, 1}));
A_KEYS.add("J"); A_SET.put("J", new Module(new int[] {1, 1, 2, 1, 3, 3}));
A_KEYS.add("K"); A_SET.put("K", new Module(new int[] {1, 1, 2, 3, 3, 1}));
A_KEYS.add("L"); A_SET.put("L", new Module(new int[] {1, 3, 2, 1, 3, 1}));
A_KEYS.add("M"); A_SET.put("M", new Module(new int[] {1, 1, 3, 1, 2, 3}));
A_KEYS.add("N"); A_SET.put("N", new Module(new int[] {1, 1, 3, 3, 2, 1}));
A_KEYS.add("O"); A_SET.put("O", new Module(new int[] {1, 3, 3, 1, 2, 1}));
A_KEYS.add("P"); A_SET.put("P", new Module(new int[] {3, 1, 3, 1, 2, 1}));
A_KEYS.add("Q"); A_SET.put("Q", new Module(new int[] {2, 1, 1, 3, 3, 1}));
A_KEYS.add("R"); A_SET.put("R", new Module(new int[] {2, 3, 1, 1, 3, 1}));
A_KEYS.add("S"); A_SET.put("S", new Module(new int[] {2, 1, 3, 1, 1, 3}));
A_KEYS.add("T"); A_SET.put("T", new Module(new int[] {2, 1, 3, 3, 1, 1}));
A_KEYS.add("U"); A_SET.put("U", new Module(new int[] {2, 1, 3, 1, 3, 1}));
A_KEYS.add("V"); A_SET.put("V", new Module(new int[] {3, 1, 1, 1, 2, 3}));
A_KEYS.add("W"); A_SET.put("W", new Module(new int[] {3, 1, 1, 3, 2, 1}));
A_KEYS.add("X"); A_SET.put("X", new Module(new int[] {3, 3, 1, 1, 2, 1}));
A_KEYS.add("Y"); A_SET.put("Y", new Module(new int[] {3, 1, 2, 1, 1, 3}));
A_KEYS.add("Z"); A_SET.put("Z", new Module(new int[] {3, 1, 2, 3, 1, 1}));
A_KEYS.add("["); A_SET.put("[", new Module(new int[] {3, 3, 2, 1, 1, 1}));
A_KEYS.add("\\"); A_SET.put("\\", new Module(new int[] {3, 1, 4, 1, 1, 1}));
A_KEYS.add("]"); A_SET.put("]", new Module(new int[] {2, 2, 1, 4, 1, 1}));
A_KEYS.add("^"); A_SET.put("^", new Module(new int[] {4, 3, 1, 1, 1, 1}));
A_KEYS.add("_"); A_SET.put("_", new Module(new int[] {1, 1, 1, 2, 2, 4}));
/*NUL*/ A_KEYS.add("\000"); A_SET.put("\000", new Module(new int[] {1, 1, 1, 4, 2, 2}));
/*SOH*/ A_KEYS.add("\001"); A_SET.put("\001", new Module(new int[] {1, 2, 1, 1, 2, 4}));
/*STX*/ A_KEYS.add("\002"); A_SET.put("\002", new Module(new int[] {1, 2, 1, 4, 2, 1}));
/*ETX*/ A_KEYS.add("\003"); A_SET.put("\003", new Module(new int[] {1, 4, 1, 1, 2, 2}));
/*EOT*/ A_KEYS.add("\004"); A_SET.put("\004", new Module(new int[] {1, 4, 1, 2, 2, 1}));
/*ENQ*/ A_KEYS.add("\005"); A_SET.put("\005", new Module(new int[] {1, 1, 2, 2, 1, 4}));
/*ACK*/ A_KEYS.add("\006"); A_SET.put("\006", new Module(new int[] {1, 1, 2, 4, 1, 2}));
/*BEL*/ A_KEYS.add("\007"); A_SET.put("\007", new Module(new int[] {1, 2, 2, 1, 1, 4}));
/*BS*/ A_KEYS.add("\010"); A_SET.put("\010", new Module(new int[] {1, 2, 2, 4, 1, 1}));
/*HT*/ A_KEYS.add("\011"); A_SET.put("\011", new Module(new int[] {1, 4, 2, 1, 1, 2}));
/*LF*/ A_KEYS.add("\012"); A_SET.put("\012", new Module(new int[] {1, 4, 2, 2, 1, 1}));
/*VT*/ A_KEYS.add("\013"); A_SET.put("\013", new Module(new int[] {2, 4, 1, 2, 1, 1}));
/*FF*/ A_KEYS.add("\014"); A_SET.put("\014", new Module(new int[] {2, 2, 1, 1, 1, 4}));
/*CR*/ A_KEYS.add("\015"); A_SET.put("\015", new Module(new int[] {4, 1, 3, 1, 1, 1}));
/*SO*/ A_KEYS.add("\016"); A_SET.put("\016", new Module(new int[] {2, 4, 1, 1, 1, 2}));
/*SI*/ A_KEYS.add("\017"); A_SET.put("\017", new Module(new int[] {1, 3, 4, 1, 1, 1}));
/*DLE*/ A_KEYS.add("\020"); A_SET.put("\020", new Module(new int[] {1, 1, 1, 2, 4, 2}));
/*DC1*/ A_KEYS.add("\021"); A_SET.put("\021", new Module(new int[] {1, 2, 1, 1, 4, 2}));
/*DC2*/ A_KEYS.add("\022"); A_SET.put("\022", new Module(new int[] {1, 2, 1, 2, 4, 1}));
/*DC3*/ A_KEYS.add("\023"); A_SET.put("\023", new Module(new int[] {1, 1, 4, 2, 1, 2}));
/*DC4*/ A_KEYS.add("\024"); A_SET.put("\024", new Module(new int[] {1, 2, 4, 1, 1, 2}));
/*NAK*/ A_KEYS.add("\025"); A_SET.put("\025", new Module(new int[] {1, 2, 4, 2, 1, 1}));
/*SYN*/ A_KEYS.add("\026"); A_SET.put("\026", new Module(new int[] {4, 1, 1, 2, 1, 2}));
/*ETB*/ A_KEYS.add("\027"); A_SET.put("\027", new Module(new int[] {4, 2, 1, 1, 1, 2}));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -