code: private boolean isOneOfOurSupertypes(String type) {
  		String stypeName = typeDescriptor.getSupertypeName();
  		while (stypeName != null) {
  			// TODO [bug] should stop at the first one that has a field in it? and check the field is protected, yada yada yada
  			if (stypeName.equals(type)) {
  				return true;
  			}
  			stypeName = typeDescriptor.getTypeRegistry().getDescriptorFor(stypeName).getSupertypeName();
  		}
  		return false;
  	}
docs: Determine if the supplied type is a supertype of the current type we are modifying. This is used to determine if
  the owner we have discovered for a field is one of our supertypes (and so, if it is protected, whether it is
  something that needs redirecting through an accessor).
  
  @param type the type which may be one of this types supertypes
  @return true if it is a supertype