package com.cfsoft.ofbiz.dom.screen.model;
import com.cfsoft.ofbiz.dom.screen.api.Screen;
import com.cfsoft.ofbiz.dom.screen.api.Screens;
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 ScreensModelImpl extends DomModelImpl<Screens> implements ScreensModel {
public ScreensModelImpl(DomFileElement<Screens> mergedModel, @NotNull Set<XmlFile> configFiles) {
super(mergedModel, configFiles);
}
@NotNull
@Override
public List<Screen> getAllScreens() {
return ContainerUtil.concat(getMergedScreenss(), new Function<Screens, Collection<? extends Screen>>() {
@Override
public Collection<? extends Screen> fun(Screens services) {
return services.getScreens();
}
});
}
@NotNull
protected List<Screens> getMergedScreenss() {
return ContainerUtil.map(getRoots(), new Function<DomFileElement<Screens>, Screens>() {
@Override
public Screens fun(DomFileElement<Screens> serviceDomFileElement) {
return serviceDomFileElement.getRootElement();
}
});
}
}