<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:five="http://namespaces.zope.org/five"
    >

  <adapter
    for="Products.SilvaFind.interfaces.IResultField
         Products.Silva.interfaces.IRoot"
    provides=".interfaces.ICatalogMetadataSetup"
    factory=".criterion.CatalogMetadataSetup"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IMetadataCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.ICriterionView"
    factory=".metadatacriterion.MetadataCriterionView"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IMetadataCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IQueryPart"
    factory=".metadatacriterion.MetadataCriterionView"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IMetadataCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IStoreCriterion"
    factory=".metadatacriterion.StoreMetadataCriterion"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IMetadataCriterionField
         Products.Silva.interfaces.IRoot"
    provides=".interfaces.IIndexedField"
    factory=".metadatacriterion.IndexedMetadataCriterion"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IMetatypeCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.ICriterionView"
    factory=".metatypecriterion.MetatypeCriterionView"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IMetatypeCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IQueryPart"
    factory=".metatypecriterion.MetatypeCriterionView"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IMetatypeCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IStoreCriterion"
    factory=".metatypecriterion.StoreMetatypeCriterion"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IMetatypeCriterionField
      Products.Silva.interfaces.IRoot"
    provides=".interfaces.IIndexedField"
    factory=".metatypecriterion.IndexedMetatypeCriterion"
  />
  
  <adapter
    for="Products.SilvaFind.interfaces.IPathCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.ICriterionView"
    factory=".pathcriterion.PathCriterionView"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IPathCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IQueryPart"
    factory=".pathcriterion.PathCriterionView"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IPathCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IStoreCriterion"
    factory=".pathcriterion.StorePathCriterion"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IPathCriterionField
      Products.Silva.interfaces.IRoot"
    provides=".interfaces.IIndexedField"
    factory=".pathcriterion.IndexedPathCriterion"
  />
  
  <adapter
    for="Products.SilvaFind.interfaces.IDateRangeMetadataCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.ICriterionView"
    factory=".metadatacriterion.DateRangeMetadataCriterionView"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IDateRangeMetadataCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IQueryPart"
    factory=".metadatacriterion.DateRangeMetadataCriterionView"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IDateRangeMetadataCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IStoreCriterion"
    factory=".metadatacriterion.StoreDateRangeMetadataCriterion"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IIntegerRangeMetadataCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.ICriterionView"
    factory=".metadatacriterion.IntegerRangeMetadataCriterionView"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IIntegerRangeMetadataCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IQueryPart"
    factory=".metadatacriterion.IntegerRangeMetadataCriterionView"
  />

  <adapter
    for="Products.SilvaFind.interfaces.IIntegerRangeMetadataCriterionField
      Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IStoreCriterion"
    factory=".metadatacriterion.StoreIntegerRangeMetadataCriterion"
  />
  
  <adapter
    for="Products.SilvaFind.interfaces.IFullTextCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.ICriterionView"
    factory=".fulltextcriterion.FullTextCriterionView"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IFullTextCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IQueryPart"
    factory=".fulltextcriterion.FullTextCriterionView"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IFullTextCriterionField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IStoreCriterion"
    factory=".fulltextcriterion.StoreFullTextCriterion"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IFullTextCriterionField
         Products.Silva.interfaces.IRoot"
    provides=".interfaces.IIndexedField"
    factory=".fulltextcriterion.IndexedFullTextCriterion"
    />

  <adapter
    for="Products.SilvaFind.interfaces.IResultField
         Products.SilvaFind.interfaces.ISilvaQuery"
    provides=".interfaces.IResultView"
    factory=".result.ResultView"
    />

</configure>
