커스텀 반복자를 만들려고하고 있지만 사용 가능한 튜토리얼이 없기 때문에 Accumulo github 페이지에 제공된 코드를 살펴 보았습니다.Accumulo에서 SortedKeyValueIterator 인터페이스의 기능을 재정의하는 방법은 무엇입니까?
모든 클래스가 SortedKeyValueIterator를 구현하고 해당 함수를 재정의한다는 것을 발견했습니다.
이러한 함수의 역할은 무엇이며 SortedKeyValueIterator를 구현하는 새 클래스를 만들 때 이러한 함수를 재정의 할 때 어떤 접근 방식을 사용해야합니다.
이것은 이해하려고 시도한 RowFilter 클래스의 샘플 코드입니다.
public void init(SortedKeyValueIterator<Key,Value> source, Map<String,String> options, IteratorEnvironment env) throws IOException {
super.init(source, options, env);
this.decisionIterator = new RowIterator(source.deepCopy(env));
}
public SortedKeyValueIterator<Key,Value> deepCopy(IteratorEnvironment env) {
RowFilter newInstance;
try {
newInstance = getClass().newInstance();
} catch (Exception e)
{
throw new RuntimeException(e);
}
newInstance.setSource(getSource().deepCopy(env));
newInstance.decisionIterator = new RowIterator(getSource().deepCopy(env));
return newInstance;
}
내가 알고 싶은,이 코드가 수행하는 일, 그리고 내가 다른 클래스가 SortedKeyValueIterator을 구현하려는 경우 나는 이러한 기능을 무시하는 방법.
몇 가지 중요한 추가 비트를 다른 제공 "사용자가 직면"반복자 좀 걸릴 수 있습니다 :은 "최고"키로 seek'd 범위의 첫 번째 키/값 쌍을 단) (추구 /값. next() 단계 이후 쌍. 따라서 호출자가 seek() 후 즉시 getTopKey()/getTopValue()를 호출하고 next() 호출 후에 다시 호출 할 것이라고 가정 할 수 있습니다. 또한 기본을 구현하므로 WrappingIterator를 확장하는 것이 좋습니다. – Christopher
기능에 대한 명확한 설명을 제공해 주셔서 감사합니다 !! – Vaibhav
도와 드리겠습니다. 원할 경우 https://issues.apache.org/jira/secure/Dashboard.jspa에서 문제를 제기 할 수 있으며 다음 릴리스에서 문서를 업데이트하려고 노력할 것입니다. – elserj