# \[elastic java transport client\] Why Terms.Bucket is class,not interface

**URL:** <https://discuss.elastic.co/t/elastic-java-transport-client-why-terms-bucket-is-class-not-interface/26215>\
**Category:** Elasticsearch\
**Created:** [July 24, 2015, 7:22am UTC](https://discuss.elastic.co/t/elastic-java-transport-client-why-terms-bucket-is-class-not-interface/26215 "2015-07-24T07:22:06Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![yana2301](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/yana2301/32/133248_2.png) [@yana2301](https://discuss.elastic.co/u/yana2301)\
**Post date:** [July 24, 2015, 7:22am UTC](https://discuss.elastic.co/t/elastic-java-transport-client-why-terms-bucket-is-class-not-interface/26215/1 "2015-07-24T07:22:06Z")

</div>

Hi,  
I'm looking into elastic java transport  
client, org.elasticsearch.search.aggregations.bucket.terms.Terms interface.  
Unlike all other aggregations Terms.Bucket is class,not interface.  
It has one package private method , compareTerm -- because of this method  
it's impossible to implement Terms inteface.  
So my question is -- was it done intentionally or it's just error and I can  
submit issue?  
Sorry if I post to wrong mailing list -- not sure to which exactly mailing  
list should I post it, but seems not to be related to general Elastic usage.

Best Regards,  
Iana

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:59pm UTC](https://discuss.elastic.co/t/elastic-java-transport-client-why-terms-bucket-is-class-not-interface/26215/2 "2017-07-05T23:59:20Z")

</div>


