/******************************************************************************* * Copyright (c) 2010 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.validation.internal; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.eclipse.core.resources.IProject; import org.jboss.tools.common.validation.IProjectValidationContext; import org.jboss.tools.common.validation.IValidatingProjectSet; import org.jboss.tools.common.validation.IValidatingProjectTree; /** * Represents a validating project tree with the only brunch. * @author Alexey Kazakov */ public class SimpleValidatingProjectTree implements IValidatingProjectTree, IValidatingProjectSet { private Map<IProject, IValidatingProjectSet> brunches = new HashMap<IProject, IValidatingProjectSet>(); private IValidatingProjectSet brunch; private Set<IProject> validatingProjects = new HashSet<IProject>(); public SimpleValidatingProjectTree(IProject project) { addProject(project); } public SimpleValidatingProjectTree(IValidatingProjectSet brunch) { this.brunch = brunch; brunches.put(brunch.getRootProject(), brunch); validatingProjects.add(brunch.getRootProject()); } /* (non-Javadoc) * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#getBrunches() */ public Map<IProject, IValidatingProjectSet> getBrunches() { return brunches; } /* * (non-Javadoc) * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getRootProject() */ public IProject getRootProject() { return brunch.getRootProject(); } /* * (non-Javadoc) * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getAllProjests() */ public Set<IProject> getAllProjects() { return brunch.getAllProjects(); } /* * (non-Javadoc) * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getRootContext() */ public IProjectValidationContext getRootContext() { return brunch.getRootContext(); } /* * (non-Javadoc) * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#addProject(org.eclipse.core.resources.IProject) */ public void addProject(IProject project) { if(project!=null && !validatingProjects.contains(project)) { Set<IProject> allProjects = new HashSet<IProject>(); allProjects.add(project); brunch = new ValidatingProjectSet(project, allProjects, new ProjectValidationContext()); brunches.put(brunch.getRootProject(), brunch); validatingProjects.add(project); } } @Override public boolean isFullValidationRequired() { // TODO return false; } @Override public void setFullValidationRequired(boolean b) { // TODO } }