private String addStaticComparatorField(TypeDesc type) { if (mComparatorFields == null) { mComparatorFields = new IdentityHashMap<TypeDesc, String>(); } String fieldName = mComparatorFields.get(type); if (fieldName != null) { return fieldName; } fieldName = COMPARATOR_FIELD_PREFIX + mComparatorFields.size(); TypeDesc comparatorType = TypeDesc.forClass(Comparator.class); mClassFile.addField(Modifiers.PRIVATE.toStatic(true).toFinal(true), fieldName, comparatorType); if (mStaticInitBuilder == null) { mStaticInitBuilder = new CodeBuilder(mClassFile.addInitializer()); } mStaticInitBuilder.loadConstant(type); mStaticInitBuilder.loadConstant(true); mStaticInitBuilder.invokeStatic (TypeDesc.forClass(Comparators.class), "arrayComparator", comparatorType, new TypeDesc[] {TypeDesc.forClass(Class.class), BOOLEAN}); mStaticInitBuilder.storeStaticField(fieldName, comparatorType); mComparatorFields.put(type, fieldName); return fieldName; }
private String addStaticComparatorField(TypeDesc type) { if (mComparatorFields == null) { mComparatorFields = new IdentityHashMap<TypeDesc, String>(); } String fieldName = mComparatorFields.get(type); if (fieldName != null) { return fieldName; } fieldName = COMPARATOR_FIELD_PREFIX + mComparatorFields.size(); TypeDesc comparatorType = TypeDesc.forClass(Comparator.class); mClassFile.addField(Modifiers.PRIVATE.toStatic(true).toFinal(true), fieldName, comparatorType); if (mStaticInitBuilder == null) { mStaticInitBuilder = new CodeBuilder(mClassFile.addInitializer()); } mStaticInitBuilder.loadConstant(type); mStaticInitBuilder.loadConstant(true); mStaticInitBuilder.invokeStatic (TypeDesc.forClass(Comparators.class), "arrayComparator", comparatorType, new TypeDesc[] {TypeDesc.forClass(Class.class), BOOLEAN}); mStaticInitBuilder.storeStaticField(fieldName, comparatorType); mComparatorFields.put(type, fieldName); return fieldName; }
private String addFilterField(PropertyFilter filter, TypeDesc type) { final int propertyOrdinal = mPropertyOrdinalMap.get(filter); final String fieldName = FIELD_PREFIX + propertyOrdinal; if (mGeneratedPropertyFilters.containsKey(filter)) { return fieldName; } final TypeDesc fieldType = actualFieldType(type); mClassFile.addField(Modifiers.PRIVATE.toFinal(true), fieldName, fieldType); // Add code to constructor to store value into field. { CodeBuilder b = mCtorBuilder; b.loadThis(); b.loadLocal(b.getParameter(1)); b.loadConstant(propertyOrdinal); b.loadFromArray(OBJECT); if (type != OBJECT) { b.checkCast(type.toObjectType()); convertProperty(b, type.toObjectType(), fieldType); } b.storeField(fieldName, fieldType); } mGeneratedPropertyFilters.put(filter, filter); return fieldName; }
final TypeDesc filterType = TypeDesc.forClass(Filter.class); mClassFile.addField(Modifiers.PRIVATE.toStatic(true), fieldName, filterType);
final TypeDesc filterType = TypeDesc.forClass(Filter.class); mClassFile.addField(Modifiers.PRIVATE.toStatic(true), fieldName, filterType);
private String addFilterField(PropertyFilter filter, TypeDesc type) { final int propertyOrdinal = mPropertyOrdinalMap.get(filter); final String fieldName = FIELD_PREFIX + propertyOrdinal; if (mGeneratedPropertyFilters.containsKey(filter)) { return fieldName; } final TypeDesc fieldType = actualFieldType(type); mClassFile.addField(Modifiers.PRIVATE.toFinal(true), fieldName, fieldType); // Add code to constructor to store value into field. { CodeBuilder b = mCtorBuilder; b.loadThis(); b.loadLocal(b.getParameter(1)); b.loadConstant(propertyOrdinal); b.loadFromArray(OBJECT); if (type != OBJECT) { b.checkCast(type.toObjectType()); convertProperty(b, type.toObjectType(), fieldType); } b.storeField(fieldName, fieldType); } mGeneratedPropertyFilters.put(filter, filter); return fieldName; }
cf.addField(Modifiers.PRIVATE.toFinal(true), REF_FIELD_NAME, atomicRefType);
cf.addField(Modifiers.PRIVATE.toFinal(true), REF_FIELD_NAME, atomicRefType);
String name = "field$" + i; names[i] = name; cf.addField(Modifiers.PRIVATE.toStatic(true).toFinal(true), name, types[i]);
cf.addField(Modifiers.PRIVATE.toStatic(true), mHandlerFieldName, TypeDesc.forClass(TraceHandler.class));
} else { cf.addField(Modifiers.PRIVATE.toStatic(true).toFinal(true), BLANK_KEY_FIELD_NAME, byteArrayType); b.loadStaticField(BLANK_KEY_FIELD_NAME, byteArrayType);
} else { cf.addField(Modifiers.PRIVATE.toStatic(true).toFinal(true), BLANK_KEY_FIELD_NAME, byteArrayType); b.loadStaticField(BLANK_KEY_FIELD_NAME, byteArrayType);
final TypeDesc enclosingType = mClassFile.getType(); cf.addField(Modifiers.PRIVATE, enclosingFieldName, enclosingType);
cf.addField(Modifiers.PRIVATE.toFinal(true), INNER_LOOP_EX_FIELD_NAME, queryExecutorType); cf.addField(Modifiers.PRIVATE.toFinal(true), INNER_LOOP_FV_FIELD_NAME, filterValuesType); cf.addField(Modifiers.PRIVATE.toFinal(true), INNER_LOOP_CONTROLLER_FIELD_NAME, controllerType); cf.addField(Modifiers.PRIVATE, ACTIVE_SOURCE_FIELD_NAME, TypeDesc.forClass(sourceType));
cf.addField(Modifiers.PRIVATE.toFinal(true), INNER_LOOP_EX_FIELD_NAME, queryExecutorType); cf.addField(Modifiers.PRIVATE.toFinal(true), INNER_LOOP_FV_FIELD_NAME, filterValuesType); cf.addField(Modifiers.PRIVATE.toFinal(true), INNER_LOOP_CONTROLLER_FIELD_NAME, controllerType); cf.addField(Modifiers.PRIVATE, ACTIVE_SOURCE_FIELD_NAME, TypeDesc.forClass(sourceType));
final TypeDesc enclosingType = mClassFile.getType(); cf.addField(Modifiers.PRIVATE, enclosingFieldName, enclosingType);
cf.addField(Modifiers.PRIVATE.toFinal(true), CUSTOM_STORABLE_CODEC_FIELD_NAME, customStorableCodecType);
cf.addField(Modifiers.PRIVATE.toFinal(true), CUSTOM_STORABLE_CODEC_FIELD_NAME, customStorableCodecType);
Constructor<? extends W> generate() { TypeDesc delegateType = TypeDesc.forClass(mDelegateInfo.getStorableType()); mClassFile.addField(Modifiers.PRIVATE.toFinal(true), "delegate", delegateType);
Constructor<? extends W> generate() { TypeDesc delegateType = TypeDesc.forClass(mDelegateInfo.getStorableType()); mClassFile.addField(Modifiers.PRIVATE.toFinal(true), "delegate", delegateType);