package edu.stanford.nlp.patterns; import java.io.Serializable; import java.util.Map; import java.util.Set; import edu.stanford.nlp.ling.CoreLabel.GenericAnnotation; import edu.stanford.nlp.util.CollectionValuedMap; import edu.stanford.nlp.util.ErasureUtils; public class PatternsAnnotations implements Serializable { private static final long serialVersionUID = 1L; public static class ProcessedTextAnnotation implements GenericAnnotation<String>{ public Class<String> getType() { return String.class; } } public static class MatchedPattern implements GenericAnnotation<Boolean> { public Class<Boolean> getType() { return Boolean.class; } } public static class MatchedPatterns implements GenericAnnotation<Set<Pattern>> { public Class<Set<Pattern>> getType(){ return ErasureUtils.<Class<Set<Pattern>>> uncheckedCast(Set.class); } } /** All matched phrases - can be from multiple labels*/ public static class MatchedPhrases implements GenericAnnotation<CollectionValuedMap<String, CandidatePhrase>> { public Class<CollectionValuedMap<String, CandidatePhrase>> getType() { Class<CollectionValuedMap<String, CandidatePhrase>> claz = (Class) Map.class; return claz; } } /** * For each label, what was the longest phrase that matched. If none, then the map doesn't have the label key */ public static class LongestMatchedPhraseForEachLabel implements GenericAnnotation<Map<String, CandidatePhrase>>{ @Override public Class<Map<String, CandidatePhrase>> getType() { return ErasureUtils.<Class<Map<String, CandidatePhrase>>> uncheckedCast(Map.class); } } public static class PatternLabel1 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel2 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel3 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel4 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel5 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel6 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel7 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel8 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel9 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternLabel10 implements GenericAnnotation<String>{ public Class<String> getType(){ return String.class; } } public static class SeedLabeledOrNot implements GenericAnnotation<Map<Class, Boolean>>{ public Class<Map<Class, Boolean>> getType() { return ErasureUtils.<Class<Map<Class, Boolean>>> uncheckedCast(Map.class);} } public static class OtherSemanticLabel implements GenericAnnotation<String>{ public Class<String> getType(){ return String.class; } } public static class Features implements GenericAnnotation<Set<String>>{ public Class<Set<String>> getType(){ return ErasureUtils.<Class<Set<String>>> uncheckedCast(Set.class); } } public static class PatternHumanLabel1 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel2 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel3 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel4 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel5 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel6 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel7 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel8 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel9 implements GenericAnnotation<String> { public Class<String> getType() { return String.class; } } public static class PatternHumanLabel10 implements GenericAnnotation<String>{ public Class<String> getType(){ return String.class; } } }