protected ServiceHandlerDefinitionContext copy(boolean clean) { ServiceHandlerDefinitionContext copy = new ServiceHandlerDefinitionContext(); copy.root = root; if (!clean) { for (String qn : services.keySet()) { TypeDefinition d = services.get(qn); if (d.exists()) { copy.services.put(qn, d); } } copy.serviceAnnotations.addAll(serviceAnnotations); } return copy; }