package com.cfsoft.ofbiz.dom.service.model; import com.cfsoft.ofbiz.dom.service.api.Service; import com.cfsoft.ofbiz.dom.service.api.Services; import com.intellij.psi.xml.XmlFile; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xml.DomFileElement; import com.intellij.util.xml.model.impl.DomModelImpl; import org.jetbrains.annotations.NotNull; import java.util.Collection; import java.util.List; import java.util.Set; public class ServiceModelImpl extends DomModelImpl<Services> implements ServiceModel { public ServiceModelImpl(DomFileElement<Services> mergedModel, @NotNull Set<XmlFile> configFiles) { super(mergedModel, configFiles); } @NotNull @Override public List<Service> getAllServices() { return ContainerUtil.concat(getMergedServices(), new Function<Services, Collection<? extends Service>>() { @Override public Collection<? extends Service> fun(Services services) { return services.getServices(); } }); } @NotNull protected List<Services> getMergedServices() { return ContainerUtil.map(getRoots(), new Function<DomFileElement<Services>, Services>() { @Override public Services fun(DomFileElement<Services> serviceDomFileElement) { return serviceDomFileElement.getRootElement(); } }); } }