Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Copyright (c) 2008, Nathan Sweet
   * All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
   * conditions are met:
   * 
   * - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
   * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
   * disclaimer in the documentation and/or other materials provided with the distribution.
  * - Neither the name of Esoteric Software nor the names of its contributors may be used to endorse or promote products derived
  * from this software without specific prior written permission.
  * 
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
  * SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
 
 package com.esotericsoftware.kryo.serializers;
 
Implementations of ASM-based serializers for fields.

Author(s):
Nathan Sweet <misc@n4te.com>
 
 class AsmCacheFields {
 
 	abstract static class AsmCachedField extends CachedField {
 	}
 
 	final static class AsmIntField extends AsmCachedField {
 		public void write (Output outputObject object) {
 				output.writeInt(.getInt(object), false);
 			else
 				output.writeInt(.getInt(object));
 		}
 
 		public void read (Input inputObject object) {
 				.setInt(objectinput.readInt(false));
 			else
 				.setInt(objectinput.readInt());
 		}
 
 		public void copy (Object originalObject copy) {
 		}
 	}
 
 	final static class AsmFloatField extends AsmCachedField {
 		public void write (Output outputObject object) {
 			output.writeFloat(.getFloat(object));
 		}
 
 		public void read (Input inputObject object) {
 			.setFloat(objectinput.readFloat());
 		}
 
 		public void copy (Object originalObject copy) {
 		}
 	}
 
 	final static class AsmShortField extends AsmCachedField {
 		public void write (Output outputObject object) {
 			output.writeShort(.getShort(object));
 		}
 
 		public void read (Input inputObject object) {
 			.setShort(objectinput.readShort());
 		}
 
 		public void copy (Object originalObject copy) {
 		}
 	}
 
 	final static class AsmByteField extends AsmCachedField {
 		public void write (Output outputObject object) {
 			output.writeByte(.getByte(object));
 		}
 
 		public void read (Input inputObject object) {
 			.setByte(objectinput.readByte());
 		}
 
 		public void copy (Object originalObject copy) {
 		}
 	}
 
 	final static class AsmBooleanField extends AsmCachedField {
		public void write (Output outputObject object) {
		}
		public void read (Input inputObject object) {
		}
		public void copy (Object originalObject copy) {
		}
	}
	final static class AsmCharField extends AsmCachedField {
		public void write (Output outputObject object) {
		}
		public void read (Input inputObject object) {
			.setChar(objectinput.readChar());
		}
		public void copy (Object originalObject copy) {
		}
	}
	final static class AsmLongField extends AsmCachedField {
		public void write (Output outputObject object) {
				output.writeLong(.getLong(object), false);
			else
		}
		public void read (Input inputObject object) {
				.setLong(objectinput.readLong(false));
			else
				.setLong(objectinput.readLong());
		}
		public void copy (Object originalObject copy) {
		}
	}
	final static class AsmDoubleField extends AsmCachedField {
		public void write (Output outputObject object) {
		}
		public void read (Input inputObject object) {
		}
		public void copy (Object originalObject copy) {
		}
	}
	final static class AsmStringField extends AsmCachedField {
		public void write (Output outputObject object) {
		}
		public void read (Input inputObject object) {
			.set(objectinput.readString());
		}
		public void copy (Object originalObject copy) {
		}
	}
	final static class AsmObjectField extends ObjectField {
		public AsmObjectField (FieldSerializer fieldSerializer) {
			super(fieldSerializer);
		}
			if ( != -1) return ((FieldAccess)).get(object);
			throw new KryoException("Unknown acess index");
		}
		public void setField (Object objectObject valuethrows IllegalArgumentExceptionIllegalAccessException {
			if ( != -1)
				((FieldAccess)).set(objectvalue);
			else
				throw new KryoException("Unknown acess index");
		}
		public void copy (Object originalObject copy) {
			try {
				if ( != -1) {
else
					throw new KryoException("Unknown acess index");
catch (KryoException ex) {
				ex.addTrace(this + " (" + .getName() + ")");
				throw ex;
catch (RuntimeException runtimeEx) {
				KryoException ex = new KryoException(runtimeEx);
				ex.addTrace(this + " (" + .getName() + ")");
				throw ex;
			}
		}
	}
New to GrepCode? Check out our FAQ X