/****************************************************************************** * Copyright (c) 2007-2008 g-Eclipse consortium * All rights reserved. This program and the accompanying materials * are 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 * * Initial development of the original code was made for * project g-Eclipse founded by European Union * project number: FP6-IST-034327 http://www.geclipse.eu/ * * Contributor(s): * PSNC - Mariusz Wojtysiak * Nikolaos Tsioutsias - University of Cyprus * David Johnson - University of Reading, UK *****************************************************************************/ package eu.geclipse.ui.properties; import java.net.URI; import java.util.ArrayList; import java.util.List; import eu.geclipse.core.model.IGridConnection; import eu.geclipse.core.model.IGridConnectionElement; import eu.geclipse.core.model.IGridJob; import eu.geclipse.core.model.IGridJobDescription; import eu.geclipse.core.model.IGridJobService; import eu.geclipse.core.model.IGridProject; import eu.geclipse.core.model.IGridService; import eu.geclipse.core.model.IGridStorage; import eu.geclipse.core.model.IPropertiesProvider; import eu.geclipse.core.model.IVirtualOrganization; import eu.geclipse.core.model.impl.AbstractGridInfoService; import eu.geclipse.info.model.GridApplication; import eu.geclipse.info.model.GridGlueComputing; import eu.geclipse.info.model.GridGlueService; import eu.geclipse.info.model.GridGlueServiceApplication; import eu.geclipse.info.model.GridGlueStorage; import eu.geclipse.workflow.IGridWorkflowDescription; public class PropertiesFactory implements IPropertiesFactory { /* (non-Javadoc) * @see eu.geclipse.ui.properties.IPropertiesFactory#getPropertySources(java.lang.Object) */ public List< AbstractPropertySource< ? > > getPropertySources( final Object sourceObject ) { List< AbstractPropertySource< ? > > sourcesList = new ArrayList< AbstractPropertySource< ? > >(); if ( sourceObject instanceof IVirtualOrganization ) { sourcesList.add( new VOPropertySource( ( IVirtualOrganization ) sourceObject ) ); } else if ( sourceObject instanceof URI ) { sourcesList.add( new URIPropertySource( ( URI ) sourceObject ) ); } else if ( ( sourceObject instanceof IGridJobDescription ) && !( sourceObject instanceof IGridWorkflowDescription ) ) { sourcesList.add( new GridJobDescSource( ( IGridJobDescription ) sourceObject ) ); } else if (sourceObject instanceof IGridWorkflowDescription) { sourcesList.add( new GridWorkflowDescSource ( (IGridWorkflowDescription) sourceObject ) ); } else if ( sourceObject instanceof IGridProject ) { sourcesList.add( new GridProjectSource( ( IGridProject ) sourceObject ) ); } else if ( sourceObject instanceof IGridConnection ) { sourcesList.add( new ConnectionPropertySource( ( IGridConnection ) sourceObject ) ); } else if ( sourceObject instanceof IGridJob ) { sourcesList.add( new GridJobSource( ( IGridJob ) sourceObject ) ); } else if ( sourceObject instanceof IGridConnectionElement ) { sourcesList.add( new GridConnectionElementSource( ( IGridConnectionElement ) sourceObject ) ); } else if ( sourceObject instanceof IPropertiesProvider ) { sourcesList.add( new PropertiesProviderSource( ( IPropertiesProvider ) sourceObject ) ); } else if ( sourceObject instanceof GridGlueComputing ) { sourcesList.add( new GridGlueComputingSource( ( GridGlueComputing ) sourceObject ) ); } else if ( sourceObject instanceof GridGlueStorage ) { sourcesList.add( new GridGlueStorageSource( ( GridGlueStorage ) sourceObject ) ); } else if ( sourceObject instanceof GridGlueService ) { sourcesList.add( new GridGlueServiceSource( ( GridGlueService ) sourceObject ) ); } else if ( sourceObject instanceof GridApplication ) { sourcesList.add( new GridApplicationSource( ( GridApplication ) sourceObject ) ); } else if ( sourceObject instanceof AbstractGridInfoService) { sourcesList.add( new AbstractGridInfoServiceSource( ( AbstractGridInfoService ) sourceObject ) ); } else if (sourceObject instanceof IGridJobService) { sourcesList.add( new IGridJobServiceSource( ( IGridJobService ) sourceObject ) ); } else if (sourceObject instanceof GridGlueServiceApplication) { sourcesList.add( new GridGlueServiceApplicationSource( ( GridGlueServiceApplication )sourceObject ) ); } else if (sourceObject instanceof IGridStorage && !(sourceObject instanceof GridGlueStorage)) { sourcesList.add( new IGridStorageSource( ( IGridStorage )sourceObject ) ); } else if ( sourceObject instanceof IGridService ) { sourcesList.add( new IGridServiceSource( ( IGridService )sourceObject ) ); } return sourcesList; } }