package org.jactr.modules.pm.visual.memory.impl.map;
/*
* default logging
*/
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.commonreality.identifier.IIdentifier;
import org.commonreality.modalities.visual.IVisualPropertyHandler;
import org.commonreality.modalities.visual.geom.Dimension2D;
import org.commonreality.object.IAfferentObject;
import org.commonreality.object.UnknownPropertyNameException;
import org.jactr.core.production.request.ChunkTypeRequest;
/**
* meta-map with dimensional info
* @author harrison
*
*/
public class DimensionFeatureMap extends AbstractVisualFeatureMap<Dimension2D>
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(DimensionFeatureMap.class);
private Map<IIdentifier, Dimension2D> _currentValues;
public DimensionFeatureMap()
{
super(null, IVisualPropertyHandler.RETINAL_SIZE);
_currentValues = new HashMap<IIdentifier, Dimension2D>();
}
@Override
protected void addInformation(IIdentifier identifier, Dimension2D data)
{
_currentValues.put(identifier, data);
}
@Override
protected void clearInternal()
{
_currentValues.clear();
}
/**
* this feature map isn't used in visual searches
* @param request
* @return
* @see org.jactr.modules.pm.common.memory.map.AbstractFeatureMap#isInterestedIn(org.jactr.core.production.request.ChunkTypeRequest)
*/
public boolean isInterestedIn(ChunkTypeRequest request)
{
return false;
}
@Override
protected Dimension2D extractInformation(IAfferentObject afferentObject)
{
try
{
Dimension2D dim = getHandler().getRetinalSize(afferentObject);
return dim;
}
catch (UnknownPropertyNameException e)
{
LOGGER.error("Exception ", e);
return null;
}
}
@Override
protected Dimension2D getCurrentValue(IIdentifier identifier)
{
return _currentValues.get(identifier);
}
@Override
protected Dimension2D removeInformation(IIdentifier identifier)
{
return _currentValues.remove(identifier);
}
@Override
protected void getCandidates(ChunkTypeRequest request,
Set<IIdentifier> results)
{
// TODO Auto-generated method stub
}
public void normalizeRequest(ChunkTypeRequest request)
{
// TODO Auto-generated method stub
}
}