package org.jactr.core.module.declarative.search.filter;
/*
* default logging
*/
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jactr.core.chunk.IChunk;
import org.jactr.core.chunktype.IChunkType;
public class ChunkTypeFilter implements IChunkFilter
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(ChunkTypeFilter.class);
private final IChunkType _type;
private final boolean _isAStrict;
public ChunkTypeFilter(IChunkType type, boolean isAStrict)
{
_type = type;
_isAStrict = isAStrict;
}
@Override
public boolean accept(IChunk chunk)
{
try
{
if (_type == null) return true;
if (_isAStrict)
return chunk.getSymbolicChunk().isAStrict(_type);
else
return chunk.getSymbolicChunk().isA(_type);
}
catch (Exception e)
{
LOGGER.error(e);
return false;
}
}
}