/******************************************************************************* * Copyright (c) 2006-2011 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ package org.ebayopensource.turmeric.eclipse.ui.extensions; import java.util.ArrayList; import java.util.Collection; import org.eclipse.core.runtime.IConfigurationElement; /** * The provider object from the extension point. * * @author dcarver * */ public class TurmericProvider implements ITurmericProvider { private Collection<ITurmericWizard> wizards = new ArrayList<ITurmericWizard>(); private IConfigurationElement providerElement; /** * Instantiates a new turmeric provider. * * @param configElement provider configuration element */ public TurmericProvider(IConfigurationElement configElement) { this.providerElement = configElement; IConfigurationElement[] children = providerElement.getChildren("wizard"); for(IConfigurationElement wizElm : children) { ITurmericWizard wizard = new TurmericWizard(wizElm); wizards.add(wizard); } } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#providerName() */ @Override public String providerName() { return providerElement.getAttribute("name"); } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#hasWizards() */ @Override public boolean hasWizards() { return !wizards.isEmpty(); } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#hasServiceWizard() */ @Override public boolean hasServiceWizard() { return findWizardType("Service"); } private boolean findWizardType(String type) { for(ITurmericWizard wizard : wizards) { if (wizard.isType(type)) { return true; } } return false; } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#hasTypeLibWizard() */ @Override public boolean hasTypeLibWizard() { return findWizardType("Type Library"); } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#hasErrorLibWizard() */ @Override public boolean hasErrorLibWizard() { return findWizardType("Error Library"); } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#hasConsumerWSDLWizard() */ @Override public boolean hasConsumerWSDLWizard() { return findWizardType("Consumer WSDL"); } /* (non-Javadoc) * @see org.ebayopensource.turmeric.eclipse.ui.extensions.ITurmericProvider#findWizard(java.lang.String) */ @Override public ITurmericWizard findWizard(String type) { for(ITurmericWizard wizard : wizards) { if (wizard.isType(type)) { return wizard; } } return new NullTurmericWizard(); } }