com.maxifier.mxcache.transform.TransformGenerator Maven / Gradle / Ivy
/*
* Copyright (c) 2008-2014 Maxifier Ltd. All Rights Reserved.
*/
package com.maxifier.mxcache.transform;
import com.maxifier.mxcache.asm.Type;
import com.maxifier.mxcache.asm.commons.GeneratorAdapter;
import com.maxifier.mxcache.provider.Signature;
import com.maxifier.mxcache.util.ClassGenerator;
/**
* @author Alexander Kochurov ([email protected])
*/
public interface TransformGenerator {
TransformGenerator NO_TRANSFORM = EmptyTransformGenerator.getInstance();
TransformGenerator IGNORE_TRANSFORM = IgnoreTransformGenerator.getInstance();
void generateForward(Type thisType, int fieldIndex, GeneratorAdapter method);
void generateBackward(Type thisType, int fieldIndex, GeneratorAdapter method);
void generateFields(Type thisType, int fieldIndex, ClassGenerator writer);
void generateAcquire(Type thisType, int fieldIndex, GeneratorAdapter ctor, int contextLocal);
int getFieldCount();
Signature transformKey(Signature in);
Signature transformValue(Signature in);
Class getTransformedType(Class in);
}