> public interface IndexedEntityDescriptor {
> 
> I find the name "IndexedEntityDescriptor" in conjunction with isIndexed() 
> potentially returning "false" a bit irritating. Maybe just EntityDescriptor? 
> Or SearchableEntityDescriptor?

I thought about EntityDescriptor, but found it to generic. Somehow I wanted to 
have the connection to Search/Lucene. SearchableEntityDescriptor implies that I 
can search
something in the descriptor. I am not 100% happy about IndexedEntityDescriptor 
either, but for now I still think it is the best.

>         boolean isIndexed();
> 
> Maybe return an enum if this can potentially be more than a simple yes/no? I 
> don't know how likely that is, but an enum would allow for evolvement.

Not sure this is needed. I don't foresee that this would change.

>         Set<String> getIndexNames();
> 
> Would something like Set<IndexDescriptor> getIndexes() make sense?

That's an interesting thought. In fact I was wondering whether more index 
specific information is needed. On the other hand, 
I was thinking thinking that as long as you have the index name you can always 
get more information via accessing the IndexManager
directly - SearchFactoryImplementor.getAllIndexesManager.getIndexManager(String 
indexName)

Now that you bring it up, I am wondering, however, if we could expose thinks 
like directory type via a IndexDescriptor.

> At least for my case I think it would be easier if this contained all field 
> descriptors so I can handle them uniformly. Maybe FieldDescriptor#isId() or 
> if there are more id specific things something like this could be added:

sounds good

>         // TODO should OBJECT_CLASS be considered?
>         Set<FieldDescriptor> getIndexedFields();
> 
> Could you also add FieldDescriptor getIndexedField(String fieldName);

sure

> public interface FieldDescriptor {
>         /**
>          * Returns the Lucene {@code Document} field name for this indexed 
> property.
>          *
>          * @return Returns the field name for this index property
>          */
>         String getFieldName();
> 
> I'd call it just "getName()", not repeating the type's name.

ok

> public interface FieldNameReportingBridge {
>         Iterable<String> getGeneratedFieldNames(String baseFieldName);
> }
> 
> Not better a Set? Returning Iterable makes it harder for users (e.g. no 
> contains()) and also hides set vs. list semantics.

+1

thanks for the great feedback :-)


--Hardy
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to