home *** CD-ROM | disk | FTP | other *** search
- package java.io;
-
- final class ObjectInputStream$GetFieldImpl extends ObjectInputStream.GetField {
- private byte[] data;
- private Object[] objects;
- private ObjectStreamClass desc;
- // $FF: synthetic field
- static Class class$java$lang$Object;
-
- public ObjectStreamClass getObjectStreamClass() {
- return this.desc;
- }
-
- public boolean defaulted(String var1) throws IOException, IllegalArgumentException {
- ObjectStreamField var2 = this.checkField(var1, (Class)null);
- return var2 == null;
- }
-
- public boolean get(String var1, boolean var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, Boolean.TYPE);
- if (var3 == null) {
- return var2;
- } else {
- return this.data[var3.getOffset()] != 0;
- }
- }
-
- public char get(String var1, char var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, Character.TYPE);
- if (var3 == null) {
- return var2;
- } else {
- int var4 = var3.getOffset();
- return (char)(((this.data[var4] & 255) << 8) + (this.data[var4 + 1] & 255));
- }
- }
-
- public byte get(String var1, byte var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, Byte.TYPE);
- return var3 == null ? var2 : this.data[var3.getOffset()];
- }
-
- public short get(String var1, short var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, Short.TYPE);
- if (var3 == null) {
- return var2;
- } else {
- int var4 = var3.getOffset();
- return (short)(((this.data[var4] & 255) << 8) + (this.data[var4 + 1] & 255));
- }
- }
-
- public int get(String var1, int var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, Integer.TYPE);
- if (var3 == null) {
- return var2;
- } else {
- int var4 = var3.getOffset();
- return ((this.data[var4] & 255) << 24) + ((this.data[var4 + 1] & 255) << 16) + ((this.data[var4 + 2] & 255) << 8) + (this.data[var4 + 3] & 255);
- }
- }
-
- public long get(String var1, long var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var4 = this.checkField(var1, Long.TYPE);
- if (var4 == null) {
- return var2;
- } else {
- int var5 = var4.getOffset();
- int var6 = ((this.data[var5] & 255) << 24) + ((this.data[var5 + 1] & 255) << 16) + ((this.data[var5 + 2] & 255) << 8) + (this.data[var5 + 3] & 255);
- int var7 = ((this.data[var5 + 4] & 255) << 24) + ((this.data[var5 + 5] & 255) << 16) + ((this.data[var5 + 6] & 255) << 8) + (this.data[var5 + 7] & 255);
- long var8 = ((long)var6 << 32) + ((long)var7 & 4294967295L);
- return var8;
- }
- }
-
- public float get(String var1, float var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, Float.TYPE);
- if (var3 == null) {
- return var2;
- } else {
- int var4 = var3.getOffset();
- int var5 = ((this.data[var4] & 255) << 24) + ((this.data[var4 + 1] & 255) << 16) + ((this.data[var4 + 2] & 255) << 8) + (this.data[var4 + 3] & 255);
- return Float.intBitsToFloat(var5);
- }
- }
-
- public double get(String var1, double var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var4 = this.checkField(var1, Double.TYPE);
- if (var4 == null) {
- return var2;
- } else {
- int var5 = var4.getOffset();
- int var6 = ((this.data[var5] & 255) << 24) + ((this.data[var5 + 1] & 255) << 16) + ((this.data[var5 + 2] & 255) << 8) + (this.data[var5 + 3] & 255);
- int var7 = ((this.data[var5 + 4] & 255) << 24) + ((this.data[var5 + 5] & 255) << 16) + ((this.data[var5 + 6] & 255) << 8) + (this.data[var5 + 7] & 255);
- long var8 = ((long)var6 << 32) + ((long)var7 & 4294967295L);
- return Double.longBitsToDouble(var8);
- }
- }
-
- public Object get(String var1, Object var2) throws IOException, IllegalArgumentException {
- ObjectStreamField var3 = this.checkField(var1, class$java$lang$Object == null ? (class$java$lang$Object = class$("java.lang.Object")) : class$java$lang$Object);
- return var3 == null ? var2 : this.objects[var3.getOffset()];
- }
-
- private ObjectStreamField checkField(String var1, Class var2) throws IllegalArgumentException {
- ObjectStreamField var3 = var2 == null ? this.desc.getField(var1) : this.desc.getField(var1, var2);
- if (var3 != null) {
- if (var2 != null && var2 != var3.getType()) {
- throw new IllegalArgumentException("field type incorrect");
- } else {
- return var3;
- }
- } else {
- ObjectStreamClass var4 = this.desc.localClassDescriptor();
- if (var4 == null) {
- throw new IllegalArgumentException("No local class descriptor");
- } else {
- ObjectStreamField var5 = var2 == null ? var4.getField(var1) : var4.getField(var1, var2);
- if (var5 == null) {
- throw new IllegalArgumentException("no such field");
- } else if (var2 == null || var2 == var5.getType() || !var2.isPrimitive() && !var5.getType().isPrimitive()) {
- return null;
- } else {
- throw new IllegalArgumentException("field type incorrect");
- }
- }
- }
- }
-
- void read(ObjectInputStream var1) throws IOException, ClassNotFoundException {
- if (this.data != null) {
- var1.readFully(this.data, 0, this.data.length);
- }
-
- if (this.objects != null) {
- for(int var2 = 0; var2 < this.objects.length; ++var2) {
- this.objects[var2] = ObjectInputStream.access$000(var1, false);
- }
- }
-
- }
-
- ObjectInputStream$GetFieldImpl(ObjectStreamClass var1) {
- this.desc = var1;
- if (this.desc.numPrimBytes > 0) {
- this.data = new byte[this.desc.numPrimBytes];
- }
-
- if (this.desc.numObjFields > 0) {
- this.objects = new Object[this.desc.numObjFields];
- }
-
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-