001 /*
002 * The contents of this file are subject to the Mozilla Public
003 * License Version 1.1 (the "License"); you may not use this file
004 * except in compliance with the License. You may obtain a copy of
005 * the License at http://www.mozilla.org/MPL/
006 *
007 * Software distributed under the License is distributed on an "AS
008 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
009 * implied. See the License for the specific language governing
010 * rights and limitations under the License.
011 *
012 * The Original Code is Knowtator.
013 *
014 * The Initial Developer of the Original Code is University of Colorado.
015 * Copyright (C) 2005 - 2008. All Rights Reserved.
016 *
017 * Knowtator was developed by the Center for Computational Pharmacology
018 * (http://compbio.uchcs.edu) at the University of Colorado Health
019 * Sciences Center School of Medicine with support from the National
020 * Library of Medicine.
021 *
022 * Current information about Knowtator can be obtained at
023 * http://knowtator.sourceforge.net/
024 *
025 * Contributor(s):
026 * Philip V. Ogren <philip@ogren.info> (Original Author)
027 */
028 package edu.uchsc.ccp.iaa.matcher;
029
030 import java.util.Set;
031
032 import edu.uchsc.ccp.iaa.Annotation;
033 import edu.uchsc.ccp.iaa.IAA;
034
035 public interface Matcher {
036 /**
037 * @param annotation
038 * the annotation that is to be matched
039 * @param compareSetName
040 * the set of annotations that we will look for a match in
041 * @param excludeAnnotations
042 * a set of annotations that cannot be the return value
043 * @param iaa
044 * an instance of IAA from which to get information about
045 * annotations
046 * @param matchResult
047 * instantiate a new MatchType and pass it to the method. The
048 * method must set the result to one of the four result values
049 * given in MatchResult.
050 * @return the annotation that was matched. If none exists then return null.
051 */
052 public Annotation match(Annotation annotation, String compareSetName, Set<Annotation> excludeAnnotations, IAA iaa,
053 MatchResult matchResult);
054
055 public String getName();
056
057 public String getDescription();
058
059 public boolean returnsTrivials();
060 }