code: static RawResolvedFeatures getResolvedFeatures(JvmDeclaredType type, CommonTypeComputationServices services) {
  		final List<Adapter> adapterList = type.eAdapters();
  		RawResolvedFeatures adapter = (RawResolvedFeatures) EcoreUtil.getAdapter(adapterList, RawResolvedFeatures.class);
  		if (adapter != null) {
  			return adapter;
  		}
  		final RawResolvedFeatures newAdapter = new RawResolvedFeatures(type, services);
  		requestNotificationOnChange(type, new Runnable() {
  			@Override
  			public void run() {
  				newAdapter.clear();
  				adapterList.remove(newAdapter);
  			}
  		});
  		adapterList.add(newAdapter);
  		return newAdapter;
  	}
docs: Returns an existing instance of {@link RawResolvedFeatures} or creates a new one that
  will be cached on the type. It will not add itself as {@link EContentAdapter} but use
  the {@link JvmTypeChangeDispatcher} instead.