private static InspectionData getInjectedField(String encodedField) throws Throwable {
    InspectionData data = new InspectionData();

    Class lookupClass = null;
    if (encodedField.contains("|")) {
      StringTokenizer tokenizer = new StringTokenizer(encodedField, "|");
      if (tokenizer.countTokens() != 2) {
        throw new InspectionException("invalid encoded field: " + encodedField);
      }
      lookupClass = Class.forName(tokenizer.nextToken());
      encodedField = tokenizer.nextToken();
    }

    StringTokenizer t = new StringTokenizer(encodedField, ",");
    if (t.countTokens() != 2) {
      throw new InspectionException("invalid encoded field: " + encodedField);
    }
    Class clazz = Class.forName(t.nextToken());
    Field field = clazz.getDeclaredField(t.nextToken());
    field.setAccessible(true);

    data.encodedField = encodedField;
    data.lookupClass = lookupClass;
    data.actualClass = clazz;
    data.field = field;
    return data;
  }