code: @Override
  	public final <V> T fromValue(V value) {
  		checkStatus(Status.INITIALIZED);
  		try {
  			@SuppressWarnings("unchecked")
  			TypeAdapter<T,V> adapter = (TypeAdapter<T, V>) TypeAdapter.createAdapter(this.termClass,value.getClass());
  			for(T candidate:this.terms.values()) {
  				if(value.equals(adapter.adapt(candidate))) {
  					return candidate;
  				}
  			}
  			return null;
  		} catch (CannotAdaptClassesException e) {
  			throw new UnsupportedOperationException("Class '"+this.termClass.getCanonicalName()+" cannot be transformed to '"+value.getClass().getCanonicalName()+"'",e);
  		}
  	}
docs: {@inheritDoc}