1 /*
2  * JasperReports - Free Java Reporting Library.
3  * Copyright (C) 2001 - 2019 TIBCO Software Inc. All rights reserved.
4  * http://www.jaspersoft.com
5  *
6  * Unless you have purchased a commercial license agreement from Jaspersoft,
7  * the following license terms apply:
8  *
9  * This program is part of JasperReports.
10  *
11  * JasperReports is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * JasperReports is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
23  */

24 package net.sf.jasperreports.components.barcode4j;
25
26 import net.sf.jasperreports.engine.JRRuntimeException;
27 import net.sf.jasperreports.engine.type.EnumUtil;
28 import net.sf.jasperreports.engine.type.NamedEnum;
29
30 import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
31
32
33 /**
34  * @author Sanda Zaharia (shertage@users.sourceforge.net)
35  */

36 public enum ErrorCorrectionLevelEnum implements NamedEnum
37 {
38     /**
39      *
40      */

41     L("L"),
42
43     /**
44      *
45      */

46     M("M"),
47
48     /**
49      *
50      */

51     Q("Q"),
52
53     /**
54      *
55      */

56     H("H");
57
58     /**
59      *
60      */

61     private final transient String name;
62     public static final String EXCEPTION_MESSAGE_KEY_UNKNOWN_NAME = "components.barcode4j.error.correction.level.unknown.name";
63
64     private ErrorCorrectionLevelEnum(String name) 
65     {
66         this.name = name;
67     }
68
69     @Override
70     public String getName()
71     {
72         return name;
73     }
74
75     /**
76      *
77      */

78     public final ErrorCorrectionLevel getErrorCorrectionLevel()
79     {
80         // not storing this as instance field as we don't want to force an iText dependency
81         ErrorCorrectionLevel level;
82         if (name.equals("L"))
83         {
84             level = ErrorCorrectionLevel.L;
85         }
86         else if (name.equalsIgnoreCase("M"))
87         {
88             level = ErrorCorrectionLevel.M;
89         }
90         else if (name.equalsIgnoreCase("Q"))
91         {
92             level = ErrorCorrectionLevel.Q;
93         }
94         else if (name.equalsIgnoreCase("H"))
95         {
96             level = ErrorCorrectionLevel.H;
97         }
98         else
99         {
100             // should not happen
101             throw 
102                 new JRRuntimeException(
103                     EXCEPTION_MESSAGE_KEY_UNKNOWN_NAME,
104                     new Object[]{name});
105         }
106         return level;
107     }
108
109     /**
110      *
111      */

112     public static ErrorCorrectionLevelEnum getByName(String name)
113     {
114         return EnumUtil.getEnumByName(values(), name);
115     }
116 }
117