001package com.astrolabsoftware.FinkBrowser.Januser;
002
003/** <code>Classifiers</code> specifies how sources and alerts are classified.
004  * @opt attributes
005  * @opt operations
006  * @opt types
007  * @opt visibility
008  * @author <a href="mailto:Julius.Hrivnac@cern.ch">J.Hrivnac</a> */
009public enum Classifiers {
010  FINK_PORTAL {
011    @Override
012    public Classifier instance() {
013      return new FinkPortalClassifier();
014      }
015    },
016  FEATURES {
017    @Override
018    public Classifier instance() {
019      return new FeaturesClassifier();
020      }
021    },
022  LIGHTCURVES {
023    @Override
024    public Classifier instance() {
025      return new LightCurvesClassifier();
026      }
027    },
028  TAG {
029    @Override
030    public Classifier instance() {
031      return new TagClassifier();
032      }
033    },
034  UNKNOWN {
035    @Override
036    public Classifier instance() {
037      return new FinkPortalClassifier();
038      }
039    };
040  
041  /** Give the instance of the appropriate {@link Classifier}.
042    * @return The instance of the appropriate {@link Classifier}. */
043  public abstract Classifier instance();
044  
045  }