diff --git a/src/main/java/org/apache/commons/codec/digest/DigestUtils.java b/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
index f5dc9a35..d01bde4d 100644
--- a/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
+++ b/src/main/java/org/apache/commons/codec/digest/DigestUtils.java
@@ -17,15 +17,15 @@
package org.apache.commons.codec.digest;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.codec.binary.StringUtils;
+
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.codec.binary.StringUtils;
-
/**
* Operations to simplify common {@link java.security.MessageDigest} tasks.
* This class is immutable and thread-safe.
diff --git a/src/main/java/org/apache/commons/codec/digest/HmacUtils.java b/src/main/java/org/apache/commons/codec/digest/HmacUtils.java
index 425db4ab..283bf90d 100644
--- a/src/main/java/org/apache/commons/codec/digest/HmacUtils.java
+++ b/src/main/java/org/apache/commons/codec/digest/HmacUtils.java
@@ -17,18 +17,17 @@
package org.apache.commons.codec.digest;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.codec.binary.StringUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.codec.binary.StringUtils;
-
/**
* Simplifies common {@link javax.crypto.Mac} tasks. This class is immutable and thread-safe.
*
diff --git a/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java b/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
index 09625496..695cbd49 100644
--- a/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
+++ b/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
@@ -16,13 +16,13 @@
*/
package org.apache.commons.codec.digest;
+import org.apache.commons.codec.Charsets;
+
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.commons.codec.Charsets;
-
/**
* The libc crypt() "$1$" and Apache "$apr1$" MD5-based hash algorithm.
*
diff --git a/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java b/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
index 6e568d7e..7d892f9c 100644
--- a/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
+++ b/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
@@ -16,14 +16,14 @@
*/
package org.apache.commons.codec.digest;
+import org.apache.commons.codec.Charsets;
+
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.commons.codec.Charsets;
-
/**
* SHA2-based Unix crypt implementation.
*
diff --git a/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java b/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
index 151d9c89..f428b8b0 100644
--- a/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
+++ b/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
@@ -16,10 +16,10 @@
*/
package org.apache.commons.codec.digest;
-import java.util.Random;
-
import org.apache.commons.codec.Charsets;
+import java.util.Random;
+
/**
* Unix crypt(3) algorithm implementation.
*
diff --git a/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java b/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
index 01f395c3..1abb214d 100644
--- a/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
+++ b/src/main/java/org/apache/commons/codec/language/ColognePhonetic.java
@@ -17,11 +17,11 @@
package org.apache.commons.codec.language;
-import java.util.Locale;
-
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.StringEncoder;
+import java.util.Locale;
+
/**
* Encodes a string into a Cologne Phonetic value.
*
diff --git a/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java b/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java
index b33dbe83..7a3f2078 100644
--- a/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java
+++ b/src/main/java/org/apache/commons/codec/language/DaitchMokotoffSoundex.java
@@ -16,22 +16,13 @@
*/
package org.apache.commons.codec.language;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.Set;
-
import org.apache.commons.codec.CharEncoding;
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.StringEncoder;
+import java.io.InputStream;
+import java.util.*;
+
/**
* Encodes a string into a Daitch-Mokotoff Soundex value.
*
diff --git a/src/main/java/org/apache/commons/codec/language/MatchRatingApproachEncoder.java b/src/main/java/org/apache/commons/codec/language/MatchRatingApproachEncoder.java
index 95858b43..d1fffc6f 100644
--- a/src/main/java/org/apache/commons/codec/language/MatchRatingApproachEncoder.java
+++ b/src/main/java/org/apache/commons/codec/language/MatchRatingApproachEncoder.java
@@ -16,11 +16,11 @@
*/
package org.apache.commons.codec.language;
-import java.util.Locale;
-
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.StringEncoder;
+import java.util.Locale;
+
/**
* Match Rating Approach Phonetic Algorithm Developed by Western Airlines in 1977.
*
diff --git a/src/main/java/org/apache/commons/codec/language/Nysiis.java b/src/main/java/org/apache/commons/codec/language/Nysiis.java
index 14c1505c..ff4db54a 100644
--- a/src/main/java/org/apache/commons/codec/language/Nysiis.java
+++ b/src/main/java/org/apache/commons/codec/language/Nysiis.java
@@ -17,11 +17,11 @@
package org.apache.commons.codec.language;
-import java.util.regex.Pattern;
-
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.StringEncoder;
+import java.util.regex.Pattern;
+
/**
* Encodes a string into a NYSIIS value. NYSIIS is an encoding used to relate similar names, but can also be used as a
* general purpose scheme to find word with similar phonemes.
diff --git a/src/main/java/org/apache/commons/codec/language/bm/Lang.java b/src/main/java/org/apache/commons/codec/language/bm/Lang.java
index a7ebba6e..e7e69ac6 100644
--- a/src/main/java/org/apache/commons/codec/language/bm/Lang.java
+++ b/src/main/java/org/apache/commons/codec/language/bm/Lang.java
@@ -18,16 +18,7 @@
package org.apache.commons.codec.language.bm;
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.Set;
+import java.util.*;
import java.util.regex.Pattern;
/**
diff --git a/src/main/java/org/apache/commons/codec/language/bm/Languages.java b/src/main/java/org/apache/commons/codec/language/bm/Languages.java
index e092c15c..15048299 100644
--- a/src/main/java/org/apache/commons/codec/language/bm/Languages.java
+++ b/src/main/java/org/apache/commons/codec/language/bm/Languages.java
@@ -18,13 +18,7 @@
package org.apache.commons.codec.language.bm;
import java.io.InputStream;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Scanner;
-import java.util.Set;
+import java.util.*;
/**
* Language codes.
diff --git a/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java b/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
index 490757be..50b594f7 100644
--- a/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
+++ b/src/main/java/org/apache/commons/codec/language/bm/PhoneticEngine.java
@@ -17,22 +17,11 @@
package org.apache.commons.codec.language.bm;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-
import org.apache.commons.codec.language.bm.Languages.LanguageSet;
import org.apache.commons.codec.language.bm.Rule.Phoneme;
+import java.util.*;
+
/**
* Converts words into potential phonetic representations.
*
diff --git a/src/main/java/org/apache/commons/codec/language/bm/Rule.java b/src/main/java/org/apache/commons/codec/language/bm/Rule.java
index eacbae85..18415c40 100644
--- a/src/main/java/org/apache/commons/codec/language/bm/Rule.java
+++ b/src/main/java/org/apache/commons/codec/language/bm/Rule.java
@@ -17,23 +17,13 @@
package org.apache.commons.codec.language.bm;
+import org.apache.commons.codec.language.bm.Languages.LanguageSet;
+
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Scanner;
-import java.util.Set;
+import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.commons.codec.language.bm.Languages.LanguageSet;
-
/**
* A phoneme rule.
*
diff --git a/src/main/java/org/apache/commons/codec/net/BCodec.java b/src/main/java/org/apache/commons/codec/net/BCodec.java
index 651ed979..3ad863cb 100644
--- a/src/main/java/org/apache/commons/codec/net/BCodec.java
+++ b/src/main/java/org/apache/commons/codec/net/BCodec.java
@@ -17,16 +17,12 @@
package org.apache.commons.codec.net;
+import org.apache.commons.codec.*;
+import org.apache.commons.codec.binary.Base64;
+
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
-import org.apache.commons.codec.Charsets;
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.codec.EncoderException;
-import org.apache.commons.codec.StringDecoder;
-import org.apache.commons.codec.StringEncoder;
-import org.apache.commons.codec.binary.Base64;
-
/**
* Identical to the Base64 encoding defined by RFC 1521
* and allows a character set to be specified.
diff --git a/src/main/java/org/apache/commons/codec/net/QCodec.java b/src/main/java/org/apache/commons/codec/net/QCodec.java
index 584b3ff0..19d2bb5d 100644
--- a/src/main/java/org/apache/commons/codec/net/QCodec.java
+++ b/src/main/java/org/apache/commons/codec/net/QCodec.java
@@ -17,16 +17,12 @@
package org.apache.commons.codec.net;
+import org.apache.commons.codec.*;
+
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.BitSet;
-import org.apache.commons.codec.Charsets;
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.codec.EncoderException;
-import org.apache.commons.codec.StringDecoder;
-import org.apache.commons.codec.StringEncoder;
-
/**
* Similar to the Quoted-Printable content-transfer-encoding defined in
* RFC 1521 and designed to allow text containing mostly ASCII
diff --git a/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java b/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
index 82b88617..dfa5f60d 100644
--- a/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
+++ b/src/main/java/org/apache/commons/codec/net/QuotedPrintableCodec.java
@@ -17,6 +17,9 @@
package org.apache.commons.codec.net;
+import org.apache.commons.codec.*;
+import org.apache.commons.codec.binary.StringUtils;
+
import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
@@ -24,15 +27,6 @@ import java.nio.charset.IllegalCharsetNameException;
import java.nio.charset.UnsupportedCharsetException;
import java.util.BitSet;
-import org.apache.commons.codec.BinaryDecoder;
-import org.apache.commons.codec.BinaryEncoder;
-import org.apache.commons.codec.Charsets;
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.codec.EncoderException;
-import org.apache.commons.codec.StringDecoder;
-import org.apache.commons.codec.StringEncoder;
-import org.apache.commons.codec.binary.StringUtils;
-
/**
* Codec for the Quoted-Printable section of RFC 1521.
*
diff --git a/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java b/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
index 6cad34f9..1c4e3193 100644
--- a/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
+++ b/src/main/java/org/apache/commons/codec/net/RFC1522Codec.java
@@ -17,13 +17,13 @@
package org.apache.commons.codec.net;
-import java.io.UnsupportedEncodingException;
-import java.nio.charset.Charset;
-
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.EncoderException;
import org.apache.commons.codec.binary.StringUtils;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+
/**
* Implements methods common to all codecs defined in RFC 1522.
*
diff --git a/src/main/java/org/apache/commons/codec/net/URLCodec.java b/src/main/java/org/apache/commons/codec/net/URLCodec.java
index e53cd635..9bf7e38d 100644
--- a/src/main/java/org/apache/commons/codec/net/URLCodec.java
+++ b/src/main/java/org/apache/commons/codec/net/URLCodec.java
@@ -17,19 +17,13 @@
package org.apache.commons.codec.net;
+import org.apache.commons.codec.*;
+import org.apache.commons.codec.binary.StringUtils;
+
import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
import java.util.BitSet;
-import org.apache.commons.codec.BinaryDecoder;
-import org.apache.commons.codec.BinaryEncoder;
-import org.apache.commons.codec.CharEncoding;
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.codec.EncoderException;
-import org.apache.commons.codec.StringDecoder;
-import org.apache.commons.codec.StringEncoder;
-import org.apache.commons.codec.binary.StringUtils;
-
/**
* Implements the 'www-form-urlencoded' encoding scheme, also misleadingly known as URL encoding.
*
diff --git a/src/main/java/org/imgscalr/AsyncScalr.java b/src/main/java/org/imgscalr/AsyncScalr.java
index 3be52752..ff888872 100644
--- a/src/main/java/org/imgscalr/AsyncScalr.java
+++ b/src/main/java/org/imgscalr/AsyncScalr.java
@@ -15,23 +15,17 @@
*/
package org.imgscalr;
-import java.awt.Color;
-import java.awt.image.BufferedImage;
-import java.awt.image.BufferedImageOp;
-import java.awt.image.ImagingOpException;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
import org.imgscalr.Scalr.Method;
import org.imgscalr.Scalr.Mode;
import org.imgscalr.Scalr.Rotation;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.awt.image.BufferedImageOp;
+import java.awt.image.ImagingOpException;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicInteger;
+
/**
* Class used to provide the asynchronous versions of all the methods defined in
* {@link Scalr} for the purpose of efficiently handling large amounts of image
diff --git a/src/main/java/org/imgscalr/Scalr.java b/src/main/java/org/imgscalr/Scalr.java
index d08911c1..0b28035a 100644
--- a/src/main/java/org/imgscalr/Scalr.java
+++ b/src/main/java/org/imgscalr/Scalr.java
@@ -15,28 +15,12 @@
*/
package org.imgscalr;
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.RenderingHints;
-import java.awt.Transparency;
+import javax.imageio.ImageIO;
+import java.awt.*;
import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
-import java.awt.image.AreaAveragingScaleFilter;
-import java.awt.image.BufferedImage;
-import java.awt.image.BufferedImageOp;
-import java.awt.image.ColorConvertOp;
-import java.awt.image.ColorModel;
-import java.awt.image.ConvolveOp;
-import java.awt.image.ImagingOpException;
-import java.awt.image.IndexColorModel;
-import java.awt.image.Kernel;
-import java.awt.image.RasterFormatException;
-import java.awt.image.RescaleOp;
-
-import javax.imageio.ImageIO;
+import java.awt.image.*;
/**
* Class used to implement performant, high-quality and intelligent image
diff --git a/src/main/java/org/objectweb/asm/commons/AdviceAdapter.java b/src/main/java/org/objectweb/asm/commons/AdviceAdapter.java
index ca31ede9..d5a406cd 100644
--- a/src/main/java/org/objectweb/asm/commons/AdviceAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/AdviceAdapter.java
@@ -29,17 +29,13 @@
*/
package org.objectweb.asm.commons;
+import org.objectweb.asm.*;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-
/**
* A {@link org.objectweb.asm.MethodVisitor} to insert before, after and around
* advices in methods and constructors.
diff --git a/src/main/java/org/objectweb/asm/commons/AnalyzerAdapter.java b/src/main/java/org/objectweb/asm/commons/AnalyzerAdapter.java
index 884f9466..74c9a945 100644
--- a/src/main/java/org/objectweb/asm/commons/AnalyzerAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/AnalyzerAdapter.java
@@ -29,17 +29,13 @@
*/
package org.objectweb.asm.commons;
+import org.objectweb.asm.*;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-
/**
* A {@link MethodVisitor} that keeps track of stack map frame changes between
* {@link #visitFrame(int, int, Object[], int, Object[]) visitFrame} calls. This
diff --git a/src/main/java/org/objectweb/asm/commons/GeneratorAdapter.java b/src/main/java/org/objectweb/asm/commons/GeneratorAdapter.java
index dbaf1d73..4ef36379 100644
--- a/src/main/java/org/objectweb/asm/commons/GeneratorAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/GeneratorAdapter.java
@@ -29,17 +29,12 @@
*/
package org.objectweb.asm.commons;
+import org.objectweb.asm.*;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-
/**
* A {@link org.objectweb.asm.MethodVisitor} with convenient methods to generate
* code. For example, using this adapter, the class below
diff --git a/src/main/java/org/objectweb/asm/commons/InstructionAdapter.java b/src/main/java/org/objectweb/asm/commons/InstructionAdapter.java
index 872e1569..d4496e3b 100644
--- a/src/main/java/org/objectweb/asm/commons/InstructionAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/InstructionAdapter.java
@@ -30,11 +30,7 @@
package org.objectweb.asm.commons;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
+import org.objectweb.asm.*;
/**
* A {@link MethodVisitor} providing a more detailed API to generate and
diff --git a/src/main/java/org/objectweb/asm/commons/JSRInlinerAdapter.java b/src/main/java/org/objectweb/asm/commons/JSRInlinerAdapter.java
index 5c0ad085..cad43769 100644
--- a/src/main/java/org/objectweb/asm/commons/JSRInlinerAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/JSRInlinerAdapter.java
@@ -29,30 +29,13 @@
*/
package org.objectweb.asm.commons;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.BitSet;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.InsnNode;
-import org.objectweb.asm.tree.JumpInsnNode;
-import org.objectweb.asm.tree.LabelNode;
-import org.objectweb.asm.tree.LocalVariableNode;
-import org.objectweb.asm.tree.LookupSwitchInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.TableSwitchInsnNode;
-import org.objectweb.asm.tree.TryCatchBlockNode;
+import org.objectweb.asm.tree.*;
+
+import java.util.*;
/**
* A {@link org.objectweb.asm.MethodVisitor} that removes JSR instructions and
diff --git a/src/main/java/org/objectweb/asm/commons/LocalVariablesSorter.java b/src/main/java/org/objectweb/asm/commons/LocalVariablesSorter.java
index 295c319b..7d221059 100644
--- a/src/main/java/org/objectweb/asm/commons/LocalVariablesSorter.java
+++ b/src/main/java/org/objectweb/asm/commons/LocalVariablesSorter.java
@@ -29,12 +29,7 @@
*/
package org.objectweb.asm.commons;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
/**
* A {@link MethodVisitor} that renumbers local variables in their order of
diff --git a/src/main/java/org/objectweb/asm/commons/Method.java b/src/main/java/org/objectweb/asm/commons/Method.java
index 6f980967..97136159 100644
--- a/src/main/java/org/objectweb/asm/commons/Method.java
+++ b/src/main/java/org/objectweb/asm/commons/Method.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.commons;
+import org.objectweb.asm.Type;
+
import java.util.HashMap;
import java.util.Map;
-import org.objectweb.asm.Type;
-
/**
* A named method descriptor.
*
diff --git a/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java b/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java
index c0b52cae..8c2e7103 100644
--- a/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java
@@ -30,12 +30,7 @@
package org.objectweb.asm.commons;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
/**
* A {@link ClassVisitor} for type remapping.
diff --git a/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java b/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java
index c9badc2a..6a47f80d 100644
--- a/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java
+++ b/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java
@@ -30,12 +30,7 @@
package org.objectweb.asm.commons;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
/**
* A {@link LocalVariablesSorter} for type mapping.
diff --git a/src/main/java/org/objectweb/asm/commons/SerialVersionUIDAdder.java b/src/main/java/org/objectweb/asm/commons/SerialVersionUIDAdder.java
index 180281a8..e50ca385 100644
--- a/src/main/java/org/objectweb/asm/commons/SerialVersionUIDAdder.java
+++ b/src/main/java/org/objectweb/asm/commons/SerialVersionUIDAdder.java
@@ -29,6 +29,11 @@
*/
package org.objectweb.asm.commons;
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+
import java.io.ByteArrayOutputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
@@ -38,11 +43,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
/**
* A {@link ClassVisitor} that adds a serial version unique identifier to a
* class if missing. Here is typical usage of this class:
diff --git a/src/main/java/org/objectweb/asm/commons/TryCatchBlockSorter.java b/src/main/java/org/objectweb/asm/commons/TryCatchBlockSorter.java
index a9c51923..ce5d06c2 100644
--- a/src/main/java/org/objectweb/asm/commons/TryCatchBlockSorter.java
+++ b/src/main/java/org/objectweb/asm/commons/TryCatchBlockSorter.java
@@ -30,14 +30,14 @@
package org.objectweb.asm.commons;
-import java.util.Collections;
-import java.util.Comparator;
-
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.MethodNode;
import org.objectweb.asm.tree.TryCatchBlockNode;
+import java.util.Collections;
+import java.util.Comparator;
+
/**
* A {@link MethodVisitor} adapter to sort the exception handlers. The handlers
* are sorted in a method innermost-to-outermost. This allows the programmer to
diff --git a/src/main/java/org/objectweb/asm/commons/cfg/Block.java b/src/main/java/org/objectweb/asm/commons/cfg/Block.java
index 13c1cebd..1012f2cd 100644
--- a/src/main/java/org/objectweb/asm/commons/cfg/Block.java
+++ b/src/main/java/org/objectweb/asm/commons/cfg/Block.java
@@ -1,11 +1,5 @@
package org.objectweb.asm.commons.cfg;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Stack;
-
import org.objectweb.asm.Label;
import org.objectweb.asm.commons.cfg.query.InsnQuery;
import org.objectweb.asm.commons.cfg.tree.NodeTree;
@@ -15,6 +9,8 @@ import org.objectweb.asm.tree.AbstractInsnNode;
import org.objectweb.asm.tree.LabelNode;
import org.objectweb.asm.tree.MethodNode;
+import java.util.*;
+
/**
* @author Tyler Sedlar
*/
diff --git a/src/main/java/org/objectweb/asm/commons/cfg/InsnVisitor.java b/src/main/java/org/objectweb/asm/commons/cfg/InsnVisitor.java
index 82708f25..64c55003 100644
--- a/src/main/java/org/objectweb/asm/commons/cfg/InsnVisitor.java
+++ b/src/main/java/org/objectweb/asm/commons/cfg/InsnVisitor.java
@@ -1,12 +1,6 @@
package org.objectweb.asm.commons.cfg;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
public class InsnVisitor extends MethodVisitor {
diff --git a/src/main/java/org/objectweb/asm/commons/cfg/graph/Digraph.java b/src/main/java/org/objectweb/asm/commons/cfg/graph/Digraph.java
index 417bf322..a6476ccf 100644
--- a/src/main/java/org/objectweb/asm/commons/cfg/graph/Digraph.java
+++ b/src/main/java/org/objectweb/asm/commons/cfg/graph/Digraph.java
@@ -1,14 +1,9 @@
package org.objectweb.asm.commons.cfg.graph;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
import org.objectweb.asm.commons.cfg.Block;
+import java.util.*;
+
/**
* @author Tyler Sedlar
*/
diff --git a/src/main/java/org/objectweb/asm/commons/cfg/tree/NodeTree.java b/src/main/java/org/objectweb/asm/commons/cfg/tree/NodeTree.java
index 20f3ad7a..7c6a2533 100644
--- a/src/main/java/org/objectweb/asm/commons/cfg/tree/NodeTree.java
+++ b/src/main/java/org/objectweb/asm/commons/cfg/tree/NodeTree.java
@@ -1,14 +1,14 @@
package org.objectweb.asm.commons.cfg.tree;
-import static org.objectweb.asm.tree.AbstractInsnNode.LABEL;
-
-import java.util.Arrays;
-
import org.objectweb.asm.commons.cfg.Block;
import org.objectweb.asm.commons.cfg.tree.node.AbstractNode;
import org.objectweb.asm.tree.AbstractInsnNode;
import org.objectweb.asm.tree.MethodNode;
+import java.util.Arrays;
+
+import static org.objectweb.asm.tree.AbstractInsnNode.LABEL;
+
/**
* @author Tyler Sedlar
*/
diff --git a/src/main/java/org/objectweb/asm/commons/cfg/tree/node/AbstractNode.java b/src/main/java/org/objectweb/asm/commons/cfg/tree/node/AbstractNode.java
index a5f71b52..c1cf2ba7 100644
--- a/src/main/java/org/objectweb/asm/commons/cfg/tree/node/AbstractNode.java
+++ b/src/main/java/org/objectweb/asm/commons/cfg/tree/node/AbstractNode.java
@@ -1,36 +1,17 @@
package org.objectweb.asm.commons.cfg.tree.node;
-import static org.objectweb.asm.tree.AbstractInsnNode.FIELD_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.FRAME;
-import static org.objectweb.asm.tree.AbstractInsnNode.IINC_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.INT_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.JUMP_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.LABEL;
-import static org.objectweb.asm.tree.AbstractInsnNode.LDC_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.LINE;
-import static org.objectweb.asm.tree.AbstractInsnNode.LOOKUPSWITCH_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.METHOD_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.MULTIANEWARRAY_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.TABLESWITCH_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.TYPE_INSN;
-import static org.objectweb.asm.tree.AbstractInsnNode.VAR_INSN;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.commons.cfg.tree.NodeTree;
import org.objectweb.asm.commons.cfg.tree.NodeVisitor;
import org.objectweb.asm.commons.cfg.tree.Tree;
import org.objectweb.asm.commons.util.Assembly;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.objectweb.asm.tree.AbstractInsnNode.*;
public class AbstractNode extends Tree implements Opcodes {
diff --git a/src/main/java/org/objectweb/asm/commons/cfg/tree/util/TreeBuilder.java b/src/main/java/org/objectweb/asm/commons/cfg/tree/util/TreeBuilder.java
index 178844d6..9b7d85b3 100644
--- a/src/main/java/org/objectweb/asm/commons/cfg/tree/util/TreeBuilder.java
+++ b/src/main/java/org/objectweb/asm/commons/cfg/tree/util/TreeBuilder.java
@@ -1,39 +1,17 @@
package org.objectweb.asm.commons.cfg.tree.util;
-import static org.objectweb.asm.Opcodes.*;
+import org.objectweb.asm.Type;
+import org.objectweb.asm.commons.cfg.Block;
+import org.objectweb.asm.commons.cfg.tree.NodeTree;
+import org.objectweb.asm.commons.cfg.tree.node.*;
+import org.objectweb.asm.tree.*;
import java.util.ArrayList;
import java.util.List;
+import static org.objectweb.asm.Opcodes.*;
+
//import org.nullbool.api.obfuscation.cfg.FlowBlock;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.commons.cfg.Block;
-import org.objectweb.asm.commons.cfg.tree.NodeTree;
-import org.objectweb.asm.commons.cfg.tree.node.AbstractNode;
-import org.objectweb.asm.commons.cfg.tree.node.ArithmeticNode;
-import org.objectweb.asm.commons.cfg.tree.node.ConstantNode;
-import org.objectweb.asm.commons.cfg.tree.node.ConversionNode;
-import org.objectweb.asm.commons.cfg.tree.node.FieldMemberNode;
-import org.objectweb.asm.commons.cfg.tree.node.IincNode;
-import org.objectweb.asm.commons.cfg.tree.node.JumpNode;
-import org.objectweb.asm.commons.cfg.tree.node.MethodMemberNode;
-import org.objectweb.asm.commons.cfg.tree.node.NumberNode;
-import org.objectweb.asm.commons.cfg.tree.node.TypeNode;
-import org.objectweb.asm.commons.cfg.tree.node.VariableNode;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.InsnNode;
-import org.objectweb.asm.tree.IntInsnNode;
-import org.objectweb.asm.tree.JumpInsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.LookupSwitchInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.MultiANewArrayInsnNode;
-import org.objectweb.asm.tree.TableSwitchInsnNode;
-import org.objectweb.asm.tree.TypeInsnNode;
-import org.objectweb.asm.tree.VarInsnNode;
/**
* @author Tyler Sedlar
diff --git a/src/main/java/org/objectweb/asm/commons/util/Assembly.java b/src/main/java/org/objectweb/asm/commons/util/Assembly.java
index fc82b3aa..6182846d 100644
--- a/src/main/java/org/objectweb/asm/commons/util/Assembly.java
+++ b/src/main/java/org/objectweb/asm/commons/util/Assembly.java
@@ -1,30 +1,12 @@
package org.objectweb.asm.commons.util;
-import static org.objectweb.asm.tree.AbstractInsnNode.*;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.tree.*;
import java.util.Arrays;
import java.util.Collection;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.FrameNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.IntInsnNode;
-import org.objectweb.asm.tree.InvokeDynamicInsnNode;
-import org.objectweb.asm.tree.JumpInsnNode;
-import org.objectweb.asm.tree.LabelNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.LineNumberNode;
-import org.objectweb.asm.tree.LookupSwitchInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.MultiANewArrayInsnNode;
-import org.objectweb.asm.tree.TableSwitchInsnNode;
-import org.objectweb.asm.tree.TypeInsnNode;
-import org.objectweb.asm.tree.VarInsnNode;
+import static org.objectweb.asm.tree.AbstractInsnNode.*;
/**
* @author Tyler Sedlar
diff --git a/src/main/java/org/objectweb/asm/tree/AbstractInsnNode.java b/src/main/java/org/objectweb/asm/tree/AbstractInsnNode.java
index 19093171..7a8ed6a8 100644
--- a/src/main/java/org/objectweb/asm/tree/AbstractInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/AbstractInsnNode.java
@@ -29,12 +29,12 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.MethodVisitor;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.MethodVisitor;
-
/**
* A node that represents a bytecode instruction. An instruction can appear
* at most once in at most one {@link InsnList} at a time.
diff --git a/src/main/java/org/objectweb/asm/tree/AnnotationNode.java b/src/main/java/org/objectweb/asm/tree/AnnotationNode.java
index 18bb60d5..af500fde 100644
--- a/src/main/java/org/objectweb/asm/tree/AnnotationNode.java
+++ b/src/main/java/org/objectweb/asm/tree/AnnotationNode.java
@@ -29,12 +29,12 @@
*/
package org.objectweb.asm.tree;
-import java.util.ArrayList;
-import java.util.List;
-
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Opcodes;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* A node that represents an annotationn.
*
diff --git a/src/main/java/org/objectweb/asm/tree/ClassNode.java b/src/main/java/org/objectweb/asm/tree/ClassNode.java
index 9ddd5718..2a4ee0e2 100644
--- a/src/main/java/org/objectweb/asm/tree/ClassNode.java
+++ b/src/main/java/org/objectweb/asm/tree/ClassNode.java
@@ -29,19 +29,9 @@
*/
package org.objectweb.asm.tree;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import org.objectweb.asm.*;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import java.util.*;
/**
* A node that represents a class.
diff --git a/src/main/java/org/objectweb/asm/tree/FieldInsnNode.java b/src/main/java/org/objectweb/asm/tree/FieldInsnNode.java
index 7975b569..ea4e49f2 100644
--- a/src/main/java/org/objectweb/asm/tree/FieldInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/FieldInsnNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* A node that represents a field instruction. A field instruction is an
* instruction that loads or stores the value of a field of an object.
diff --git a/src/main/java/org/objectweb/asm/tree/FieldNode.java b/src/main/java/org/objectweb/asm/tree/FieldNode.java
index fcd41cb2..681746fd 100644
--- a/src/main/java/org/objectweb/asm/tree/FieldNode.java
+++ b/src/main/java/org/objectweb/asm/tree/FieldNode.java
@@ -29,16 +29,11 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.*;
+
import java.util.ArrayList;
import java.util.List;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
-
/**
* A node that represents a field.
*
diff --git a/src/main/java/org/objectweb/asm/tree/FrameNode.java b/src/main/java/org/objectweb/asm/tree/FrameNode.java
index 4f5bc5e9..2f6695c6 100644
--- a/src/main/java/org/objectweb/asm/tree/FrameNode.java
+++ b/src/main/java/org/objectweb/asm/tree/FrameNode.java
@@ -29,14 +29,14 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
/**
* A node that represents a stack map frame. These nodes are pseudo instruction
* nodes in order to be inserted in an instruction list. In fact these nodes
diff --git a/src/main/java/org/objectweb/asm/tree/IincInsnNode.java b/src/main/java/org/objectweb/asm/tree/IincInsnNode.java
index e847494b..f661fa61 100644
--- a/src/main/java/org/objectweb/asm/tree/IincInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/IincInsnNode.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
+import java.util.Map;
+
/**
* A node that represents an IINC instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/InsnList.java b/src/main/java/org/objectweb/asm/tree/InsnList.java
index 52769b0f..2482c403 100644
--- a/src/main/java/org/objectweb/asm/tree/InsnList.java
+++ b/src/main/java/org/objectweb/asm/tree/InsnList.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.MethodVisitor;
+
import java.util.ListIterator;
import java.util.NoSuchElementException;
-import org.objectweb.asm.MethodVisitor;
-
/**
* A doubly linked list of {@link AbstractInsnNode} objects. This
* implementation is not thread safe.
diff --git a/src/main/java/org/objectweb/asm/tree/InsnNode.java b/src/main/java/org/objectweb/asm/tree/InsnNode.java
index 1e973eb1..7284d6e2 100644
--- a/src/main/java/org/objectweb/asm/tree/InsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/InsnNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* A node that represents a zero operand instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/IntInsnNode.java b/src/main/java/org/objectweb/asm/tree/IntInsnNode.java
index bbe2e458..1d40761f 100644
--- a/src/main/java/org/objectweb/asm/tree/IntInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/IntInsnNode.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.util.Printer;
+import java.util.Map;
+
/**
* A node that represents an instruction with a single int operand.
*
diff --git a/src/main/java/org/objectweb/asm/tree/InvokeDynamicInsnNode.java b/src/main/java/org/objectweb/asm/tree/InvokeDynamicInsnNode.java
index eb330d67..6210002b 100644
--- a/src/main/java/org/objectweb/asm/tree/InvokeDynamicInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/InvokeDynamicInsnNode.java
@@ -29,12 +29,12 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.Handle;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
+import java.util.Map;
+
/**
* A node that represents an invokedynamic instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/JumpInsnNode.java b/src/main/java/org/objectweb/asm/tree/JumpInsnNode.java
index 970803b9..bfed663f 100644
--- a/src/main/java/org/objectweb/asm/tree/JumpInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/JumpInsnNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* A node that represents a jump instruction. A jump instruction is an
* instruction that may jump to another instruction.
diff --git a/src/main/java/org/objectweb/asm/tree/LabelNode.java b/src/main/java/org/objectweb/asm/tree/LabelNode.java
index f568e216..4171cc5f 100644
--- a/src/main/java/org/objectweb/asm/tree/LabelNode.java
+++ b/src/main/java/org/objectweb/asm/tree/LabelNode.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* An {@link AbstractInsnNode} that encapsulates a {@link Label}.
*/
diff --git a/src/main/java/org/objectweb/asm/tree/LdcInsnNode.java b/src/main/java/org/objectweb/asm/tree/LdcInsnNode.java
index 108087f5..fcd91247 100644
--- a/src/main/java/org/objectweb/asm/tree/LdcInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/LdcInsnNode.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
+import java.util.Map;
+
/**
* A node that represents an LDC instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/LineNumberNode.java b/src/main/java/org/objectweb/asm/tree/LineNumberNode.java
index 9d11404d..b0956fc6 100644
--- a/src/main/java/org/objectweb/asm/tree/LineNumberNode.java
+++ b/src/main/java/org/objectweb/asm/tree/LineNumberNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* A node that represents a line number declaration. These nodes are pseudo
* instruction nodes in order to be inserted in an instruction list.
diff --git a/src/main/java/org/objectweb/asm/tree/LocalVariableAnnotationNode.java b/src/main/java/org/objectweb/asm/tree/LocalVariableAnnotationNode.java
index 4ca7da4b..91ad76ad 100644
--- a/src/main/java/org/objectweb/asm/tree/LocalVariableAnnotationNode.java
+++ b/src/main/java/org/objectweb/asm/tree/LocalVariableAnnotationNode.java
@@ -30,16 +30,12 @@
package org.objectweb.asm.tree;
+import org.objectweb.asm.*;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
-import org.objectweb.asm.TypeReference;
-
/**
* A node that represents a type annotation on a local or resource variable.
*
diff --git a/src/main/java/org/objectweb/asm/tree/LookupSwitchInsnNode.java b/src/main/java/org/objectweb/asm/tree/LookupSwitchInsnNode.java
index fb28e259..f21a5191 100644
--- a/src/main/java/org/objectweb/asm/tree/LookupSwitchInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/LookupSwitchInsnNode.java
@@ -29,15 +29,15 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
/**
* A node that represents a LOOKUPSWITCH instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/MethodInsnNode.java b/src/main/java/org/objectweb/asm/tree/MethodInsnNode.java
index 98c65758..4413f0ac 100644
--- a/src/main/java/org/objectweb/asm/tree/MethodInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/MethodInsnNode.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
+import java.util.Map;
+
/**
* A node that represents a method instruction. A method instruction is an
* instruction that invokes a method.
diff --git a/src/main/java/org/objectweb/asm/tree/MethodNode.java b/src/main/java/org/objectweb/asm/tree/MethodNode.java
index d125d982..adc1d94c 100644
--- a/src/main/java/org/objectweb/asm/tree/MethodNode.java
+++ b/src/main/java/org/objectweb/asm/tree/MethodNode.java
@@ -29,21 +29,13 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.*;
+import org.objectweb.asm.commons.cfg.query.InsnQuery;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
-import org.objectweb.asm.commons.cfg.query.InsnQuery;
-
/**
* A node that represents a method.
*
diff --git a/src/main/java/org/objectweb/asm/tree/MultiANewArrayInsnNode.java b/src/main/java/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
index 649967c7..1d13a6fb 100644
--- a/src/main/java/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
+import java.util.Map;
+
/**
* A node that represents a MULTIANEWARRAY instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/TableSwitchInsnNode.java b/src/main/java/org/objectweb/asm/tree/TableSwitchInsnNode.java
index fb80e639..83d6662b 100644
--- a/src/main/java/org/objectweb/asm/tree/TableSwitchInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/TableSwitchInsnNode.java
@@ -29,15 +29,15 @@
*/
package org.objectweb.asm.tree;
+import org.objectweb.asm.Label;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-
/**
* A node that represents a TABLESWITCH instruction.
*
diff --git a/src/main/java/org/objectweb/asm/tree/TryCatchBlockNode.java b/src/main/java/org/objectweb/asm/tree/TryCatchBlockNode.java
index 7a33a9fd..f226d877 100644
--- a/src/main/java/org/objectweb/asm/tree/TryCatchBlockNode.java
+++ b/src/main/java/org/objectweb/asm/tree/TryCatchBlockNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.List;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.List;
+
/**
* A node that represents a try catch block.
*
diff --git a/src/main/java/org/objectweb/asm/tree/TypeInsnNode.java b/src/main/java/org/objectweb/asm/tree/TypeInsnNode.java
index 7b5876a5..45b80e33 100644
--- a/src/main/java/org/objectweb/asm/tree/TypeInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/TypeInsnNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* A node that represents a type instruction. A type instruction is an
* instruction that takes a type descriptor as parameter.
diff --git a/src/main/java/org/objectweb/asm/tree/VarInsnNode.java b/src/main/java/org/objectweb/asm/tree/VarInsnNode.java
index 8a489f2d..c4635848 100644
--- a/src/main/java/org/objectweb/asm/tree/VarInsnNode.java
+++ b/src/main/java/org/objectweb/asm/tree/VarInsnNode.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree;
-import java.util.Map;
-
import org.objectweb.asm.MethodVisitor;
+import java.util.Map;
+
/**
* A node that represents a local variable instruction. A local variable
* instruction is an instruction that loads or stores the value of a local
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/Analyzer.java b/src/main/java/org/objectweb/asm/tree/analysis/Analyzer.java
index a0673c7b..6d039a69 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/Analyzer.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/Analyzer.java
@@ -29,24 +29,15 @@
*/
package org.objectweb.asm.tree.analysis;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.Type;
+import org.objectweb.asm.tree.*;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.JumpInsnNode;
-import org.objectweb.asm.tree.LabelNode;
-import org.objectweb.asm.tree.LookupSwitchInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.TableSwitchInsnNode;
-import org.objectweb.asm.tree.TryCatchBlockNode;
-import org.objectweb.asm.tree.VarInsnNode;
-
/**
* A semantic bytecode analyzer. This class does not fully check that JSR and
* RET instructions are valid.
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/BasicInterpreter.java b/src/main/java/org/objectweb/asm/tree/analysis/BasicInterpreter.java
index 40699fa8..74166f74 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/BasicInterpreter.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/BasicInterpreter.java
@@ -29,19 +29,12 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.List;
-
import org.objectweb.asm.Handle;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.IntInsnNode;
-import org.objectweb.asm.tree.InvokeDynamicInsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MultiANewArrayInsnNode;
-import org.objectweb.asm.tree.TypeInsnNode;
+import org.objectweb.asm.tree.*;
+
+import java.util.List;
/**
* An {@link Interpreter} for {@link BasicValue} values.
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/BasicVerifier.java b/src/main/java/org/objectweb/asm/tree/analysis/BasicVerifier.java
index 2de80ec0..2ab62118 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/BasicVerifier.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/BasicVerifier.java
@@ -29,14 +29,14 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.List;
-
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.AbstractInsnNode;
import org.objectweb.asm.tree.FieldInsnNode;
import org.objectweb.asm.tree.InvokeDynamicInsnNode;
import org.objectweb.asm.tree.MethodInsnNode;
+import java.util.List;
+
/**
* An extended {@link BasicInterpreter} that checks that bytecode instructions
* are correctly used.
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/Frame.java b/src/main/java/org/objectweb/asm/tree/analysis/Frame.java
index 95f3db0c..650b552a 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/Frame.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/Frame.java
@@ -29,17 +29,12 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.ArrayList;
-import java.util.List;
-
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.InvokeDynamicInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MultiANewArrayInsnNode;
-import org.objectweb.asm.tree.VarInsnNode;
+import org.objectweb.asm.tree.*;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* A symbolic execution stack frame. A stack frame contains a set of local
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/Interpreter.java b/src/main/java/org/objectweb/asm/tree/analysis/Interpreter.java
index 94e08ea2..419aa13e 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/Interpreter.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/Interpreter.java
@@ -29,11 +29,11 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.List;
-
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.AbstractInsnNode;
+import java.util.List;
+
/**
* A semantic bytecode interpreter. More precisely, this interpreter only
* manages the computation of values from other values: it does not manage the
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/SimpleVerifier.java b/src/main/java/org/objectweb/asm/tree/analysis/SimpleVerifier.java
index c8ee087d..7492f1d2 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/SimpleVerifier.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/SimpleVerifier.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.List;
-
import org.objectweb.asm.Type;
+import java.util.List;
+
/**
* An extended {@link BasicVerifier} that performs more precise verifications.
* This verifier computes exact class types, instead of using a single "object
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/SmallSet.java b/src/main/java/org/objectweb/asm/tree/analysis/SmallSet.java
index 0cf6ccfb..675a053a 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/SmallSet.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/SmallSet.java
@@ -29,11 +29,7 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.AbstractSet;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Set;
+import java.util.*;
/**
* A set of at most two elements.
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/SourceInterpreter.java b/src/main/java/org/objectweb/asm/tree/analysis/SourceInterpreter.java
index cfac8271..adac143a 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/SourceInterpreter.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/SourceInterpreter.java
@@ -29,18 +29,14 @@
*/
package org.objectweb.asm.tree.analysis;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.Type;
+import org.objectweb.asm.tree.*;
+
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.InvokeDynamicInsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-
/**
* An {@link Interpreter} for {@link SourceValue} values.
*
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/SourceValue.java b/src/main/java/org/objectweb/asm/tree/analysis/SourceValue.java
index f87fc9e8..476e5b97 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/SourceValue.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/SourceValue.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.Set;
-
import org.objectweb.asm.tree.AbstractInsnNode;
+import java.util.Set;
+
/**
* A {@link Value} that is represented by its type in a two types type system.
* This type system distinguishes the ONEWORD and TWOWORDS types.
diff --git a/src/main/java/org/objectweb/asm/tree/analysis/Subroutine.java b/src/main/java/org/objectweb/asm/tree/analysis/Subroutine.java
index 27396715..b08c9a21 100644
--- a/src/main/java/org/objectweb/asm/tree/analysis/Subroutine.java
+++ b/src/main/java/org/objectweb/asm/tree/analysis/Subroutine.java
@@ -29,12 +29,12 @@
*/
package org.objectweb.asm.tree.analysis;
-import java.util.ArrayList;
-import java.util.List;
-
import org.objectweb.asm.tree.JumpInsnNode;
import org.objectweb.asm.tree.LabelNode;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* A method subroutine (corresponds to a JSR instruction).
*
diff --git a/src/main/java/org/objectweb/asm/util/ASMifiable.java b/src/main/java/org/objectweb/asm/util/ASMifiable.java
index dcefe677..f03e3e0d 100644
--- a/src/main/java/org/objectweb/asm/util/ASMifiable.java
+++ b/src/main/java/org/objectweb/asm/util/ASMifiable.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.util;
-import java.util.Map;
-
import org.objectweb.asm.Label;
+import java.util.Map;
+
/**
* An {@link org.objectweb.asm.Attribute Attribute} that can print the ASM code
* to create an equivalent attribute.
diff --git a/src/main/java/org/objectweb/asm/util/ASMifier.java b/src/main/java/org/objectweb/asm/util/ASMifier.java
index e03fd09b..a93109ac 100644
--- a/src/main/java/org/objectweb/asm/util/ASMifier.java
+++ b/src/main/java/org/objectweb/asm/util/ASMifier.java
@@ -29,19 +29,13 @@
*/
package org.objectweb.asm.util;
+import org.objectweb.asm.*;
+
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
-
/**
* A {@link Printer} that prints the ASM code to generate the classes if visits.
*
diff --git a/src/main/java/org/objectweb/asm/util/CheckClassAdapter.java b/src/main/java/org/objectweb/asm/util/CheckClassAdapter.java
index 210e2389..bd9ccd6c 100644
--- a/src/main/java/org/objectweb/asm/util/CheckClassAdapter.java
+++ b/src/main/java/org/objectweb/asm/util/CheckClassAdapter.java
@@ -29,25 +29,7 @@
*/
package org.objectweb.asm.util;
-import java.io.FileInputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
-import org.objectweb.asm.TypeReference;
+import org.objectweb.asm.*;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.MethodNode;
import org.objectweb.asm.tree.analysis.Analyzer;
@@ -55,6 +37,10 @@ import org.objectweb.asm.tree.analysis.BasicValue;
import org.objectweb.asm.tree.analysis.Frame;
import org.objectweb.asm.tree.analysis.SimpleVerifier;
+import java.io.FileInputStream;
+import java.io.PrintWriter;
+import java.util.*;
+
/**
* A {@link ClassVisitor} that checks that its methods are properly used. More
* precisely this class adapter checks each method call individually, based
diff --git a/src/main/java/org/objectweb/asm/util/CheckFieldAdapter.java b/src/main/java/org/objectweb/asm/util/CheckFieldAdapter.java
index 0b2e0e5b..7c06959a 100644
--- a/src/main/java/org/objectweb/asm/util/CheckFieldAdapter.java
+++ b/src/main/java/org/objectweb/asm/util/CheckFieldAdapter.java
@@ -29,12 +29,7 @@
*/
package org.objectweb.asm.util;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
-import org.objectweb.asm.TypeReference;
+import org.objectweb.asm.*;
/**
* A {@link FieldVisitor} that checks that its methods are properly used.
diff --git a/src/main/java/org/objectweb/asm/util/CheckMethodAdapter.java b/src/main/java/org/objectweb/asm/util/CheckMethodAdapter.java
index 477584a3..b1c7017f 100644
--- a/src/main/java/org/objectweb/asm/util/CheckMethodAdapter.java
+++ b/src/main/java/org/objectweb/asm/util/CheckMethodAdapter.java
@@ -29,30 +29,17 @@
*/
package org.objectweb.asm.util;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
-import org.objectweb.asm.TypeReference;
+import org.objectweb.asm.*;
import org.objectweb.asm.tree.MethodNode;
import org.objectweb.asm.tree.analysis.Analyzer;
import org.objectweb.asm.tree.analysis.BasicValue;
import org.objectweb.asm.tree.analysis.BasicVerifier;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.lang.reflect.Field;
+import java.util.*;
+
/**
* A {@link MethodVisitor} that checks that its methods are properly used. More
* precisely this method adapter checks each instruction individually, i.e.,
diff --git a/src/main/java/org/objectweb/asm/util/Printer.java b/src/main/java/org/objectweb/asm/util/Printer.java
index 50513c84..3b27d514 100644
--- a/src/main/java/org/objectweb/asm/util/Printer.java
+++ b/src/main/java/org/objectweb/asm/util/Printer.java
@@ -29,16 +29,12 @@
*/
package org.objectweb.asm.util;
+import org.objectweb.asm.*;
+
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
-
/**
* An abstract converter from visit events to text.
*
diff --git a/src/main/java/org/objectweb/asm/util/Textifiable.java b/src/main/java/org/objectweb/asm/util/Textifiable.java
index aad97ba2..6ed4c19e 100644
--- a/src/main/java/org/objectweb/asm/util/Textifiable.java
+++ b/src/main/java/org/objectweb/asm/util/Textifiable.java
@@ -29,10 +29,10 @@
*/
package org.objectweb.asm.util;
-import java.util.Map;
-
import org.objectweb.asm.Label;
+import java.util.Map;
+
/**
* An {@link org.objectweb.asm.Attribute Attribute} that can print a readable
* representation of itself.
diff --git a/src/main/java/org/objectweb/asm/util/Textifier.java b/src/main/java/org/objectweb/asm/util/Textifier.java
index 895c7e2b..393a02d9 100644
--- a/src/main/java/org/objectweb/asm/util/Textifier.java
+++ b/src/main/java/org/objectweb/asm/util/Textifier.java
@@ -29,21 +29,14 @@
*/
package org.objectweb.asm.util;
+import org.objectweb.asm.*;
+import org.objectweb.asm.signature.SignatureReader;
+
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
-import org.objectweb.asm.TypeReference;
-import org.objectweb.asm.signature.SignatureReader;
-
/**
* A {@link Printer} that prints a disassembled view of the classes it visits.
*
diff --git a/src/main/java/org/objectweb/asm/util/TraceClassVisitor.java b/src/main/java/org/objectweb/asm/util/TraceClassVisitor.java
index 3ca59781..e65965fb 100644
--- a/src/main/java/org/objectweb/asm/util/TraceClassVisitor.java
+++ b/src/main/java/org/objectweb/asm/util/TraceClassVisitor.java
@@ -29,15 +29,9 @@
*/
package org.objectweb.asm.util;
-import java.io.PrintWriter;
+import org.objectweb.asm.*;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import java.io.PrintWriter;
/**
* A {@link ClassVisitor} that prints the classes it visits with a
diff --git a/src/main/java/org/objectweb/asm/util/TraceFieldVisitor.java b/src/main/java/org/objectweb/asm/util/TraceFieldVisitor.java
index dbb3be03..7e4a10b1 100644
--- a/src/main/java/org/objectweb/asm/util/TraceFieldVisitor.java
+++ b/src/main/java/org/objectweb/asm/util/TraceFieldVisitor.java
@@ -29,11 +29,7 @@
*/
package org.objectweb.asm.util;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
/**
* A {@link FieldVisitor} that prints the fields it visits with a
diff --git a/src/main/java/org/objectweb/asm/util/TraceMethodVisitor.java b/src/main/java/org/objectweb/asm/util/TraceMethodVisitor.java
index 5f72ac61..0e190a84 100644
--- a/src/main/java/org/objectweb/asm/util/TraceMethodVisitor.java
+++ b/src/main/java/org/objectweb/asm/util/TraceMethodVisitor.java
@@ -29,13 +29,7 @@
*/
package org.objectweb.asm.util;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Attribute;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
/**
* A {@link MethodVisitor} that prints the methods it visits with a
diff --git a/src/main/java/org/objectweb/asm/xml/ASMContentHandler.java b/src/main/java/org/objectweb/asm/xml/ASMContentHandler.java
index 7d1d0743..9b2d3968 100644
--- a/src/main/java/org/objectweb/asm/xml/ASMContentHandler.java
+++ b/src/main/java/org/objectweb/asm/xml/ASMContentHandler.java
@@ -29,24 +29,16 @@
*/
package org.objectweb.asm.xml;
+import org.objectweb.asm.*;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
/**
* A {@link org.xml.sax.ContentHandler ContentHandler} that transforms XML
* document into Java class file. This class can be feeded by any kind of SAX
diff --git a/src/main/java/org/objectweb/asm/xml/Processor.java b/src/main/java/org/objectweb/asm/xml/Processor.java
index 24f0ab03..6f5193b0 100644
--- a/src/main/java/org/objectweb/asm/xml/Processor.java
+++ b/src/main/java/org/objectweb/asm/xml/Processor.java
@@ -29,42 +29,24 @@
*/
package org.objectweb.asm.xml;
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassWriter;
+import org.xml.sax.*;
+import org.xml.sax.ext.LexicalHandler;
+import org.xml.sax.helpers.AttributesImpl;
+import org.xml.sax.helpers.DefaultHandler;
+import org.xml.sax.helpers.XMLReaderFactory;
-import javax.xml.transform.Source;
-import javax.xml.transform.Templates;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.*;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamSource;
-
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassWriter;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.AttributesImpl;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
+import java.io.*;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+import java.util.zip.ZipOutputStream;
/**
* Processor is a command line tool that can be used for bytecode waving
diff --git a/src/main/java/org/objectweb/asm/xml/SAXClassAdapter.java b/src/main/java/org/objectweb/asm/xml/SAXClassAdapter.java
index 6d415229..54c8f652 100644
--- a/src/main/java/org/objectweb/asm/xml/SAXClassAdapter.java
+++ b/src/main/java/org/objectweb/asm/xml/SAXClassAdapter.java
@@ -29,12 +29,7 @@
*/
package org.objectweb.asm.xml;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
import org.xml.sax.ContentHandler;
import org.xml.sax.helpers.AttributesImpl;
diff --git a/src/main/java/org/objectweb/asm/xml/SAXCodeAdapter.java b/src/main/java/org/objectweb/asm/xml/SAXCodeAdapter.java
index b6b8ed10..e105e450 100644
--- a/src/main/java/org/objectweb/asm/xml/SAXCodeAdapter.java
+++ b/src/main/java/org/objectweb/asm/xml/SAXCodeAdapter.java
@@ -29,19 +29,13 @@
*/
package org.objectweb.asm.xml;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.Handle;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.TypePath;
+import org.objectweb.asm.*;
import org.objectweb.asm.util.Printer;
import org.xml.sax.helpers.AttributesImpl;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* A {@link MethodVisitor} that generates SAX 2.0 events from the visited
* method.
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/Boot.java b/src/main/java/the/bytecode/club/bytecodeviewer/Boot.java
index 826adea1..195bfefe 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/Boot.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/Boot.java
@@ -4,7 +4,7 @@ import org.apache.commons.io.FileUtils;
import org.zeroturnaround.zip.ZipUtil;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
-import javax.swing.SwingUtilities;
+import javax.swing.*;
import java.io.File;
import java.io.InputStream;
import java.nio.file.Files;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/BytecodeViewer.java b/src/main/java/the/bytecode/club/bytecodeviewer/BytecodeViewer.java
index 34633c52..513e6111 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/BytecodeViewer.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/BytecodeViewer.java
@@ -5,32 +5,17 @@ import org.apache.commons.io.FileUtils;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.api.ClassNodeLoader;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
-import the.bytecode.club.bytecodeviewer.gui.ClassViewer;
-import the.bytecode.club.bytecodeviewer.gui.FileNavigationPane;
-import the.bytecode.club.bytecodeviewer.gui.MainViewerGUI;
-import the.bytecode.club.bytecodeviewer.gui.RunOptions;
-import the.bytecode.club.bytecodeviewer.gui.SearchingPane;
-import the.bytecode.club.bytecodeviewer.gui.SystemErrConsole;
-import the.bytecode.club.bytecodeviewer.gui.WorkPane;
+import the.bytecode.club.bytecodeviewer.gui.*;
import the.bytecode.club.bytecodeviewer.obfuscators.mapping.Refactorer;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
-import javax.swing.JDialog;
-import javax.swing.JFileChooser;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.UIManager;
+import javax.swing.*;
import javax.swing.filechooser.FileFilter;
-import java.awt.Desktop;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import java.net.URI;
import java.net.URL;
import java.nio.file.Files;
@@ -442,21 +427,22 @@ public class BytecodeViewer {
/**
* Returns the ClassNode by the specified name
*
+ * @param containerName name of the FileContainer that this class is in
* @param name the class name
* @return the ClassNode instance
*/
- public static ClassNode getClassNode(String name) {
+ public static ClassNode getClassNode(String containerName, String name) {
for (FileContainer container : files) {
- if (container.getData().containsKey(name + ".class")) {
+ if (container.name.equals(containerName) && container.getData().containsKey(name + ".class")) {
return container.getClassNode(name);
}
}
return null;
}
- public static byte[] getClassBytes(String name) {
+ public static byte[] getClassBytes(String containerName, String name) {
for (FileContainer container : files) {
- if (container.getData().containsKey(name)) {
+ if (container.name.equals(containerName) && container.getData().containsKey(name)) {
return container.getData().get(name);
}
}
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/CommandLineInput.java b/src/main/java/the/bytecode/club/bytecodeviewer/CommandLineInput.java
index ddb7aba7..57288ea1 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/CommandLineInput.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/CommandLineInput.java
@@ -1,11 +1,6 @@
package the.bytecode.club.bytecodeviewer;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.DefaultParser;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
+import org.apache.commons.cli.*;
import org.apache.commons.io.FileUtils;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
@@ -165,13 +160,14 @@ public class CommandLineInput {
System.out.println("Decompiling " + input.getAbsolutePath() + " with " + use.getName());
BytecodeViewer.openFiles(new File[]{input}, false);
+ String containerName = BytecodeViewer.files.get(0).name;
Thread.sleep(5 * 1000);
if (target.equalsIgnoreCase("all")) {
use.decompileToZip(output.getAbsolutePath());
} else {
try {
- ClassNode cn = BytecodeViewer.getClassNode(target);
- byte[] bytes = BytecodeViewer.getClassBytes(target);
+ ClassNode cn = BytecodeViewer.getClassNode(containerName, target);
+ byte[] bytes = BytecodeViewer.getClassBytes(containerName, target);
String contents = use.decompileClassNode(cn, bytes);
FileUtils.write(output, contents, "UTF-8", false);
} catch (Exception e) {
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/DecompilerSettings.java b/src/main/java/the/bytecode/club/bytecodeviewer/DecompilerSettings.java
index bc7404e9..88ac590b 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/DecompilerSettings.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/DecompilerSettings.java
@@ -3,7 +3,7 @@ package the.bytecode.club.bytecodeviewer;
import com.eclipsesource.json.JsonObject;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
-import javax.swing.JCheckBoxMenuItem;
+import javax.swing.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/FileChangeNotifier.java b/src/main/java/the/bytecode/club/bytecodeviewer/FileChangeNotifier.java
index 03fc84af..ee4d69af 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/FileChangeNotifier.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/FileChangeNotifier.java
@@ -28,6 +28,6 @@ import org.objectweb.asm.tree.ClassNode;
*/
public interface FileChangeNotifier {
- void openClassFile(String name, ClassNode cn);
- void openFile(String name, byte[] contents);
+ void openClassFile(String name, String container, ClassNode cn);
+ void openFile(String name, String container, byte[] contents);
}
\ No newline at end of file
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/FileDrop.java b/src/main/java/the/bytecode/club/bytecodeviewer/FileDrop.java
index 40f18cdd..6784774c 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/FileDrop.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/FileDrop.java
@@ -1,11 +1,7 @@
package the.bytecode.club.bytecodeviewer;
import java.awt.datatransfer.DataFlavor;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.Reader;
+import java.io.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/InitialBootScreen.java b/src/main/java/the/bytecode/club/bytecodeviewer/InitialBootScreen.java
index c3bd97c4..5f56349b 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/InitialBootScreen.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/InitialBootScreen.java
@@ -1,15 +1,8 @@
package the.bytecode.club.bytecodeviewer;
-import javax.swing.JEditorPane;
-import javax.swing.JFrame;
-import javax.swing.JProgressBar;
-import javax.swing.JScrollPane;
+import javax.swing.*;
import javax.swing.text.html.HTMLEditorKit;
-import java.awt.Dimension;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.Toolkit;
+import java.awt.*;
import java.io.IOException;
/***************************************************************************
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/JarUtils.java b/src/main/java/the/bytecode/club/bytecodeviewer/JarUtils.java
index daf433de..4fbbe88c 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/JarUtils.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/JarUtils.java
@@ -4,12 +4,7 @@ import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.tree.ClassNode;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/Resources.java b/src/main/java/the/bytecode/club/bytecodeviewer/Resources.java
index 43fcd1eb..a607f867 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/Resources.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/Resources.java
@@ -3,7 +3,7 @@ package the.bytecode.club.bytecodeviewer;
import org.imgscalr.Scalr;
import javax.imageio.ImageIO;
-import javax.swing.ImageIcon;
+import javax.swing.*;
import javax.xml.bind.DatatypeConverter;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/api/ASMUtil_OLD.java b/src/main/java/the/bytecode/club/bytecodeviewer/api/ASMUtil_OLD.java
index b125b631..412304f5 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/api/ASMUtil_OLD.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/api/ASMUtil_OLD.java
@@ -1,14 +1,6 @@
package the.bytecode.club.bytecodeviewer.api;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.InnerClassNode;
-import org.objectweb.asm.tree.LocalVariableNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.TypeInsnNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import java.util.List;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/api/BytecodeViewer.java b/src/main/java/the/bytecode/club/bytecodeviewer/api/BytecodeViewer.java
index e54bc6ee..51a7d43f 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/api/BytecodeViewer.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/api/BytecodeViewer.java
@@ -154,8 +154,8 @@ public class BytecodeViewer {
* the full name of the ClassNode
* @return the ClassNode
*/
- public static ClassNode getClassNode(String name) {
- return the.bytecode.club.bytecodeviewer.BytecodeViewer.getClassNode(name);
+ public static ClassNode getClassNode(String containerName, String name) {
+ return the.bytecode.club.bytecodeviewer.BytecodeViewer.getClassNode(containerName, name);
}
/**
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/api/ExceptionUI.java b/src/main/java/the/bytecode/club/bytecodeviewer/api/ExceptionUI.java
index 33ae9357..c4453cf6 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/api/ExceptionUI.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/api/ExceptionUI.java
@@ -3,12 +3,8 @@ package the.bytecode.club.bytecodeviewer.api;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Resources;
-import javax.swing.JFrame;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import java.awt.CardLayout;
-import java.awt.Color;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
import java.io.PrintWriter;
import java.io.StringWriter;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/api/PluginConsole.java b/src/main/java/the/bytecode/club/bytecodeviewer/api/PluginConsole.java
index 35e3d118..fd0d97b5 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/api/PluginConsole.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/api/PluginConsole.java
@@ -3,19 +3,11 @@ package the.bytecode.club.bytecodeviewer.api;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Resources;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
+import javax.swing.*;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/compilers/JavaCompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/compilers/JavaCompiler.java
index 32fe9649..7d5b86dc 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/compilers/JavaCompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/compilers/JavaCompiler.java
@@ -6,11 +6,7 @@ import the.bytecode.club.bytecodeviewer.JarUtils;
import the.bytecode.club.bytecodeviewer.MiscUtils;
import the.bytecode.club.bytecodeviewer.Settings;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.io.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/compilers/KrakatauAssembler.java b/src/main/java/the/bytecode/club/bytecodeviewer/compilers/KrakatauAssembler.java
index 6f50137e..2f2c7165 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/compilers/KrakatauAssembler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/compilers/KrakatauAssembler.java
@@ -6,11 +6,7 @@ import the.bytecode.club.bytecodeviewer.JarUtils;
import the.bytecode.club.bytecodeviewer.MiscUtils;
import the.bytecode.club.bytecodeviewer.Settings;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.io.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/CFRDecompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/CFRDecompiler.java
index 8571825f..a647f8cf 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/CFRDecompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/CFRDecompiler.java
@@ -16,12 +16,7 @@ import org.benf.cfr.reader.util.bytestream.BaseByteData;
import org.benf.cfr.reader.util.getopt.GetOptParser;
import org.benf.cfr.reader.util.getopt.Options;
import org.benf.cfr.reader.util.getopt.OptionsImpl;
-import org.benf.cfr.reader.util.output.Dumper;
-import org.benf.cfr.reader.util.output.FileDumper;
-import org.benf.cfr.reader.util.output.IllegalIdentifierDump;
-import org.benf.cfr.reader.util.output.NopSummaryDumper;
-import org.benf.cfr.reader.util.output.SummaryDumper;
-import org.benf.cfr.reader.util.output.ToStringDumper;
+import org.benf.cfr.reader.util.output.*;
import org.objectweb.asm.tree.ClassNode;
import org.zeroturnaround.zip.ZipUtil;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/JDGUIDecompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/JDGUIDecompiler.java
index 0f48ac2b..da518fb1 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/JDGUIDecompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/JDGUIDecompiler.java
@@ -4,33 +4,11 @@ import jd.cli.preferences.CommonPreferences;
import jd.cli.printer.text.PlainTextPrinter;
import jd.core.loader.Loader;
import jd.core.loader.LoaderException;
-import jd.core.model.classfile.ClassFile;
-import jd.core.model.classfile.ConstantPool;
-import jd.core.model.classfile.attribute.AttributeInnerClasses;
-import jd.core.model.classfile.attribute.InnerClass;
-import jd.core.model.reference.ReferenceMap;
-import jd.core.preferences.Preferences;
-import jd.core.printer.Printer;
import jd.core.process.DecompilerImpl;
-import jd.core.process.analyzer.classfile.ClassFileAnalyzer;
-import jd.core.process.analyzer.classfile.ReferenceAnalyzer;
-import jd.core.process.deserializer.ClassFileDeserializer;
-import jd.core.process.layouter.ClassFileLayouter;
-import jd.core.process.writer.ClassFileWriter;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
+import java.io.*;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java
index 6625fee7..123dd760 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java
@@ -9,12 +9,7 @@ import the.bytecode.club.bytecodeviewer.JarUtils;
import the.bytecode.club.bytecodeviewer.MiscUtils;
import the.bytecode.club.bytecodeviewer.Settings;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
+import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Enumeration;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDisassembler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDisassembler.java
index 9209406e..06532e2b 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDisassembler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDisassembler.java
@@ -1,6 +1,5 @@
package the.bytecode.club.bytecodeviewer.decompilers;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.objectweb.asm.tree.ClassNode;
import org.zeroturnaround.zip.ZipUtil;
@@ -9,12 +8,7 @@ import the.bytecode.club.bytecodeviewer.JarUtils;
import the.bytecode.club.bytecodeviewer.MiscUtils;
import the.bytecode.club.bytecodeviewer.Settings;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
+import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Enumeration;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/ProcyonDecompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/ProcyonDecompiler.java
index b190a1fc..fceef88d 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/ProcyonDecompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/ProcyonDecompiler.java
@@ -2,12 +2,7 @@ package the.bytecode.club.bytecodeviewer.decompilers;
import com.beust.jcommander.JCommander;
import com.strobel.assembler.InputTypeLoader;
-import com.strobel.assembler.metadata.Buffer;
-import com.strobel.assembler.metadata.ITypeLoader;
-import com.strobel.assembler.metadata.JarTypeLoader;
-import com.strobel.assembler.metadata.MetadataSystem;
-import com.strobel.assembler.metadata.TypeDefinition;
-import com.strobel.assembler.metadata.TypeReference;
+import com.strobel.assembler.metadata.*;
import com.strobel.core.StringUtilities;
import com.strobel.decompiler.CommandLineOptions;
import com.strobel.decompiler.DecompilationOptions;
@@ -18,13 +13,7 @@ import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.JarUtils;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.io.StringWriter;
-import java.io.Writer;
+import java.io.*;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Map;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/ClassNodeDecompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/ClassNodeDecompiler.java
index ec9f71e0..a44aae63 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/ClassNodeDecompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/ClassNodeDecompiler.java
@@ -7,6 +7,7 @@ import org.objectweb.asm.tree.InnerClassNode;
import org.objectweb.asm.tree.MethodNode;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.DecompilerSettings;
+import the.bytecode.club.bytecodeviewer.FileContainer;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
import java.util.ArrayList;
@@ -51,10 +52,20 @@ public class ClassNodeDecompiler extends Decompiler {
}
public String decompileClassNode(ClassNode cn, byte[] b) {
- return decompile(new PrefixedStringBuilder(), new ArrayList(), cn).toString();
+ String containerName = null;
+ for (FileContainer container : BytecodeViewer.files) {
+ String name = cn.name + ".class";
+ if (container.getData().containsKey(name)) {
+ if (container.getClassNode(name) == cn)
+ containerName = container.name;
+ }
+ }
+ System.out.println(containerName);
+
+ return decompile(new PrefixedStringBuilder(), new ArrayList(), containerName, cn).toString();
}
- protected static PrefixedStringBuilder decompile(PrefixedStringBuilder sb, ArrayList decompiledClasses, ClassNode cn) {
+ protected static PrefixedStringBuilder decompile(PrefixedStringBuilder sb, ArrayList decompiledClasses, String containerName, ClassNode cn) {
ArrayList unableToDecompile = new ArrayList();
decompiledClasses.add(cn.name);
sb.append(getAccessString(cn.access));
@@ -97,11 +108,11 @@ public class ClassNodeDecompiler extends Decompiler {
String innerClassName = innerClassNode.name;
if ((innerClassName != null) && !decompiledClasses.contains(innerClassName)) {
decompiledClasses.add(innerClassName);
- ClassNode cn1 = BytecodeViewer.getClassNode(innerClassName);
+ ClassNode cn1 = BytecodeViewer.getClassNode(containerName, innerClassName);
if (cn1 != null) {
sb.appendPrefix(" ");
sb.append(BytecodeViewer.nl + BytecodeViewer.nl);
- sb = decompile(sb, decompiledClasses, cn1);
+ sb = decompile(sb, decompiledClasses, containerName,cn1);
sb.trimPrefix(5);
sb.append(BytecodeViewer.nl);
} else {
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPattern.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPattern.java
index 9c14adef..5a6b8149 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPattern.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPattern.java
@@ -2,27 +2,9 @@ package the.bytecode.club.bytecodeviewer.decompilers.bytecode;
import eu.bibl.banalysis.filter.InstructionFilter;
import eu.bibl.banalysis.filter.OpcodeFilter;
-import eu.bibl.banalysis.filter.insn.FieldInstructionFilter;
-import eu.bibl.banalysis.filter.insn.IincInstructionFilter;
-import eu.bibl.banalysis.filter.insn.InsnInstructionFilter;
-import eu.bibl.banalysis.filter.insn.JumpInstructionFilter;
-import eu.bibl.banalysis.filter.insn.LdcInstructionFilter;
-import eu.bibl.banalysis.filter.insn.MethodInstructionFilter;
-import eu.bibl.banalysis.filter.insn.MultiANewArrayInstructionFilter;
-import eu.bibl.banalysis.filter.insn.TypeInstructionFilter;
-import eu.bibl.banalysis.filter.insn.VarInstructionFilter;
+import eu.bibl.banalysis.filter.insn.*;
import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.InsnNode;
-import org.objectweb.asm.tree.JumpInsnNode;
-import org.objectweb.asm.tree.LabelNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MultiANewArrayInsnNode;
-import org.objectweb.asm.tree.TypeInsnNode;
-import org.objectweb.asm.tree.VarInsnNode;
+import org.objectweb.asm.tree.*;
import java.util.Arrays;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPrinter.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPrinter.java
index 272519dc..c8916692 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPrinter.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/InstructionPrinter.java
@@ -3,23 +3,7 @@ package the.bytecode.club.bytecodeviewer.decompilers.bytecode;
import eu.bibl.banalysis.asm.desc.OpcodeInfo;
import org.apache.commons.lang3.StringEscapeUtils;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.FrameNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.InsnNode;
-import org.objectweb.asm.tree.IntInsnNode;
-import org.objectweb.asm.tree.InvokeDynamicInsnNode;
-import org.objectweb.asm.tree.JumpInsnNode;
-import org.objectweb.asm.tree.LabelNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.LineNumberNode;
-import org.objectweb.asm.tree.LookupSwitchInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.TableSwitchInsnNode;
-import org.objectweb.asm.tree.TypeInsnNode;
-import org.objectweb.asm.tree.VarInsnNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
import java.io.BufferedWriter;
@@ -27,11 +11,7 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
+import java.util.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/MethodNodeDecompiler.java b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/MethodNodeDecompiler.java
index 05463daa..afe52510 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/MethodNodeDecompiler.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/decompilers/bytecode/MethodNodeDecompiler.java
@@ -2,11 +2,7 @@ package the.bytecode.club.bytecodeviewer.decompilers.bytecode;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AnnotationNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.LocalVariableNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.TryCatchBlockNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/AboutWindow.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/AboutWindow.java
index a4cf4ac4..9b6e29ca 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/AboutWindow.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/AboutWindow.java
@@ -4,13 +4,8 @@ import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.Settings;
-import javax.swing.JFrame;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import java.awt.CardLayout;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Toolkit;
+import javax.swing.*;
+import java.awt.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/AllatoriStringDecrypterOptions.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/AllatoriStringDecrypterOptions.java
index 489022e6..03e12ef4 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/AllatoriStringDecrypterOptions.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/AllatoriStringDecrypterOptions.java
@@ -4,11 +4,8 @@ import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.AllatoriStringDecrypter;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JTextField;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/ClassViewer.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/ClassViewer.java
index 79c629b0..5dd0f090 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/ClassViewer.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/ClassViewer.java
@@ -3,35 +3,17 @@ package the.bytecode.club.bytecodeviewer.gui;
import com.jhe.hexed.JHexEditor;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rtextarea.RTextScrollPane;
-import org.objectweb.asm.Type;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
-import javax.swing.ButtonGroup;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JSplitPane;
-import javax.swing.JTextField;
+import javax.swing.*;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-import java.awt.event.HierarchyEvent;
-import java.awt.event.HierarchyListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
+import java.awt.*;
+import java.awt.event.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -137,7 +119,6 @@ public class ClassViewer extends Viewer {
return splitter;
}
- String name;
JSplitPane sp;
JSplitPane sp2;
public List decompilers = Arrays.asList(null, null, null);
@@ -291,7 +272,7 @@ public class ClassViewer extends Viewer {
}
}
- public ClassViewer(final String name, final ClassNode cn) {
+ public ClassViewer(final String name, final String container, final ClassNode cn) {
for (int i = 0; i < panels.size(); i++) {
final JTextField textField = fields.get(i);
JPanel searchPanel = searches.get(i);
@@ -336,12 +317,13 @@ public class ClassViewer extends Viewer {
}
this.name = name;
+ this.container = container;
this.cn = cn;
- this.setName(name);
+ updateName();
this.setLayout(new BorderLayout());
this.sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panels.get(0), panels.get(1));
- JHexEditor hex = new JHexEditor(BytecodeViewer.getClassBytes(cn.name + ".class"));
+ JHexEditor hex = new JHexEditor(BytecodeViewer.getClassBytes(container, cn.name + ".class"));
this.sp2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sp, panels.get(2));
this.add(sp2, BorderLayout.CENTER);
@@ -383,7 +365,7 @@ public class ClassViewer extends Viewer {
}
public void startPaneUpdater(final JButton button) {
- this.cn = BytecodeViewer.getClassNode(cn.name); //update the classnode
+ this.cn = BytecodeViewer.getClassNode(container, cn.name); //update the classnode
setPanes();
for (JPanel jpanel : panels) {
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/ExportJar.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/ExportJar.java
index 9be94922..0f70dee4 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/ExportJar.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/ExportJar.java
@@ -3,13 +3,8 @@ package the.bytecode.club.bytecodeviewer.gui;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.JarUtils;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileChooser.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileChooser.java
index 4579f257..6ec960fd 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileChooser.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileChooser.java
@@ -3,7 +3,7 @@ package the.bytecode.club.bytecodeviewer.gui;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Settings;
-import javax.swing.JFileChooser;
+import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.io.File;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileNavigationPane.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileNavigationPane.java
index 7e6fa308..151d5c89 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileNavigationPane.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileNavigationPane.java
@@ -1,46 +1,16 @@
package the.bytecode.club.bytecodeviewer.gui;
import org.objectweb.asm.tree.ClassNode;
-import the.bytecode.club.bytecodeviewer.BytecodeViewer;
-import the.bytecode.club.bytecodeviewer.FileChangeNotifier;
-import the.bytecode.club.bytecodeviewer.FileContainer;
-import the.bytecode.club.bytecodeviewer.FileDrop;
-import the.bytecode.club.bytecodeviewer.Resources;
+import the.bytecode.club.bytecodeviewer.*;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextField;
-import javax.swing.JTree;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.MutableTreeNode;
-import javax.swing.tree.TreeNode;
-import javax.swing.tree.TreePath;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
+import javax.swing.*;
+import javax.swing.tree.*;
+import java.awt.*;
+import java.awt.event.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.Iterator;
+import java.util.*;
import java.util.Map.Entry;
/***************************************************************************
@@ -264,12 +234,12 @@ public class FileNavigationPane extends VisibleComponent implements FileDrop.Lis
new FileDrop(this, this);
}
- public void openClassFileToWorkSpace(final String name, final ClassNode node) {
- fcn.openClassFile(name, node);
+ public void openClassFileToWorkSpace(final String name, final String container, final ClassNode node) {
+ fcn.openClassFile(name, container, node);
}
- public void openFileToWorkSpace(String name, byte[] contents) {
- fcn.openFile(name, contents);
+ public void openFileToWorkSpace(String name, final String container, byte[] contents) {
+ fcn.openFile(name, container, contents);
}
@Override
@@ -484,13 +454,14 @@ public class FileNavigationPane extends VisibleComponent implements FileDrop.Lis
}
String name = nameBuffer.toString();
+ String containerName = path.getPathComponent(1).toString();
if (name.endsWith(".class")) {
- final ClassNode cn = BytecodeViewer.getClassNode(name.substring(0, name.length() - ".class".length()));
+ final ClassNode cn = BytecodeViewer.getClassNode(containerName, name.substring(0, name.length() - ".class".length()));
if (cn != null) {
- openClassFileToWorkSpace(nameBuffer.toString(), cn);
+ openClassFileToWorkSpace(nameBuffer.toString(), containerName, cn);
}
} else {
- openFileToWorkSpace(nameBuffer.toString(), BytecodeViewer.getFileContents(nameBuffer.toString()));
+ openFileToWorkSpace(nameBuffer.toString(), containerName, BytecodeViewer.getFileContents(nameBuffer.toString()));
}
}
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileViewer.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileViewer.java
index c2b578cb..1e0aeaaa 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileViewer.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/FileViewer.java
@@ -9,24 +9,12 @@ import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Resources;
import javax.imageio.ImageIO;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
+import javax.swing.*;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
+import java.awt.*;
+import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -62,7 +50,6 @@ public class FileViewer extends Viewer {
private static final long serialVersionUID = 6103372882168257164L;
- String name;
private byte[] contents;
RSyntaxTextArea panelArea = new RSyntaxTextArea();
JPanel panel = new JPanel(new BorderLayout());
@@ -201,10 +188,11 @@ public class FileViewer extends Viewer {
return asciiEncoder.canEncode(v);
}
- public FileViewer(final String name, final byte[] contents) {
+ public FileViewer(final String name, final String container, final byte[] contents) {
this.name = name;
+ this.container = container;
this.contents = contents;
- this.setName(name);
+ updateName();
this.setLayout(new BorderLayout());
this.add(panel2, BorderLayout.CENTER);
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/GraphicialReflectionKit.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/GraphicialReflectionKit.java
index ea6349a5..f1b66a38 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/GraphicialReflectionKit.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/GraphicialReflectionKit.java
@@ -2,11 +2,8 @@ package the.bytecode.club.bytecodeviewer.gui;
import the.bytecode.club.bytecodeviewer.Resources;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JTabbedPane;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/MainViewerGUI.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/MainViewerGUI.java
index 85deb597..7bd7e1e5 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/MainViewerGUI.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/MainViewerGUI.java
@@ -2,15 +2,7 @@ package the.bytecode.club.bytecodeviewer.gui;
import org.apache.commons.io.FileUtils;
import org.objectweb.asm.tree.ClassNode;
-import the.bytecode.club.bytecodeviewer.BytecodeViewer;
-import the.bytecode.club.bytecodeviewer.DecompilerSettings;
-import the.bytecode.club.bytecodeviewer.Dex2Jar;
-import the.bytecode.club.bytecodeviewer.FileChangeNotifier;
-import the.bytecode.club.bytecodeviewer.FileContainer;
-import the.bytecode.club.bytecodeviewer.JarUtils;
-import the.bytecode.club.bytecodeviewer.MiscUtils;
-import the.bytecode.club.bytecodeviewer.Resources;
-import the.bytecode.club.bytecodeviewer.Settings;
+import the.bytecode.club.bytecodeviewer.*;
import the.bytecode.club.bytecodeviewer.decompilers.CFRDecompiler;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
import the.bytecode.club.bytecodeviewer.decompilers.FernFlowerDecompiler;
@@ -20,46 +12,15 @@ import the.bytecode.club.bytecodeviewer.obfuscators.rename.RenameClasses;
import the.bytecode.club.bytecodeviewer.obfuscators.rename.RenameFields;
import the.bytecode.club.bytecodeviewer.obfuscators.rename.RenameMethods;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
-import the.bytecode.club.bytecodeviewer.plugin.preinstalled.CodeSequenceDiagram;
-import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ShowAllStrings;
-import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ShowMainMethods;
-import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ZKMStringDecrypter;
-import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ZStringArrayDecrypter;
+import the.bytecode.club.bytecodeviewer.plugin.preinstalled.*;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JDialog;
-import javax.swing.JFileChooser;
-import javax.swing.JFrame;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JSeparator;
-import javax.swing.JSpinner;
-import javax.swing.JSplitPane;
-import javax.swing.JTextField;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.SwingUtilities;
+import javax.swing.*;
import javax.swing.filechooser.FileFilter;
-import java.awt.Dimension;
-import java.awt.Frame;
-import java.awt.KeyEventDispatcher;
-import java.awt.KeyboardFocusManager;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
+import java.awt.*;
+import java.awt.event.*;
import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
+import java.util.*;
import java.util.List;
-import java.util.Map;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
@@ -244,10 +205,11 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
public final ButtonGroup panelGroup1 = new ButtonGroup();
public final ButtonGroup panelGroup2 = new ButtonGroup();
public final ButtonGroup panelGroup3 = new ButtonGroup();
+ public final JCheckBox mnShowContainer = new JCheckBox("Show Containing File's Name");
private final JMenuItem mntmSetOpitonalLibrary = new JMenuItem("Set Optional Library Folder");
private final JMenuItem mntmPingback = new JMenuItem("Pingback");
private final JMenu mnFontSize = new JMenu("Font Size");
- private final JCheckBoxMenuItem chckbxmntmDeleteForiegnoutdatedLibs = new JCheckBoxMenuItem("Delete Foriegn/Outdated Libs");
+ private final JCheckBoxMenuItem chckbxmntmDeleteForiegnoutdatedLibs = new JCheckBoxMenuItem("Delete Foreign/Outdated Libs");
private final JMenu mnApkConversion = new JMenu("APK Conversion");
public final ButtonGroup apkConversionGroup = new ButtonGroup();
public final JRadioButtonMenuItem apkConversionDex = new JRadioButtonMenuItem("Dex2Jar");
@@ -830,14 +792,15 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
int result = -1;
for (int k = 0; k < options.length; k++)
if (options[k].equals(obj)) result = k;
+ String containerName = BytecodeViewer.files.get(0).name;
if (result == 0) {
Thread t = new Thread() {
@Override
public void run() {
try {
- ClassNode cn = BytecodeViewer.getClassNode(s);
- byte[] bytes = BytecodeViewer.getClassBytes(s);
+ ClassNode cn = BytecodeViewer.getClassNode(containerName, s);
+ byte[] bytes = BytecodeViewer.getClassBytes(containerName, s);
String contents = Decompiler.PROCYON.decompileClassNode(cn, bytes);
FileUtils.write(new File(path), contents, "UTF-8", false);
BytecodeViewer.viewer.setIcon(false);
@@ -853,8 +816,8 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
@Override
public void run() {
try {
- ClassNode cn = BytecodeViewer.getClassNode(s);
- byte[] bytes = BytecodeViewer.getClassBytes(s);
+ ClassNode cn = BytecodeViewer.getClassNode(containerName, s);
+ byte[] bytes = BytecodeViewer.getClassBytes(containerName, s);
String contents = Decompiler.CFR.decompileClassNode(cn, bytes);
FileUtils.write(new File(path), contents, "UTF-8", false);
BytecodeViewer.viewer.setIcon(false);
@@ -870,8 +833,8 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
@Override
public void run() {
try {
- ClassNode cn = BytecodeViewer.getClassNode(s);
- byte[] bytes = BytecodeViewer.getClassBytes(s);
+ ClassNode cn = BytecodeViewer.getClassNode(containerName, s);
+ byte[] bytes = BytecodeViewer.getClassBytes(containerName, s);
String contents = Decompiler.FERNFLOWER.decompileClassNode(cn, bytes);
FileUtils.write(new File(path), contents, "UTF-8", false);
BytecodeViewer.viewer.setIcon(false);
@@ -887,8 +850,8 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
@Override
public void run() {
try {
- ClassNode cn = BytecodeViewer.getClassNode(s);
- byte[] bytes = BytecodeViewer.getClassBytes(s);
+ ClassNode cn = BytecodeViewer.getClassNode(containerName, s);
+ byte[] bytes = BytecodeViewer.getClassBytes(containerName, s);
String contents = Decompiler.KRAKATAU.decompileClassNode(cn, bytes);
FileUtils.write(new File(path), contents, "UTF-8", false);
BytecodeViewer.viewer.setIcon(false);
@@ -1263,11 +1226,26 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
fontSpinner.setSize(new Dimension(42, 20));
fontSpinner.setModel(new SpinnerNumberModel(12, 1, null, 1));
viewMenu.add(mnFontSize);
-
mnFontSize.add(fontSpinner);
-
- panelGroup1.setSelected(allDecompilersRev.get(panelGroup1).get(Decompiler.JDGUI).getModel(), true);
+ viewMenu.add(mnShowContainer);
+ mnShowContainer.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ JTabbedPane tabs = workPane.tabs;
+ Component[] components = tabs.getComponents();
+ for (int i = 0; i < components.length; i++) {
+ Component c = components[i];
+ if (c instanceof Viewer) {
+ ((Viewer) c).updateName();
+ int idx = tabs.indexOfComponent(c);
+ tabs.setTabComponentAt(idx, new TabbedPane(c.getName(), tabs));
+ workPane.tabs.setTitleAt(idx, c.getName());
+ }
+ }
+ }
+ });
+ panelGroup1.setSelected(allDecompilersRev.get(panelGroup1).get(Decompiler.JDGUI).getModel(), true);
panelGroup2.setSelected(allDecompilersRev.get(panelGroup2).get(Decompiler.BYTECODE).getModel(), true);
panelGroup3.setSelected(allDecompilersRev.get(panelGroup3).get(null).getModel(), true);
this.setLocationRelativeTo(null);
@@ -1297,16 +1275,16 @@ public class MainViewerGUI extends JFrame implements FileChangeNotifier {
}
@Override
- public void openClassFile(final String name, final ClassNode cn) {
+ public void openClassFile(final String name, String container, final ClassNode cn) {
for (final VisibleComponent vc : rfComps) {
- vc.openClassFile(name, cn);
+ vc.openClassFile(name, container, cn);
}
}
@Override
- public void openFile(final String name, byte[] content) {
+ public void openFile(final String name, String container, byte[] content) {
for (final VisibleComponent vc : rfComps) {
- vc.openFile(name, content);
+ vc.openFile(name, container, content);
}
}
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/MaliciousCodeScannerOptions.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/MaliciousCodeScannerOptions.java
index 9ac5c439..a2d8a1af 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/MaliciousCodeScannerOptions.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/MaliciousCodeScannerOptions.java
@@ -4,10 +4,8 @@ import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.MaliciousCodeScanner;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFrame;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/PaneUpdaterThread.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/PaneUpdaterThread.java
index 81f7dead..1a9b566f 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/PaneUpdaterThread.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/PaneUpdaterThread.java
@@ -26,11 +26,8 @@ import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
import the.bytecode.club.bytecodeviewer.decompilers.Decompiler;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.SwingUtilities;
-import java.awt.Font;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
@@ -57,7 +54,7 @@ public class PaneUpdaterThread extends Thread {
public void run() {
try {
- final byte[] b = BytecodeViewer.getClassBytes(viewer.cn.name + ".class");
+ final byte[] b = BytecodeViewer.getClassBytes(viewer.container, viewer.cn.name + ".class");
if (decompiler != Decompiler.HEXCODE) {
RSyntaxTextArea panelArea = new RSyntaxTextArea();
panelArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/ReplaceStringsOptions.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/ReplaceStringsOptions.java
index c806bf5f..af9498cc 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/ReplaceStringsOptions.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/ReplaceStringsOptions.java
@@ -4,12 +4,8 @@ import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.ReplaceStrings;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JTextField;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/RunOptions.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/RunOptions.java
index 4b03f617..a866076f 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/RunOptions.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/RunOptions.java
@@ -7,12 +7,8 @@ import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.plugin.PluginManager;
import the.bytecode.club.bytecodeviewer.plugin.preinstalled.EZInjection;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JTextField;
-import java.awt.Dimension;
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/SearchingPane.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/SearchingPane.java
index f37e0a8a..655f6c4d 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/SearchingPane.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/SearchingPane.java
@@ -3,29 +3,14 @@ package the.bytecode.club.bytecodeviewer.gui;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.FileChangeNotifier;
-import the.bytecode.club.bytecodeviewer.searching.BackgroundSearchThread;
-import the.bytecode.club.bytecodeviewer.searching.FieldCallSearch;
-import the.bytecode.club.bytecodeviewer.searching.LDCSearch;
-import the.bytecode.club.bytecodeviewer.searching.MethodCallSearch;
-import the.bytecode.club.bytecodeviewer.searching.RegexInsnFinder;
-import the.bytecode.club.bytecodeviewer.searching.RegexSearch;
-import the.bytecode.club.bytecodeviewer.searching.SearchResultNotifier;
-import the.bytecode.club.bytecodeviewer.searching.SearchTypeDetails;
+import the.bytecode.club.bytecodeviewer.searching.*;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTree;
+import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
-import java.awt.BorderLayout;
-import java.awt.GridLayout;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
@@ -210,12 +195,13 @@ public class SearchingPane extends VisibleComponent {
@Override
public void valueChanged(final TreeSelectionEvent arg0) {
String path = arg0.getPath().toString();
+ String containerName = arg0.getPath().getPathComponent(1).toString();
String className = path.split(", ")[1].split("\\.")[0];
- final ClassNode fN = BytecodeViewer.getClassNode(className);
+ final ClassNode fN = BytecodeViewer.getClassNode(containerName, className);
if (fN != null) {
MainViewerGUI.getComponent(FileNavigationPane.class)
- .openClassFileToWorkSpace(className + ".class", fN);
+ .openClassFileToWorkSpace(className + ".class", containerName, fN);
}
System.out.println(className);
@@ -247,7 +233,7 @@ public class SearchingPane extends VisibleComponent {
}
@Override
- public void openFile(String name, byte[] contents) {
+ public void openFile(String name, String container, byte[] contents) {
// TODO Auto-generated method stub
}
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/SystemErrConsole.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/SystemErrConsole.java
index 1f1c5df7..f420880f 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/SystemErrConsole.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/SystemErrConsole.java
@@ -3,19 +3,11 @@ package the.bytecode.club.bytecodeviewer.gui;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Resources;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
+import javax.swing.*;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.JTextComponent;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/TabbedPane.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/TabbedPane.java
index 2e429746..e1ca2261 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/TabbedPane.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/TabbedPane.java
@@ -1,26 +1,9 @@
package the.bytecode.club.bytecodeviewer.gui;
-import javax.swing.AbstractButton;
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JTabbedPane;
+import javax.swing.*;
import javax.swing.plaf.basic.BasicButtonUI;
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
+import java.awt.*;
+import java.awt.event.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/Viewer.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/Viewer.java
index 2d163aec..783ca30c 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/Viewer.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/Viewer.java
@@ -1,8 +1,9 @@
package the.bytecode.club.bytecodeviewer.gui;
import org.objectweb.asm.tree.ClassNode;
+import the.bytecode.club.bytecodeviewer.BytecodeViewer;
-import javax.swing.JPanel;
+import javax.swing.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
@@ -26,7 +27,11 @@ public abstract class Viewer extends JPanel {
public ClassNode cn;
public String name;
+ public String container;
private static final long serialVersionUID = -2965538493489119191L;
+ public void updateName() {
+ this.setName(name + (BytecodeViewer.viewer.mnShowContainer.isSelected() ? "(" + container + ")" : ""));
+ }
}
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/VisibleComponent.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/VisibleComponent.java
index f680aa36..c60c043f 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/VisibleComponent.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/VisibleComponent.java
@@ -3,7 +3,7 @@ package the.bytecode.club.bytecodeviewer.gui;
import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.FileChangeNotifier;
-import javax.swing.JInternalFrame;
+import javax.swing.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *
@@ -49,10 +49,10 @@ public abstract class VisibleComponent extends JInternalFrame implements
}
@Override
- public void openClassFile(final String name, final ClassNode cn) {
+ public void openClassFile(final String name, String container, final ClassNode cn) {
}
@Override
- public void openFile(final String name, byte[] contents) {
+ public void openFile(final String name, String container, byte[] contents) {
}
}
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/WorkPane.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/WorkPane.java
index a6be82e4..48c4dce8 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/WorkPane.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/WorkPane.java
@@ -4,14 +4,10 @@ import org.objectweb.asm.tree.ClassNode;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.FileChangeNotifier;
-import javax.swing.JButton;
-import javax.swing.JPanel;
-import javax.swing.JTabbedPane;
+import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.FlowLayout;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerEvent;
@@ -89,10 +85,12 @@ public class WorkPane extends VisibleComponent implements ActionListener {
public void componentRemoved(final ContainerEvent e) {
final Component c = e.getChild();
if (c instanceof ClassViewer) {
- workingOn.remove(((ClassViewer) c).name);
+ ClassViewer cv = (ClassViewer) c;
+ workingOn.remove(cv.container + "$" + cv.name);
}
if (c instanceof FileViewer) {
- workingOn.remove(((FileViewer) c).name);
+ FileViewer fv = (FileViewer) c;
+ workingOn.remove(fv.container + "$" + fv.name);
}
}
@@ -110,43 +108,45 @@ public class WorkPane extends VisibleComponent implements ActionListener {
int tabCount = 0;
- public void addWorkingFile(final String name, final ClassNode cn) {
- if (!workingOn.containsKey(name)) {
- final JPanel tabComp = new ClassViewer(name, cn);
+ public void addWorkingFile(final String name, String container, final ClassNode cn) {
+ String key = container + "$" + name;
+ if (!workingOn.containsKey(key)) {
+ final JPanel tabComp = new ClassViewer(name, container, cn);
tabs.add(tabComp);
final int tabCount = tabs.indexOfComponent(tabComp);
- workingOn.put(name, tabCount);
- tabs.setTabComponentAt(tabCount, new TabbedPane(name,tabs));
+ workingOn.put(key, tabCount);
+ tabs.setTabComponentAt(tabCount, new TabbedPane(name, tabs));
tabs.setSelectedIndex(tabCount);
} else {
- tabs.setSelectedIndex(workingOn.get(name));
+ tabs.setSelectedIndex(workingOn.get(key));
}
}
- public void addFile(final String name, byte[] contents) {
+ public void addFile(final String name, String container, byte[] contents) {
if(contents == null) //a directory
return;
-
- if (!workingOn.containsKey(name)) {
- final Component tabComp = new FileViewer(name, contents);
+
+ String key = container + "$" + name;
+ if (!workingOn.containsKey(key)) {
+ final Component tabComp = new FileViewer(name, container, contents);
tabs.add(tabComp);
final int tabCount = tabs.indexOfComponent(tabComp);
- workingOn.put(name, tabCount);
- tabs.setTabComponentAt(tabCount, new TabbedPane(name,tabs));
+ workingOn.put(key, tabCount);
+ tabs.setTabComponentAt(tabCount, new TabbedPane(name, tabs));
tabs.setSelectedIndex(tabCount);
} else {
- tabs.setSelectedIndex(workingOn.get(name));
+ tabs.setSelectedIndex(workingOn.get(key));
}
}
@Override
- public void openClassFile(final String name, final ClassNode cn) {
- addWorkingFile(name, cn);
+ public void openClassFile(final String name, String container, final ClassNode cn) {
+ addWorkingFile(name, container, cn);
}
@Override
- public void openFile(final String name, byte[] content) {
- addFile(name, content);
+ public void openFile(final String name, String container, byte[] content) {
+ addFile(name, container, content);
}
public Viewer getCurrentViewer() {
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/PluginManager.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/PluginManager.java
index 465214ca..2b74df77 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/PluginManager.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/PluginManager.java
@@ -3,11 +3,7 @@ package the.bytecode.club.bytecodeviewer.plugin;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.MiscUtils;
import the.bytecode.club.bytecodeviewer.api.Plugin;
-import the.bytecode.club.bytecodeviewer.plugin.strategies.CompiledJavaPluginLaunchStrategy;
-import the.bytecode.club.bytecodeviewer.plugin.strategies.GroovyPluginLaunchStrategy;
-import the.bytecode.club.bytecodeviewer.plugin.strategies.JavaPluginLaunchStrategy;
-import the.bytecode.club.bytecodeviewer.plugin.strategies.PythonPluginLaunchStrategy;
-import the.bytecode.club.bytecodeviewer.plugin.strategies.RubyPluginLaunchStrategy;
+import the.bytecode.club.bytecodeviewer.plugin.strategies.*;
import javax.swing.filechooser.FileFilter;
import java.io.File;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/AllatoriStringDecrypter.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/AllatoriStringDecrypter.java
index d79335d8..b3b310df 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/AllatoriStringDecrypter.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/AllatoriStringDecrypter.java
@@ -1,20 +1,13 @@
package the.bytecode.club.bytecodeviewer.plugin.preinstalled;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.InvokeDynamicInsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.JarUtils;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
-import javax.swing.JDialog;
-import javax.swing.JOptionPane;
+import javax.swing.*;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.ArrayList;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/CodeSequenceDiagram.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/CodeSequenceDiagram.java
index ebb95414..73f66eeb 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/CodeSequenceDiagram.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/CodeSequenceDiagram.java
@@ -11,9 +11,8 @@ import the.bytecode.club.bytecodeviewer.Resources;
import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.gui.ClassViewer;
-import javax.swing.JFrame;
-import javax.swing.UIManager;
-import java.awt.Font;
+import javax.swing.*;
+import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.AffineTransform;
import java.util.ArrayList;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/EZInjection.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/EZInjection.java
index 458c1181..559df832 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/EZInjection.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/EZInjection.java
@@ -1,11 +1,7 @@
package the.bytecode.club.bytecodeviewer.plugin.preinstalled;
import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.api.BytecodeHook;
import the.bytecode.club.bytecodeviewer.api.Plugin;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/MaliciousCodeScanner.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/MaliciousCodeScanner.java
index ec53fa62..0bc76a7d 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/MaliciousCodeScanner.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/MaliciousCodeScanner.java
@@ -1,14 +1,7 @@
package the.bytecode.club.bytecodeviewer.plugin.preinstalled;
import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.InsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ReplaceStrings.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ReplaceStrings.java
index ce0286c4..634c85b9 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ReplaceStrings.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ReplaceStrings.java
@@ -1,11 +1,6 @@
package the.bytecode.club.bytecodeviewer.plugin.preinstalled;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ShowAllStrings.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ShowAllStrings.java
index b5cb7df4..7a30601d 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ShowAllStrings.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ShowAllStrings.java
@@ -1,11 +1,6 @@
package the.bytecode.club.bytecodeviewer.plugin.preinstalled;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ZStringArrayDecrypter.java b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ZStringArrayDecrypter.java
index f982fae2..0383fcd1 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ZStringArrayDecrypter.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/plugin/preinstalled/ZStringArrayDecrypter.java
@@ -6,8 +6,7 @@ import the.bytecode.club.bytecodeviewer.api.ExceptionUI;
import the.bytecode.club.bytecodeviewer.api.Plugin;
import the.bytecode.club.bytecodeviewer.api.PluginConsole;
-import javax.swing.JDialog;
-import javax.swing.JOptionPane;
+import javax.swing.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java b/src/main/java/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java
index d96cc195..7444bd44 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/searching/FieldCallSearch.java
@@ -2,16 +2,10 @@ package the.bytecode.club.bytecodeviewer.searching;
import eu.bibl.banalysis.asm.desc.OpcodeInfo;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import java.awt.GridLayout;
+import javax.swing.*;
+import java.awt.*;
import java.util.Iterator;
import java.util.ListIterator;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java b/src/main/java/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java
index ca30598d..2ce410ca 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/searching/LDCSearch.java
@@ -1,17 +1,10 @@
package the.bytecode.club.bytecodeviewer.searching;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import java.awt.GridLayout;
+import javax.swing.*;
+import java.awt.*;
import java.util.Iterator;
import java.util.ListIterator;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java b/src/main/java/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java
index 397a121d..ce303bcd 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/searching/MethodCallSearch.java
@@ -2,16 +2,10 @@ package the.bytecode.club.bytecodeviewer.searching;
import eu.bibl.banalysis.asm.desc.OpcodeInfo;
import org.objectweb.asm.Type;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
+import org.objectweb.asm.tree.*;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import java.awt.GridLayout;
+import javax.swing.*;
+import java.awt.*;
import java.util.Iterator;
import java.util.ListIterator;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexInsnFinder.java b/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexInsnFinder.java
index e979ff6a..6ed82e32 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexInsnFinder.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexInsnFinder.java
@@ -1,17 +1,6 @@
package the.bytecode.club.bytecodeviewer.searching;
-import org.objectweb.asm.tree.AbstractInsnNode;
-import org.objectweb.asm.tree.ClassNode;
-import org.objectweb.asm.tree.FieldInsnNode;
-import org.objectweb.asm.tree.IincInsnNode;
-import org.objectweb.asm.tree.InsnList;
-import org.objectweb.asm.tree.IntInsnNode;
-import org.objectweb.asm.tree.LdcInsnNode;
-import org.objectweb.asm.tree.MethodInsnNode;
-import org.objectweb.asm.tree.MethodNode;
-import org.objectweb.asm.tree.MultiANewArrayInsnNode;
-import org.objectweb.asm.tree.TypeInsnNode;
-import org.objectweb.asm.tree.VarInsnNode;
+import org.objectweb.asm.tree.*;
import java.rmi.UnexpectedException;
import java.util.ArrayList;
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java b/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java
index 1bcd1c4c..bb07f009 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/searching/RegexSearch.java
@@ -4,10 +4,8 @@ import org.objectweb.asm.Type;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.MethodNode;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import java.awt.GridLayout;
+import javax.swing.*;
+import java.awt.*;
import java.util.Iterator;
/***************************************************************************
diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/searching/SearchTypeDetails.java b/src/main/java/the/bytecode/club/bytecodeviewer/searching/SearchTypeDetails.java
index 27877d47..bda74a15 100644
--- a/src/main/java/the/bytecode/club/bytecodeviewer/searching/SearchTypeDetails.java
+++ b/src/main/java/the/bytecode/club/bytecodeviewer/searching/SearchTypeDetails.java
@@ -2,7 +2,7 @@ package the.bytecode.club.bytecodeviewer.searching;
import org.objectweb.asm.tree.ClassNode;
-import javax.swing.JPanel;
+import javax.swing.*;
/***************************************************************************
* Bytecode Viewer (BCV) - Java & Android Reverse Engineering Suite *