package ecologylab.appframework.types;
import java.util.Collection;
import java.util.HashMap;
import ecologylab.serialization.ElementState;
import ecologylab.serialization.annotations.simpl_inherit;
import ecologylab.serialization.annotations.simpl_map;
import ecologylab.serialization.annotations.simpl_nowrap;
/**
* Handles the loading and parsing of the asset version XML file
*
* @author robinson
* @author andruid
*/
@simpl_inherit public class AssetsState extends ElementState
{
@simpl_map("asset")
@simpl_nowrap
HashMap<String, AssetState> assetsMap = new HashMap<String, AssetState>();
public Collection<AssetState> getAssetStates()
{
return assetsMap.values();
}
/**
* @param asset
*/
private void register(AssetState asset)
{
assetsMap.put(asset.getName(), asset);
}
public AssetState lookup(String name)
{
return assetsMap.get(name);
}
public AssetState lookupAndUpdate(String name)
{
AssetState asset = lookup(name);
if (asset == null)
{
asset = update(name);
}
return asset;
}
/**
* @return
*/
public AssetState update(String name)
{
AssetState asset = new AssetState(name);
register(asset);
return asset;
}
}