public void transform(ClassTransformation transformation, MutableComponentModel model) {
    List<String> names = transformation.findFieldsWithAnnotation(SessionAttribute.class);

    for (String fieldName : names) {
      SessionAttribute annotation =
          transformation.getFieldAnnotation(fieldName, SessionAttribute.class);

      String sessionKey = annotation.value();

      if ("".equals(sessionKey)) {
        sessionKey = fieldName;
      }

      String fieldType = transformation.getFieldType(fieldName);

      Request request = objectLocator.getService(Request.class);

      String requestField = transformation.addInjectedField(Request.class, "_request", request);

      replaceReadAccess(transformation, fieldName, fieldType, sessionKey, requestField);
      replaceWriteAccess(transformation, fieldName, fieldType, sessionKey, requestField);
    }
  }