blob: 58055d99f4da308d4846f2d8b8691989ec4f8d44 [file] [log] [blame]
package org.jetbrains.protocolReader;
import java.util.concurrent.atomic.AtomicReferenceArray;
class VolatileFieldBinding {
private static final String FIELD_NAME_PREFIX = "lazy_";
private final int position;
private final FieldTypeInfo fieldTypeInfo;
public VolatileFieldBinding(int position, FieldTypeInfo fieldTypeInfo) {
this.position = position;
this.fieldTypeInfo = fieldTypeInfo;
}
public Object get(AtomicReferenceArray<Object> atomicReferenceArray) {
return atomicReferenceArray.get(position);
}
void writeGetExpression(TextOutput out) {
out.append(FIELD_NAME_PREFIX).append(position);
}
void writeFieldDeclaration(ClassScope scope, TextOutput out) {
out.append("private ");
fieldTypeInfo.appendValueTypeNameJava(scope, out);
out.space();
writeGetExpression(out);
out.semi();
}
}