Skip to content

Instantly share code, notes, and snippets.

@luos
Created February 16, 2014 10:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luos/9032312 to your computer and use it in GitHub Desktop.
Save luos/9032312 to your computer and use it in GitHub Desktop.
% java -jar procyon-decompiler-0.5.24.jar TestClass.class
import scala.reflect.*;
import scala.collection.*;
import scala.runtime.*;
import scala.*;
@ScalaSignature(bytes = "\u0006\u0001\u0005Ub\u0001B\u0001\u0003\u0001\u0016\u0011\u0011\u0002V3ti\u000ec\u0017m]:\u000b\u0003\r\tq\u0001P3naRLhh\u0001\u0001\u0014\u000b\u00011a\u0002F\f\u0011\u0005\u001daQ\"\u0001\u0005\u000b\u0005%Q\u0011\u0001\u00027b]\u001eT\u0011aC\u0001\u0005U\u00064\u0018-\u0003\u0002\u000e\u0011\t1qJ\u00196fGR\u0004\"a\u0004\n\u000e\u0003AQ\u0011!E\u0001\u0006g\u000e\fG.Y\u0005\u0003'A\u00111bU2bY\u0006|%M[3diB\u0011q\"F\u0005\u0003-A\u0011q\u0001\u0015:pIV\u001cG\u000f\u0005\u0002\u00101%\u0011\u0011\u0004\u0005\u0002\r'\u0016\u0014\u0018.\u00197ju\u0006\u0014G.\u001a\u0005\t7\u0001\u0011)\u001a!C\u00019\u0005!a.Y7f+\u0005i\u0002C\u0001\u0010\"\u001d\tyq$\u0003\u0002!!\u00051\u0001K]3eK\u001aL!AI\u0012\u0003\rM#(/\u001b8h\u0015\t\u0001\u0003\u0003\u0003\u0005&\u0001\tE\t\u0015!\u0003\u001e\u0003\u0015q\u0017-\\3!\u0011!9\u0003A!f\u0001\n\u0003A\u0013!A1\u0016\u0003%\u00022a\u0004\u0016-\u0013\tY\u0003C\u0001\u0004PaRLwN\u001c\t\u0003\u001f5J!A\f\t\u0003\u0007%sG\u000f\u0003\u00051\u0001\tE\t\u0015!\u0003*\u0003\t\t\u0007\u0005\u0003\u00053\u0001\tU\r\u0011\"\u00014\u0003\u0005\u0019W#\u0001\u0017\t\u0011U\u0002!\u0011#Q\u0001\n1\n!a\u0019\u0011\t\u000b]\u0002A\u0011\u0001\u001d\u0002\rqJg.\u001b;?)\u0011I4\bP\u001f\u0011\u0005i\u0002Q\"\u0001\u0002\t\u000bm1\u0004\u0019A\u000f\t\u000b\u001d2\u0004\u0019A\u0015\t\u000bI2\u0004\u0019\u0001\u0017\t\u000f}\u0002\u0011\u0011!C\u0001\u0001\u0006!1m\u001c9z)\u0011I\u0014IQ\"\t\u000fmq\u0004\u0013!a\u0001;!9qE\u0010I\u0001\u0002\u0004I\u0003b\u0002\u001a?!\u0003\u0005\r\u0001\f\u0005\b\u000b\u0002\t\n\u0011\"\u0001G\u00039\u0019w\u000e]=%I\u00164\u0017-\u001e7uIE*\u0012a\u0012\u0016\u0003;![\u0013!\u0013\t\u0003\u0015>k\u0011a\u0013\u0006\u0003\u00196\u000b\u0011\"\u001e8dQ\u0016\u001c7.\u001a3\u000b\u00059\u0003\u0012AC1o]>$\u0018\r^5p]&\u0011\u0001k\u0013\u0002\u0012k:\u001c\u0007.Z2lK\u00124\u0016M]5b]\u000e,\u0007b\u0002*\u0001#\u0003%\taU\u0001\u000fG>\u0004\u0018\u0010\n3fM\u0006,H\u000e\u001e\u00133+\u0005!&FA\u0015I\u0011\u001d1\u0006!%A\u0005\u0002]\u000babY8qs\u0012\"WMZ1vYR$3'F\u0001YU\ta\u0003\nC\u0003[\u0001\u0011\u00053,\u0001\u0005iCND7i\u001c3f)\u0005a\u0003\"B/\u0001\t\u0003r\u0016\u0001\u0003;p'R\u0014\u0018N\\4\u0015\u0003uAQ\u0001\u0019\u0001\u0005B\u0005\fa!Z9vC2\u001cHC\u00012f!\ty1-\u0003\u0002e!\t9!i\\8mK\u0006t\u0007b\u00024`\u0003\u0003\u0005\raZ\u0001\u0004q\u0012\n\u0004CA\bi\u0013\tI\u0007CA\u0002B]fDQa\u001b\u0001\u0005B1\fQ\u0002\u001d:pIV\u001cG\u000f\u0015:fM&DX#A7\u0011\u0005\u001dq\u0017B\u0001\u0012\t\u0011\u0015\u0001\b\u0001\"\u00114\u00031\u0001(o\u001c3vGR\f%/\u001b;z\u0011\u0015\u0011\b\u0001\"\u0011t\u00039\u0001(o\u001c3vGR,E.Z7f]R$\"a\u001a;\t\u000f\u0019\f\u0018\u0011!a\u0001Y!)a\u000f\u0001C!o\u0006A1-\u00198FcV\fG\u000e\u0006\u0002cq\"9a-^A\u0001\u0002\u00049wa\u0002>\u0003\u0003\u0003E)a_\u0001\n)\u0016\u001cHo\u00117bgN\u0004\"A\u000f?\u0007\u000f\u0005\u0011\u0011\u0011!E\u0003{N!AP \b\u0018!\u001dy\u0018QA\u000f*Yej!!!\u0001\u000b\u0007\u0005\r\u0001#A\u0004sk:$\u0018.\\3\n\t\u0005\u001d\u0011\u0011\u0001\u0002\u0012\u0003\n\u001cHO]1di\u001a+hn\u0019;j_:\u001c\u0004BB\u001c}\t\u0003\tY\u0001F\u0001|\u0011\u0019iF\u0010\"\u0012\u0002\u0010Q\tQ\u000eC\u0005\u0002\u0014q\f\t\u0011\"!\u0002\u0016\u0005)\u0011\r\u001d9msR9\u0011(a\u0006\u0002\u001a\u0005m\u0001BB\u000e\u0002\u0012\u0001\u0007Q\u0004\u0003\u0004(\u0003#\u0001\r!\u000b\u0005\u0007e\u0005E\u0001\u0019\u0001\u0017\t\u0013\u0005}A0!A\u0005\u0002\u0006\u0005\u0012aB;oCB\u0004H.\u001f\u000b\u0005\u0003G\tY\u0003\u0005\u0003\u0010U\u0005\u0015\u0002CB\b\u0002(uIC&C\u0002\u0002*A\u0011a\u0001V;qY\u0016\u001c\u0004bBA\u0017\u0003;\u0001\r!O\u0001\u0004q\u0012\u0002\u0004bBA\u0019y\u0012E\u00111G\u0001\fe\u0016\fGMU3t_24X\rF\u0001\u0007\u0001")
public class TestClass implements Product, Serializable
{
private final String name;
private final Option<Object> a;
private final int c;
public static final Function1<Tuple3<String, Option<Object>, Object>, TestClass> tupled() {
return (Function1<Tuple3<String, Option<Object>, Object>, TestClass>)TestClass$.MODULE$.tupled();
}
public static final Function1<String, Function1<Option<Object>, Function1<Object, TestClass>>> curry() {
return (Function1<String, Function1<Option<Object>, Function1<Object, TestClass>>>)TestClass$.MODULE$.curry();
}
public static final Function1<String, Function1<Option<Object>, Function1<Object, TestClass>>> curried() {
return (Function1<String, Function1<Option<Object>, Function1<Object, TestClass>>>)TestClass$.MODULE$.curried();
}
public Iterator<Object> productIterator() {
return (Iterator<Object>)Product$class.productIterator((Product)this);
}
public Iterator<Object> productElements() {
return (Iterator<Object>)Product$class.productElements((Product)this);
}
public String name() {
return this.name;
}
public Option<Object> a() {
return this.a;
}
public int c() {
return this.c;
}
public int copy$default$3() {
return this.c();
}
public Option copy$default$2() {
return this.a();
}
public String copy$default$1() {
return this.name();
}
public TestClass copy(final String name, final Option a, final int c) {
return new TestClass(name, (Option<Object>)a, c);
}
public int hashCode() {
return ScalaRunTime.MODULE$._hashCode((Product)this);
}
public String toString() {
return ScalaRunTime.MODULE$._toString((Product)this);
}
public boolean equals(final Object o) {
if (this != o) {
boolean b;
if (o instanceof TestClass) {
final TestClass testClass = (TestClass)o;
final String name = testClass.name();
final Option a = testClass.a();
final int c = testClass.c();
final String name$1 = name;
final Option a$1 = a;
final int c$1 = c;
b = (this.gd1$1(name$1, a$1, c$1) && ((Equals)o).canEqual(this));
}
else {
b = false;
}
if (!b) {
return false;
}
}
return true;
}
public String productPrefix() {
return "TestClass";
}
public int productArity() {
return 3;
}
public Object productElement(final int n) {
Object o = null;
switch (n) {
default: {
throw new IndexOutOfBoundsException(BoxesRunTime.boxToInteger(n).toString());
}
case 0: {
o = this.name();
break;
}
case 2: {
o = BoxesRunTime.boxToInteger(this.c());
break;
}
case 1: {
o = this.a();
break;
}
}
return o;
}
public boolean canEqual(final Object o) {
return o instanceof TestClass;
}
private final boolean gd1$1(final String s, final Option option, final int n) {
final String name = this.name();
if (s == null) {
if (name != null) {
return false;
}
}
else if (!s.equals(name)) {
return false;
}
final Option<Object> a = this.a();
if (option == null) {
if (a != null) {
return false;
}
}
else if (!option.equals(a)) {
return false;
}
if (n == this.c()) {
return true;
}
return false;
}
public TestClass(final String name, final Option<Object> a, final int c) {
this.name = name;
this.a = a;
this.c = c;
super();
Product$class.$init$((Product)this);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment