package org.fluxtream.core.connectors.annotations; import org.fluxtream.core.connectors.location.LocationFacet; import org.fluxtream.core.domain.DefaultPhotoFacetFinderStrategy; import org.fluxtream.core.domain.PhotoFacetFinderStrategy; import org.fluxtream.core.facets.extractors.AbstractFacetExtractor; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.Arrays; import java.util.List; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ObjectTypeSpec { public String name(); public int value(); public Class<? extends AbstractFacetExtractor> extractor() default AbstractFacetExtractor.class; boolean parallel() default false; boolean isImageType() default false; public String prettyname(); boolean isDateBased() default false; public Class<? extends PhotoFacetFinderStrategy> photoFacetFinderStrategy() default DefaultPhotoFacetFinderStrategy.class; public LocationFacet.Source locationFacetSource() default LocationFacet.Source.NONE; public boolean isMixedType() default false; // is this a user-facing facet or just data that's necessary to maintain state in the context of API synchronization public boolean clientFacet() default true; public String visibleClause() default ""; public String orderBy() default ""; }