mBuilder.math(Opcode.IADD); mBuilder.loadFromArray(TypeDesc.CHAR);
private void generateAddMatchResult(PatternNode node) { mBuilder.mapLineNumber(++mReferenceLine); mBuilder.loadLocal(mLimitLocal); mBuilder.loadLocal(mResultsLocal); mBuilder.loadConstant(node.mPattern); mBuilder.loadThis(); mBuilder.loadField("mValues", TypeDesc.OBJECT.toArrayType()); mBuilder.loadConstant(node.mOrder); mBuilder.loadFromArray(TypeDesc.OBJECT); mBuilder.loadLocal(mPositionsLocal); mBuilder.loadConstant(node.getWildcardCount() * 2); TypeDesc[] params = { mIntType, mListType, mStringType, mObjectType, mIntArrayType, mIntType }; mBuilder.invokeStatic(PatternMatcher.class.getName(), "addMatchResult", mBooleanType, params); mBuilder.ifZeroComparisonBranch(mReturnLabel, "=="); } }
mBuilder.math(Opcode.IADD); mBuilder.loadFromArray(TypeDesc.CHAR);
builder.loadField("mUsingComparators", comparatorArrayType); builder.loadConstant(0); builder.loadFromArray(TypeDesc.forClass(Comparator.class)); builder.loadLocal(obj1); builder.loadLocal(obj2); builder.loadField("mUsingComparators", comparatorArrayType); builder.loadConstant(i); builder.loadFromArray(TypeDesc.forClass(Comparator.class)); builder.loadLocal(p1); builder.convert(propertyType, propertyType.toObjectType()); builder.loadField("mCollators", comparatorArrayType); builder.loadConstant(i); builder.loadFromArray(TypeDesc.forClass(Comparator.class)); builder.loadLocal(p1); builder.loadLocal(p2);
mSubFilterInitBuilder.loadFromArray(filterType); mSubFilterInitBuilder.storeStaticField(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; }
mSubFilterInitBuilder.loadFromArray(filterType); mSubFilterInitBuilder.storeStaticField(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; }
mBuilder.math(Opcode.IADD); mBuilder.loadFromArray(TypeDesc.CHAR);
b.dup(); b.loadConstant(i); b.loadFromArray(TypeDesc.OBJECT); TypeDesc type = types[i]; if (type != TypeDesc.OBJECT) {
private void generateAddMatchResult(PatternNode node) { mBuilder.mapLineNumber(++mReferenceLine); mBuilder.loadLocal(mLimitLocal); mBuilder.loadLocal(mResultsLocal); mBuilder.loadConstant(node.mPattern); mBuilder.loadThis(); mBuilder.loadField("mValues", TypeDesc.OBJECT.toArrayType()); mBuilder.loadConstant(node.mOrder); mBuilder.loadFromArray(TypeDesc.OBJECT); mBuilder.loadLocal(mPositionsLocal); mBuilder.loadConstant(node.getWildcardCount() * 2); TypeDesc[] params = { mIntType, mListType, mStringType, mObjectType, mIntArrayType, mIntType }; mBuilder.invokeStatic(PatternMatcher.class.getName(), "addMatchResult", mBooleanType, params); mBuilder.ifZeroComparisonBranch(mReturnLabel, "=="); } }
b.loadFromArray(TypeDesc.OBJECT); b.ifNullBranch(noUpdateLob, true); b.loadFromArray(TypeDesc.OBJECT); b.checkCast(lobType);
b.loadFromArray(TypeDesc.OBJECT); b.ifNullBranch(noUpdateLob, true); b.loadFromArray(TypeDesc.OBJECT); b.checkCast(lobType);
b.loadLocal(b.getParameter(1)); b.loadConstant(prop); b.loadFromArray(storableArrayType); callSetPropertyValue(b, pk.get(prop));
b.loadLocal(b.getParameter(1)); b.loadConstant(prop); b.loadFromArray(storableArrayType); callSetPropertyValue(b, pk.get(prop));
mBuilder.math(Opcode.IADD); mBuilder.loadFromArray(TypeDesc.CHAR);
builder.loadField("mUsingComparators", comparatorArrayType); builder.loadConstant(0); builder.loadFromArray(TypeDesc.forClass(Comparator.class)); builder.loadLocal(obj1); builder.loadLocal(obj2); builder.loadField("mUsingComparators", comparatorArrayType); builder.loadConstant(i); builder.loadFromArray(TypeDesc.forClass(Comparator.class)); builder.loadLocal(p1); builder.convert(propertyType, propertyType.toObjectType()); builder.loadField("mCollators", comparatorArrayType); builder.loadConstant(i); builder.loadFromArray(TypeDesc.forClass(Comparator.class)); builder.loadLocal(p1); builder.loadLocal(p2);
b.loadLocal(lobArrayVar); b.loadConstant(i); b.loadFromArray(TypeDesc.OBJECT); b.ifNullBranch(doReload, false); b.loadLocal(lobArrayVar); b.loadConstant(i); b.loadFromArray(TypeDesc.OBJECT); b.ifNullBranch(reallyDoReload, false);
b.loadLocal(lobArrayVar); b.loadConstant(i); b.loadFromArray(TypeDesc.OBJECT); b.ifNullBranch(doReload, false); b.loadLocal(lobArrayVar); b.loadConstant(i); b.loadFromArray(TypeDesc.OBJECT); b.ifNullBranch(reallyDoReload, false);