instead of a method_exists, I would use an interface extending AdapterInterface with the method and checking on the interface (exactly like for the ChecksumCalculator interface).