code: @Override
  	public <V> V as(Class<? extends V> valueClass) {
  		try {
  			return TypeAdapter.adapt(this, valueClass);
  		} catch (CannotAdaptClassesException e) {
  			throw new UnsupportedOperationException("Class '"+getClass().getCanonicalName()+" cannot be transformed to '"+valueClass.getCanonicalName()+"'",e);
  		}
  	}
docs: {@inheritDoc} <br>
  This method may be overridden, though it typically isn't necessary or
  desirable. An term type should override this method when a more specific
  value types are supported.