code: public DomainObjectMatch<DomainObject> TO_GENERIC(String domainObjectTypeName) {
  		Boolean br_old = null;
  		try {
  			TraversalExpression te = (TraversalExpression)this.astObject;
  			InternalDomainAccess iAccess = te.getQueryExecutor().getMappingInfo().getInternalDomainAccess();
  			iAccess.loadDomainInfoIfNeeded();
  			Class<?> clazz = iAccess.getClassForName(domainObjectTypeName);
  			br_old = QueryRecorder.blockRecording.get();
  			QueryRecorder.blockRecording.set(Boolean.TRUE);
  			DomainObjectMatch<?> delegate = TO(clazz);
  			QueryRecorder.blockRecording.set(br_old);
  			DomainObjectMatch<DomainObject> ret = APIAccess.createDomainObjectMatch(DomainObject.class, delegate);
  			QueryRecorder.recordAssignment(this, "TO_GENERIC", delegate, QueryRecorder.literal(domainObjectTypeName));
  			return ret;
  		} catch (Throwable e) {
  			if (e instanceof RuntimeException)
  				throw (RuntimeException)e;
  			else
  				throw new RuntimeException(e);
  		} finally {
  			if (br_old != null)
  				QueryRecorder.blockRecording.set(br_old);
  		}
  	}
docs: End the traversal of the domain object graph matching a specific type of domain objects.
  <b>TO_GENERIC</b> is used when navigating a generic domain model.
  @param domainObjectTypeName
  @return a DomainObjectMatch