[jruby-joni] 23/223: Add Encoding.load for lazy kcode and lazy 1.9 encoding support.
Hideki Yamane
henrich at moszumanska.debian.org
Mon Nov 16 11:21:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
henrich pushed a commit to branch debian/sid
in repository jruby-joni.
commit d6f8b753115681b3a175fd49610ab746472c1121
Author: Marcin Mielżyński <lopx at gazeta.pl>
Date: Tue May 27 21:07:56 2008 +0000
Add Encoding.load for lazy kcode and lazy 1.9 encoding support.
git-svn-id: http://svn.codehaus.org/jruby/joni/trunk@6839 961051c9-f516-0410-bf72-c9f7e237a7b7
---
src/org/joni/encoding/Encoding.java | 19 +++++++++++++++++++
src/org/joni/exception/ErrorMessages.java | 3 +++
2 files changed, 22 insertions(+)
diff --git a/src/org/joni/encoding/Encoding.java b/src/org/joni/encoding/Encoding.java
index 91cbaca..d2783ec 100644
--- a/src/org/joni/encoding/Encoding.java
+++ b/src/org/joni/encoding/Encoding.java
@@ -23,6 +23,8 @@ import org.joni.ApplyAllCaseFoldFunction;
import org.joni.CaseFoldCodeItem;
import org.joni.IntHolder;
import org.joni.constants.CharacterType;
+import org.joni.exception.ErrorMessages;
+import org.joni.exception.ValueException;
import org.joni.util.BytesHash;
public abstract class Encoding {
@@ -424,4 +426,21 @@ public abstract class Encoding {
public abstract boolean isFixedWidth();
public static final byte NEW_LINE = (byte)0x0a;
+
+ public static Encoding load(String name) {
+ String encClassName = "org.joni.encoding.specific." + name + "Encoding";
+
+ Class<?> encClass;
+ try {
+ encClass = Class.forName(encClassName);
+ } catch (ClassNotFoundException cnfe) {
+ throw new ValueException(ErrorMessages.ERR_ENCODING_CLASS_DEF_NOT_FOUND, encClassName);
+ }
+
+ try {
+ return (Encoding)encClass.getField("INSTANCE").get(encClass);
+ } catch (Exception e) {
+ throw new ValueException(ErrorMessages.ERR_ENCODING_LOAD_ERROR, encClassName);
+ }
+ }
}
diff --git a/src/org/joni/exception/ErrorMessages.java b/src/org/joni/exception/ErrorMessages.java
index 86d019e..9b6b42f 100644
--- a/src/org/joni/exception/ErrorMessages.java
+++ b/src/org/joni/exception/ErrorMessages.java
@@ -92,4 +92,7 @@ public interface ErrorMessages {
final String ERR_INVALID_COMBINATION_OF_OPTIONS = "invalid combination of options";
final String ERR_OVER_THREAD_PASS_LIMIT_COUNT = "over thread pass limit count";
final String ERR_TOO_BIG_SB_CHAR_VALUE = "too big singlebyte char value";
+
+ final String ERR_ENCODING_CLASS_DEF_NOT_FOUND = "encoding class <%n> not found";
+ final String ERR_ENCODING_LOAD_ERROR = "problem loading encoding <%n>";
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git
More information about the pkg-java-commits
mailing list