blob: 43ec950b8d1a4a87e68333b560788e9cb96670e2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 IBM Corporation and others.
* 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
*
* Contributors:
* IBM Corporation - initial API and implementation
* yyyymmdd bug Email and other contact information
* -------- -------- -----------------------------------------------------------
* 20071024 196997 pmoogk@ca.ibm.com - Peter Moogk
* 20080625 238482 pmoogk@ca.ibm.com - Peter Moogk, Adding thread safety to the service platform api.
*******************************************************************************/
package org.eclipse.wst.ws.service.internal.policy;
import java.util.List;
import org.eclipse.wst.ws.service.policy.IPolicyState;
import org.eclipse.wst.ws.service.policy.IPolicyStateEnum;
import org.eclipse.wst.ws.service.policy.IStateEnumerationItem;
import org.eclipse.wst.ws.service.policy.ServicePolicyPlatform;
public class EnumerationStateImpl implements IPolicyStateEnum
{
private final String VALUE = IPolicyState.DefaultValueKey; //$NON-NLS-1$
private String enumId;
private List<IStateEnumerationItem> enumList;
private IPolicyState state;
private String defaultId;
public EnumerationStateImpl( ServicePolicyPlatform platform, String enumId, String defaultId, IPolicyState state )
{
this.enumId = enumId;
this.enumList = platform.getStateEnumeration( enumId );
this.state = state;
this.defaultId = enumList.get(0).getId();
if( defaultId != null )
{
this.defaultId = defaultId;
state.putDefaultValue( VALUE, defaultId, false );
}
else
{
for( IStateEnumerationItem enumItem : enumList )
{
if( enumItem.isDefault() )
{
this.defaultId = enumItem.getId();
state.putDefaultValue( VALUE, this.defaultId, false );
break;
}
}
}
}
public String getEnumId()
{
return enumId;
}
public String getDefaultId()
{
return defaultId;
}
public void setCurrentItem( String itemId )
{
for( IStateEnumerationItem enumItem : enumList )
{
String enumItemId = enumItem.getId();
if( enumItemId.equals( itemId ) )
{
state.putValue( VALUE, enumItemId );
break;
}
}
}
public IStateEnumerationItem getCurrentItem()
{
String currentEnum = state.getValue( VALUE );
IStateEnumerationItem currentItem = null;
for( IStateEnumerationItem enumItem : enumList )
{
if( enumItem.getId().equals( currentEnum ) )
{
currentItem = enumItem;
break;
}
}
return currentItem;
}
}