This call and the one above it are causing classes to pick up the names of properties that reference them.  Situations like these would probably be easier to handle if rule took a single immutable context object.  Then the method would look like:

```
public JDefinedClass apply( RuleContext context ) {
  ...
  context = resolveRefs(context);
  ...
}
```

These types of recursive mapping methods could alter the entire context, if needed, since the arguments are wrapped up into a single object that can be easily returned from a method.