### Question:
SubjectObjectFeatureSupport implements FeatureSupport<Void> { @Override public boolean accepts(AnnotationFeature annotationFeature) { switch (annotationFeature.getMultiValueMode()) { case ARRAY: switch (annotationFeature.getLinkMode()) { case WITH_ROLE: switch (annotationFeature.getLinkTypeName()) { case SUBJECT_LINK: case OBJECT_LINK: case QUALIFIER_LINK: return true; default: return false; } default: return false; } case NONE: default: return false; } }  @Override String getId(); @Override void setBeanName(String aBeanName); @Override List<FeatureType> getSupportedFeatureTypes(AnnotationLayer aAnnotationLayer); @Override boolean accepts(AnnotationFeature annotationFeature); @Override FeatureEditor createEditor(String aId, MarkupContainer aOwner,
        AnnotationActionHandler aHandler, IModel<AnnotatorState> aStateModel,
        IModel<FeatureState> aFeatureStateModel); @Override void generateFeature(TypeSystemDescription aTSD, TypeDescription aTD,
        AnnotationFeature aFeature); @Override List<LinkWithRoleModel> getFeatureValue(AnnotationFeature aFeature, FeatureStructure aFS); @Override List<LinkWithRoleModel> unwrapFeatureValue(AnnotationFeature aFeature, CAS aCAS,
            Object aValue); @Override ArrayList<LinkWithRoleModel> wrapFeatureValue(AnnotationFeature aFeature, CAS aCAS,
            Object aValue);  }### Answer:
@Test public void testAccepts() { SubjectObjectFeatureSupport sut = new SubjectObjectFeatureSupport(); AnnotationFeature feat1 = new AnnotationFeature("slot", "webanno.custom.SimpleSpan"); feat1.setLinkTypeName(FactLinkingConstants.SUBJECT_LINK); feat1.setLinkMode(LinkMode.WITH_ROLE); feat1.setLinkTypeRoleFeatureName("role"); feat1.setLinkTypeTargetFeatureName("target"); feat1.setMode(MultiValueMode.ARRAY); AnnotationFeature feat2 = new AnnotationFeature("Dummy feature", "someType"); assertThat(sut.accepts(feat1)).isTrue(); assertThat(sut.accepts(feat2)).isFalse(); }