code: @SuppressWarnings("rawtypes")
      private static void inject(final Class c, final IPluginInterface plugin, final IJNRPEExecutionContext context) throws IllegalAccessException {
  
          final Field[] fields = c.getDeclaredFields();
  
          for (final Field f : fields) {
              final Annotation an = f.getAnnotation(Inject.class);
              if (an != null) {
                  final boolean isAccessible = f.isAccessible();
  
                  if (!isAccessible) {
                      // Change accessible flag if necessary
                      f.setAccessible(true);
                  }
  
                  f.set(plugin, context);
  
                  if (!isAccessible) {
                      // Restore accessible flag if necessary
                      f.setAccessible(false);
                  }
              }
          }
      }
docs: Perform the real injection.
  
  @param c the object class
  @param plugin teh plugin instance
  @param context the context to be injected
  
  @throws IllegalAccessException on any error accessing the field