From 4be005617b3b8c3578cca07c5d085d12916f0d1d Mon Sep 17 00:00:00 2001 From: lclc98 Date: Thu, 30 Jun 2016 00:49:21 +1000 Subject: Json format (#2) * Added new format * Fixed bug * Updated Version --- src/cuchaz/enigma/mapping/NameValidator.java | 80 ---------------------------- 1 file changed, 80 deletions(-) delete mode 100644 src/cuchaz/enigma/mapping/NameValidator.java (limited to 'src/cuchaz/enigma/mapping/NameValidator.java') diff --git a/src/cuchaz/enigma/mapping/NameValidator.java b/src/cuchaz/enigma/mapping/NameValidator.java deleted file mode 100644 index 12520e1..0000000 --- a/src/cuchaz/enigma/mapping/NameValidator.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2015 Jeff Martin. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Lesser General Public - * License v3.0 which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/lgpl.html - * - * Contributors: - * Jeff Martin - initial API and implementation - ******************************************************************************/ -package cuchaz.enigma.mapping; - -import java.util.Arrays; -import java.util.List; -import java.util.regex.Pattern; - -import javassist.bytecode.Descriptor; - -public class NameValidator { - - private static final Pattern IdentifierPattern; - private static final Pattern ClassPattern; - private static final List ReservedWords = Arrays.asList( - "abstract", "continue", "for", "new", "switch", "assert", "default", "goto", "package", "synchronized", - "boolean", "do", "if", "private", "this", "break", "double", "implements", "protected", "throw", "byte", - "else", "import", "public", "throws", "case", "enum", "instanceof", "return", "transient", "catch", - "extends", "int", "short", "try", "char", "final", "interface", "static", "void", "class", "finally", - "long", "strictfp", "volatile", "const", "float", "native", "super", "while" - ); - - static { - - // java allows all kinds of weird characters... - StringBuilder startChars = new StringBuilder(); - StringBuilder partChars = new StringBuilder(); - for (int i = Character.MIN_CODE_POINT; i <= Character.MAX_CODE_POINT; i++) { - if (Character.isJavaIdentifierStart(i)) { - startChars.appendCodePoint(i); - } - if (Character.isJavaIdentifierPart(i)) { - partChars.appendCodePoint(i); - } - } - - String identifierRegex = "[A-Za-z_<][A-Za-z0-9_>]*"; - IdentifierPattern = Pattern.compile(identifierRegex); - ClassPattern = Pattern.compile(String.format("^(%s(\\.|/))*(%s)$", identifierRegex, identifierRegex)); - } - - public static String validateClassName(String name, boolean packageRequired) { - if (name == null) { - return null; - } - if (!ClassPattern.matcher(name).matches() || ReservedWords.contains(name)) { - throw new IllegalNameException(name, "This doesn't look like a legal class name"); - } - if (packageRequired && new ClassEntry(name).getPackageName() == null) { - throw new IllegalNameException(name, "Class must be in a package"); - } - return Descriptor.toJvmName(name); - } - - public static String validateFieldName(String name) { - if (name == null) { - return null; - } - if (!IdentifierPattern.matcher(name).matches() || ReservedWords.contains(name)) { - throw new IllegalNameException(name, "This doesn't look like a legal identifier"); - } - return name; - } - - public static String validateMethodName(String name) { - return validateFieldName(name); - } - - public static String validateArgumentName(String name) { - return validateFieldName(name); - } -} -- cgit v1.2.3