package rocks.inspectit.shared.cs.indexing.indexer.impl; import rocks.inspectit.shared.all.communication.DefaultData; import rocks.inspectit.shared.all.communication.MethodSensorData; 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 method idents of {@link MethodSensorData}. * * @author Ivan Senic * * @param <E> */ public class MethodIdentIndexer<E extends DefaultData> extends AbstractSharedInstanceBranchIndexer<E> implements IBranchIndexer<E> { /** * {@inheritDoc} */ @Override public Object getKey(E element) { if (element instanceof MethodSensorData) { return ((MethodSensorData) element).getMethodIdent(); } else { return 0; } } /** * {@inheritDoc} */ @Override public Object[] getKeys(IIndexQuery query) { if (0 == query.getMethodIdent()) { return new Object[0]; } Object[] keys = new Object[1]; keys[0] = query.getMethodIdent(); return keys; } }