package rocks.inspectit.shared.cs.indexing.indexer.impl; import rocks.inspectit.shared.all.communication.DefaultData; import rocks.inspectit.shared.all.indexing.IIndexQuery; import rocks.inspectit.shared.cs.indexing.indexer.AbstractSharedInstanceBranchIndexer; import rocks.inspectit.shared.cs.indexing.indexer.IBranchIndexer; /** * {@link IBranchIndexer} that indexes on the sensor type idents of {@link DefaultData}. * * @author Ivan Senic * * @param <E> */ public class SensorTypeIdentIndexer<E extends DefaultData> extends AbstractSharedInstanceBranchIndexer<E> implements IBranchIndexer<E> { /** * {@inheritDoc} */ @Override public Object getKey(E element) { if (0 == element.getSensorTypeIdent()) { return null; } return element.getSensorTypeIdent(); } /** * {@inheritDoc} */ @Override public Object[] getKeys(IIndexQuery query) { if (0 == query.getSensorTypeIdent()) { return new Object[0]; } Object[] keys = new Object[1]; keys[0] = query.getSensorTypeIdent(); return keys; } }