if (!doneField.contains(fptr) || !doneReceiver.contains(rptr)) { InstanceKey field = system.getInstanceKey(fptr); for (PointerKey pkey : Iterator2Iterable.make(isLoadOperation ? getPointerKeysForReflectedFieldRead(receiver, field) : getPointerKeysForReflectedFieldWrite(receiver, field))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey;
for (InstanceKey fieldsKey : fieldsKeys) { if (isLoadOperation) { for (PointerKey pkey : Iterator2Iterable.make(getPointerKeysForReflectedFieldRead(object, fieldsKey))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES)
if (!doneField.contains(fptr) || !doneReceiver.contains(rptr)) { InstanceKey field = system.getInstanceKey(fptr); for (PointerKey pkey : Iterator2Iterable.make(isLoadOperation ? getPointerKeysForReflectedFieldRead(receiver, field) : getPointerKeysForReflectedFieldWrite(receiver, field))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey;
for (InstanceKey fieldsKey : fieldsKeys) { if (isLoadOperation) { for (PointerKey pkey : Iterator2Iterable.make(getPointerKeysForReflectedFieldRead(object, fieldsKey))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES)
protected void newFieldOperationObjectAndFieldConstant(final boolean isLoadOperation, final ReflectedFieldAction action, final InstanceKey[] objKeys, InstanceKey[] fieldsKeys) { for (InstanceKey objKey : objKeys) { PointerKey objCatalog = getPointerKeyForObjectCatalog(objKey); for (InstanceKey fieldsKey : fieldsKeys) { if (isLoadOperation) { for (PointerKey pkey : Iterator2Iterable.make(getPointerKeysForReflectedFieldRead(objKey, fieldsKey))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES) action.dump(key, true, true); action.action(key); } } else { if (objCatalog != null) { system.newConstraint(objCatalog, fieldsKey); } for (PointerKey pkey : Iterator2Iterable.make(getPointerKeysForReflectedFieldWrite(objKey, fieldsKey))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES) action.dump(key, true, true); action.action(key); } } } } }
protected void newFieldOperationObjectAndFieldConstant(final boolean isLoadOperation, final ReflectedFieldAction action, final InstanceKey[] objKeys, InstanceKey[] fieldsKeys) { for (InstanceKey objKey : objKeys) { PointerKey objCatalog = getPointerKeyForObjectCatalog(objKey); for (InstanceKey fieldsKey : fieldsKeys) { if (isLoadOperation) { for (PointerKey pkey : Iterator2Iterable.make(getPointerKeysForReflectedFieldRead(objKey, fieldsKey))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES) action.dump(key, true, true); action.action(key); } } else { if (objCatalog != null) { system.newConstraint(objCatalog, fieldsKey); } for (PointerKey pkey : Iterator2Iterable.make(getPointerKeysForReflectedFieldWrite(objKey, fieldsKey))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES) action.dump(key, true, true); action.action(key); } } } } }
@Override public byte evaluate(PointsToSetVariable lhs, PointsToSetVariable rhs) { final IntSetVariable<?> fields = rhs; if (fields.getValue() != null) { fields.getValue().foreach(fptr -> { InstanceKey field = system.getInstanceKey(fptr); for (InstanceKey objKey : objKeys) { for (PointerKey pkey : Iterator2Iterable.make(isLoadOperation ? getPointerKeysForReflectedFieldRead(objKey, field) : getPointerKeysForReflectedFieldWrite(objKey, field))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES) action.dump(key, false, true); action.action(key); } } }); } return NOT_CHANGED; }
@Override public byte evaluate(PointsToSetVariable lhs, PointsToSetVariable rhs) { final IntSetVariable<?> fields = rhs; if (fields.getValue() != null) { fields.getValue().foreach(fptr -> { InstanceKey field = system.getInstanceKey(fptr); for (InstanceKey objKey : objKeys) { for (PointerKey pkey : Iterator2Iterable.make(isLoadOperation ? getPointerKeysForReflectedFieldRead(objKey, field) : getPointerKeysForReflectedFieldWrite(objKey, field))) { AbstractFieldPointerKey key = (AbstractFieldPointerKey) pkey; if (DEBUG_PROPERTIES) action.dump(key, false, true); action.action(key); } } }); } return NOT_CHANGED; }