summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping
diff options
context:
space:
mode:
authorGravatar jeff2014-08-23 23:43:31 -0400
committerGravatar jeff2014-08-23 23:43:31 -0400
commit8fa1741b621644ef84a9395a4c395d4ff3a89207 (patch)
tree9cc054e2636dd13a32950ad68dba212275d33026 /src/cuchaz/enigma/mapping
parentadded export command with progress bar (diff)
downloadenigma-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.java25
-rw-r--r--src/cuchaz/enigma/mapping/IllegalNameException.java22
-rw-r--r--src/cuchaz/enigma/mapping/NameValidator.java8
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 }