001package com.astrolabsoftware.FinkBrowser.Januser;
002
003import com.Lomikel.Utils.LomikelException;
004
005/** <code>Classifier</code> classifies sources.
006  * @opt attributes
007  * @opt operations
008  * @opt types
009  * @opt visibility
010  * @author <a href="mailto:Julius.Hrivnac@cern.ch">J.Hrivnac</a> */
011public interface Classifier {
012  
013  /** Classify <em>source</em> and expand them to alerts (if requested).
014    * It should register classes corresponding to specified <tt>objectId</tt>
015    * using {@link FinkGremlinRecipies#registerSourcesOfInterest(Classifiers, String, String, double, String, String, boolean, String)}.
016    * @param recipies   The {@link FinkGremlinRecipies} caller.
017    * @param oid        The <tt>objectId</tt> of source to be added.
018    * @param hbaseUrl   The url of HBase with alerts as <tt>ip:port:table:schema</tt>.
019    * @param enhance    Whether expand tree under all <em>SourcesOfInterest</em> with alerts
020    *                   possibly filled with requested HBase columns.
021    * @param columns    The HBase columns to be copied into graph alerts. May be <tt>null</tt>. 
022    * @throws LomikelException If anything fails. */
023  public abstract void classify(FinkGremlinRecipies recipies,
024                                String              oid,
025                                String              hbaseUrl,
026                                boolean             enhance,
027                                String              columns) throws LomikelException;
028  
029  }