package org.fluxtream.core.connectors.annotations; import org.fluxtream.core.connectors.Connector.UpdateStrategyType; import org.fluxtream.core.connectors.DefaultSharedConnectorFilter; import org.fluxtream.core.connectors.SharedConnectorFilter; import org.fluxtream.core.connectors.bodytrackResponders.AbstractBodytrackResponder; import org.fluxtream.core.domain.AbstractFacet; import org.fluxtream.core.domain.AbstractUserProfile; 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; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Updater { public static final String DEVICE_NICKNAME_NONE = "none"; // dummy empty class meant to let settings have a default static class EmptySettings {} int value(); UpdateStrategyType updateStrategyType() default UpdateStrategyType.INCREMENTAL; String prettyName(); Class <? extends AbstractFacet>[] objectTypes(); public Class<? extends AbstractFacetExtractor> extractor() default AbstractFacetExtractor.class; public Class<? extends AbstractUserProfile> userProfile() default AbstractUserProfile.class; public boolean hasFacets() default true; public String[] defaultChannels() default {}; public Class<? extends Object> settings() default EmptySettings.class; public Class<? extends AbstractBodytrackResponder> bodytrackResponder() default AbstractBodytrackResponder.class; public int[] deleteOrder() default {-1}; public Class<? extends SharedConnectorFilter> sharedConnectorFilter() default DefaultSharedConnectorFilter.class; public String deviceNickname() default DEVICE_NICKNAME_NONE; }