package org.jactr.modules.pm.visual.memory.impl.map;
/*
* default logging
*/
import java.util.Collection;
import java.util.Set;
import javolution.util.FastSet;
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.object.IAfferentObject;
import org.commonreality.object.UnknownPropertyNameException;
import org.jactr.core.chunk.IChunk;
import org.jactr.core.production.request.ChunkTypeRequest;
import org.jactr.core.slot.BasicSlot;
import org.jactr.core.slot.IConditionalSlot;
import org.jactr.core.slot.ISlot;
import org.jactr.modules.pm.visual.IVisualModule;
public class DistanceFeatureMap extends AbstractSortedVisualFeatureMap<Double>
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(DistanceFeatureMap.class);
public DistanceFeatureMap()
{
super(IVisualModule.SCREEN_Z_SLOT, IVisualPropertyHandler.RETINAL_DISTANCE);
}
@Override
protected Double extractInformation(IAfferentObject afferentObject)
{
try
{
return getHandler().getRetinalDistance(afferentObject);
}
catch (UnknownPropertyNameException e)
{
LOGGER.error("exception ", e);
return null;
}
}
@Override
protected boolean isValidValue(ISlot slot)
{
return slot.getValue() instanceof Number;
}
@Override
protected Double toData(ISlot slot)
{
return ((Number) slot.getValue()).doubleValue();
}
}