Class TopicPartitionOffset
- java.lang.Object
-
- org.springframework.kafka.support.TopicPartitionOffset
-
public class TopicPartitionOffset extends java.lang.Object
A configuration container to represent a topic name, partition number and, optionally, an offset for it. The offset can be:null
- do nothing;- positive (including
0
) - seek to EITHER the absolute offset within the partition or an offset relative to the current position for this consumer, depending onisRelativeToCurrent()
. - negative - seek to EITHER the offset relative to the current last offset within
the partition:
consumer.seekToEnd() + initialOffset
OR the relative to the current offset for this consumer (if any), depending onisRelativeToCurrent()
.
start()
ed. This class is used when manually assigning partitions and for deferred seek operations.- Since:
- 2.3
- Author:
- Artem Bilan, Gary Russell
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TopicPartitionOffset.SeekPosition
Enumeration for "special" seeks.
-
Constructor Summary
Constructors Constructor Description TopicPartitionOffset(java.lang.String topic, int partition)
Construct an instance with no initial offset management.TopicPartitionOffset(java.lang.String topic, int partition, java.lang.Long offset)
Construct an instance with the provided initial offset withisRelativeToCurrent()
false.TopicPartitionOffset(java.lang.String topic, int partition, java.lang.Long offset, boolean relativeToCurrent)
Construct an instance with the provided initial offset.TopicPartitionOffset(java.lang.String topic, int partition, java.lang.Long offset, TopicPartitionOffset.SeekPosition position)
Construct an instance with the providedTopicPartitionOffset.SeekPosition
.TopicPartitionOffset(java.lang.String topic, int partition, TopicPartitionOffset.SeekPosition position)
Construct an instance with the providedTopicPartitionOffset.SeekPosition
.TopicPartitionOffset(org.apache.kafka.common.TopicPartition topicPartition, java.lang.Long offset, TopicPartitionOffset.SeekPosition position)
Construct an instance with the providedTopicPartitionOffset.SeekPosition
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object o)
java.lang.Long
getOffset()
int
getPartition()
TopicPartitionOffset.SeekPosition
getPosition()
java.lang.String
getTopic()
org.apache.kafka.common.TopicPartition
getTopicPartition()
int
hashCode()
boolean
isRelativeToCurrent()
void
setOffset(java.lang.Long offset)
Set the offset.void
setRelativeToCurrent(boolean relativeToCurrent)
Set whether the offset is relative to the current position.java.lang.String
toString()
-
-
-
Constructor Detail
-
TopicPartitionOffset
public TopicPartitionOffset(java.lang.String topic, int partition)
Construct an instance with no initial offset management.- Parameters:
topic
- the topic.partition
- the partition.
-
TopicPartitionOffset
public TopicPartitionOffset(java.lang.String topic, int partition, java.lang.Long offset)
Construct an instance with the provided initial offset withisRelativeToCurrent()
false.- Parameters:
topic
- the topic.partition
- the partition.offset
- the offset.- See Also:
TopicPartitionOffset(String, int, Long, boolean)
-
TopicPartitionOffset
public TopicPartitionOffset(java.lang.String topic, int partition, java.lang.Long offset, boolean relativeToCurrent)
Construct an instance with the provided initial offset.- Parameters:
topic
- the topic.partition
- the partition.offset
- the initial offset.relativeToCurrent
- true for the initial offset to be relative to the current consumer position, false for a positive initial offset to be absolute and a negative offset relative to the current end of the partition.
-
TopicPartitionOffset
public TopicPartitionOffset(java.lang.String topic, int partition, TopicPartitionOffset.SeekPosition position)
Construct an instance with the providedTopicPartitionOffset.SeekPosition
.- Parameters:
topic
- the topic.partition
- the partition.position
-TopicPartitionOffset.SeekPosition
.
-
TopicPartitionOffset
public TopicPartitionOffset(java.lang.String topic, int partition, java.lang.Long offset, @Nullable TopicPartitionOffset.SeekPosition position)
Construct an instance with the providedTopicPartitionOffset.SeekPosition
.- Parameters:
topic
- the topic.partition
- the partition.offset
- the offset from the seek position (or timestamp forTopicPartitionOffset.SeekPosition.TIMESTAMP
).position
-TopicPartitionOffset.SeekPosition
.- Since:
- 2.3
-
TopicPartitionOffset
public TopicPartitionOffset(org.apache.kafka.common.TopicPartition topicPartition, java.lang.Long offset, @Nullable TopicPartitionOffset.SeekPosition position)
Construct an instance with the providedTopicPartitionOffset.SeekPosition
.- Parameters:
topicPartition
- the topic/partition.offset
- the offset from the seek position (or timestamp forTopicPartitionOffset.SeekPosition.TIMESTAMP
).position
-TopicPartitionOffset.SeekPosition
.- Since:
- 2.3
-
-
Method Detail
-
getTopicPartition
public org.apache.kafka.common.TopicPartition getTopicPartition()
-
getPartition
public int getPartition()
-
getTopic
public java.lang.String getTopic()
-
getOffset
public java.lang.Long getOffset()
-
setOffset
public void setOffset(java.lang.Long offset)
Set the offset.- Parameters:
offset
- the offset.- Since:
- 2.5.5
-
isRelativeToCurrent
public boolean isRelativeToCurrent()
-
setRelativeToCurrent
public void setRelativeToCurrent(boolean relativeToCurrent)
Set whether the offset is relative to the current position.- Parameters:
relativeToCurrent
- true for relative to current.- Since:
- 2.5.5
-
getPosition
public TopicPartitionOffset.SeekPosition getPosition()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-