blob: b8826f7cd15c6c735e42668045165a1af171855e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.component.twitter;
import org.apache.camel.Consumer;
import org.apache.camel.api.management.ManagedAttribute;
import org.apache.camel.component.twitter.data.EndpointType;
import org.apache.camel.spi.UriParam;
import org.apache.camel.support.DefaultPollingEndpoint;
/**
* The base Twitter Endpoint.
*/
public abstract class AbstractTwitterEndpoint extends DefaultPollingEndpoint implements TwitterEndpoint {
public static final long DEFAULT_CONSUMER_DELAY = 30 * 1000L;
@UriParam(optionalPrefix = "consumer.", defaultValue = "" + DEFAULT_CONSUMER_DELAY, label = "consumer,scheduler",
description = "Milliseconds before the next poll.")
private long delay = DEFAULT_CONSUMER_DELAY;
@UriParam
private TwitterConfiguration properties;
public AbstractTwitterEndpoint(String uri, AbstractTwitterComponent component, TwitterConfiguration properties) {
super(uri, component);
setDelay(DEFAULT_CONSUMER_DELAY);
this.properties = properties;
}
@Override
protected void doStop() throws Exception {
super.doStop();
if (properties.getType() == EndpointType.EVENT && properties.getTwitterStream() != null) {
properties.getTwitterStream().shutdown();
}
}
public void configureConsumer(Consumer consumer) throws Exception {
super.configureConsumer(consumer);
}
@ManagedAttribute
public TwitterConfiguration getProperties() {
return properties;
}
public void setProperties(TwitterConfiguration properties) {
this.properties = properties;
}
@ManagedAttribute
public String getLocations() {
return getProperties().getLocations();
}
@ManagedAttribute
public void setLocations(String locations) {
getProperties().setLocations(locations);
}
@ManagedAttribute
public void setFilterOld(boolean filterOld) {
getProperties().setFilterOld(filterOld);
}
@ManagedAttribute
public boolean isFilterOld() {
return getProperties().isFilterOld();
}
@ManagedAttribute
public void setSinceId(long sinceId) {
getProperties().setSinceId(sinceId);
}
@ManagedAttribute
public long getSinceId() {
return getProperties().getSinceId();
}
@ManagedAttribute
public void setLang(String lang) {
getProperties().setLang(lang);
}
@ManagedAttribute
public String getLang() {
return getProperties().getLang();
}
@ManagedAttribute
public void setCount(Integer count) {
getProperties().setCount(count);
}
@ManagedAttribute
public Integer getCount() {
return getProperties().getCount();
}
@ManagedAttribute
public void setNumberOfPages(Integer numberOfPages) {
getProperties().setNumberOfPages(numberOfPages);
}
@ManagedAttribute
public Integer getNumberOfPages() {
return getProperties().getNumberOfPages();
}
@Override
public EndpointType getEndpointType() {
return getProperties().getType();
}
/**
* Milliseconds before the next poll.
*/
@Override
public void setDelay(long delay) {
super.setDelay(delay);
this.delay = delay;
}
}