@Override
 protected Set<QVTcAreaEnvironment<?>> computeAreaEnvironmentPartialClosure() {
   Set<QVTcAreaEnvironment<?>> areaEnvironmentClosure = new HashSet<QVTcAreaEnvironment<?>>();
   for (QVTcMappingEnvironment<?> mappingEnvironment :
       getParentEnvironment().getMappingEnvironmentClosure()) {
     QVTcDomainEnvironment domainEnvironment = mappingEnvironment.getDomainEnvironment(modelName);
     if (domainEnvironment != null) areaEnvironmentClosure.add(domainEnvironment);
   }
   areaEnvironmentClosure.add(
       this); // Reduce error messages in case a duplicate domain hides this one
   return areaEnvironmentClosure;
 }
 @Override
 public QVTcDomainEnvironment getContextEnvironment() {
   QVTcMappingEnvironment<?> contextEnvironment = getParentEnvironment().getContextEnvironment();
   return contextEnvironment != null ? contextEnvironment.getDomainEnvironment(modelName) : null;
 }