diff options
| author | 2014-08-23 23:43:31 -0400 | |
|---|---|---|
| committer | 2014-08-23 23:43:31 -0400 | |
| commit | 8fa1741b621644ef84a9395a4c395d4ff3a89207 (patch) | |
| tree | 9cc054e2636dd13a32950ad68dba212275d33026 /src/cuchaz/enigma/mapping | |
| parent | added export command with progress bar (diff) | |
| download | enigma-fork-8fa1741b621644ef84a9395a4c395d4ff3a89207.tar.gz enigma-fork-8fa1741b621644ef84a9395a4c395d4ff3a89207.tar.xz enigma-fork-8fa1741b621644ef84a9395a4c395d4ff3a89207.zip | |
moved all classes from the default package into a package called "default" so they can be properly imported by other classes
Diffstat (limited to 'src/cuchaz/enigma/mapping')
| -rw-r--r-- | src/cuchaz/enigma/mapping/ClassEntry.java | 25 | ||||
| -rw-r--r-- | src/cuchaz/enigma/mapping/IllegalNameException.java | 22 | ||||
| -rw-r--r-- | src/cuchaz/enigma/mapping/NameValidator.java | 8 |
3 files changed, 52 insertions, 3 deletions
diff --git a/src/cuchaz/enigma/mapping/ClassEntry.java b/src/cuchaz/enigma/mapping/ClassEntry.java index dad6da9..fdb7c2c 100644 --- a/src/cuchaz/enigma/mapping/ClassEntry.java +++ b/src/cuchaz/enigma/mapping/ClassEntry.java | |||
| @@ -110,4 +110,29 @@ public class ClassEntry implements Entry, Serializable | |||
| 110 | { | 110 | { |
| 111 | return new ClassEntry( getOuterClassName() ); | 111 | return new ClassEntry( getOuterClassName() ); |
| 112 | } | 112 | } |
| 113 | |||
| 114 | public boolean isInDefaultPackage( ) | ||
| 115 | { | ||
| 116 | return m_name.indexOf( '/' ) < 0; | ||
| 117 | } | ||
| 118 | |||
| 119 | public String getPackageName( ) | ||
| 120 | { | ||
| 121 | int pos = m_name.lastIndexOf( '/' ); | ||
| 122 | if( pos > 0 ) | ||
| 123 | { | ||
| 124 | return m_name.substring( 0, pos ); | ||
| 125 | } | ||
| 126 | return null; | ||
| 127 | } | ||
| 128 | |||
| 129 | public String getSimpleName( ) | ||
| 130 | { | ||
| 131 | int pos = m_name.lastIndexOf( '/' ); | ||
| 132 | if( pos > 0 ) | ||
| 133 | { | ||
| 134 | return m_name.substring( pos + 1 ); | ||
| 135 | } | ||
| 136 | return m_name; | ||
| 137 | } | ||
| 113 | } | 138 | } |
diff --git a/src/cuchaz/enigma/mapping/IllegalNameException.java b/src/cuchaz/enigma/mapping/IllegalNameException.java index 560e5d9..830f05c 100644 --- a/src/cuchaz/enigma/mapping/IllegalNameException.java +++ b/src/cuchaz/enigma/mapping/IllegalNameException.java | |||
| @@ -15,15 +15,35 @@ public class IllegalNameException extends RuntimeException | |||
| 15 | private static final long serialVersionUID = -2279910052561114323L; | 15 | private static final long serialVersionUID = -2279910052561114323L; |
| 16 | 16 | ||
| 17 | private String m_name; | 17 | private String m_name; |
| 18 | private String m_reason; | ||
| 18 | 19 | ||
| 19 | public IllegalNameException( String name ) | 20 | public IllegalNameException( String name ) |
| 20 | { | 21 | { |
| 22 | this( name, null ); | ||
| 23 | } | ||
| 24 | |||
| 25 | public IllegalNameException( String name, String reason ) | ||
| 26 | { | ||
| 21 | m_name = name; | 27 | m_name = name; |
| 28 | m_reason = reason; | ||
| 29 | } | ||
| 30 | |||
| 31 | public String getReason( ) | ||
| 32 | { | ||
| 33 | return m_reason; | ||
| 22 | } | 34 | } |
| 23 | 35 | ||
| 24 | @Override | 36 | @Override |
| 25 | public String getMessage( ) | 37 | public String getMessage( ) |
| 26 | { | 38 | { |
| 27 | return "Illegal name: " + m_name; | 39 | StringBuilder buf = new StringBuilder(); |
| 40 | buf.append( "Illegal name: " ); | ||
| 41 | buf.append( m_name ); | ||
| 42 | if( m_reason != null ) | ||
| 43 | { | ||
| 44 | buf.append( " because " ); | ||
| 45 | buf.append( m_reason ); | ||
| 46 | } | ||
| 47 | return buf.toString(); | ||
| 28 | } | 48 | } |
| 29 | } | 49 | } |
diff --git a/src/cuchaz/enigma/mapping/NameValidator.java b/src/cuchaz/enigma/mapping/NameValidator.java index a8421fa..6df893f 100644 --- a/src/cuchaz/enigma/mapping/NameValidator.java +++ b/src/cuchaz/enigma/mapping/NameValidator.java | |||
| @@ -59,7 +59,11 @@ public class NameValidator | |||
| 59 | { | 59 | { |
| 60 | if( name == null || !ClassPattern.matcher( name ).matches() || ReservedWords.contains( name ) ) | 60 | if( name == null || !ClassPattern.matcher( name ).matches() || ReservedWords.contains( name ) ) |
| 61 | { | 61 | { |
| 62 | throw new IllegalNameException( name ); | 62 | throw new IllegalNameException( name, "This doesn't look like a legal class name" ); |
| 63 | } | ||
| 64 | if( new ClassEntry( name ).getPackageName() == null ) | ||
| 65 | { | ||
| 66 | throw new IllegalNameException( name, "Classes must be in a package" ); | ||
| 63 | } | 67 | } |
| 64 | return Descriptor.toJvmName( name ); | 68 | return Descriptor.toJvmName( name ); |
| 65 | } | 69 | } |
| @@ -68,7 +72,7 @@ public class NameValidator | |||
| 68 | { | 72 | { |
| 69 | if( name == null || !IdentifierPattern.matcher( name ).matches() || ReservedWords.contains( name ) ) | 73 | if( name == null || !IdentifierPattern.matcher( name ).matches() || ReservedWords.contains( name ) ) |
| 70 | { | 74 | { |
| 71 | throw new IllegalNameException( name ); | 75 | throw new IllegalNameException( name, "This doesn't look like a legal identifier" ); |
| 72 | } | 76 | } |
| 73 | return name; | 77 | return name; |
| 74 | } | 78 | } |