Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

[hibernate-commits] Hibernate SVN: r15088 - in search/trunk/src:
 test/org/hibernate/search/test/id/providedId and 1 other directory.

hibernate-commits

2008-08-15


Author LoginPost Reply
Author: navssurtani
Date: 2008-08-15 06:02:32 -0400 (Fri, 15 Aug 2008)
New Revision: 15088

Modified:
 search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java
 search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java
Log:
Changed return types in @ProvidedId

Modified: search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java  2008-08-15 09:19:46 UTC (rev 15087)
+++ search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java  2008-08-15 10:02:32 UTC (rev 15088)
@@(protected) @@
   }
 }

-  public static TwoWayFieldBridge extractTwoWayType(ClassBridge classBridge) {
-    FieldBridge fb = extractType( classBridge );
+  /**
+   * Takes in a fieldBridge and will return you a TwoWayFieldBridge instance.
+   *
+   * @param fieldBridge
+   * @return a TwoWayFieldBridge instance if the Field Bridge is an instance of a TwoWayFieldBridge.
+   * @throws SearchException if the FieldBridge passed in is not an instance of a TwoWayFieldBridge.
+   */
+
+  public static TwoWayFieldBridge extractTwoWayType(org.hibernate.search.annotations.FieldBridge fieldBridge) {
+    FieldBridge fb = extractType( fieldBridge );
   if ( fb instanceof TwoWayFieldBridge ) {
     return ( TwoWayFieldBridge ) fb;
   }
   else {
-      throw new SearchException( "ClassBridge passed in is not an instance of " + TwoWayFieldBridge.class.getSimpleName() );
+      throw new SearchException( "FieldBridge passed in is not an instance of " + TwoWayFieldBridge.class.getSimpleName() );
   }
 }
+
+  /**
+   * This extracts and instantiates the implementation class from a ClassBridge
+   * annotation.
+   *
+   * @param fieldBridgeAnnotation the FieldBridge annotation
+   * @return FieldBridge
+   */
+  public static FieldBridge extractType(org.hibernate.search.annotations.FieldBridge fieldBridgeAnnotation)
+  {
+    FieldBridge bridge = null;
+
+    if ( fieldBridgeAnnotation != null ) {
+      Class impl = fieldBridgeAnnotation.impl();
+      //TODO better error information ( see guessType() )
+      if (impl != null) {
+        try {
+          Object instance = impl.newInstance();
+          if ( FieldBridge.class.isAssignableFrom( impl ) ) {
+            bridge = (FieldBridge) instance;
+          }
+          else if ( org.hibernate.search.bridge.TwoWayStringBridge.class.isAssignableFrom( impl ) ) {
+            bridge = new TwoWayString2FieldBridgeAdaptor(
+                (org.hibernate.search.bridge.TwoWayStringBridge) instance );
+          }
+          else if ( org.hibernate.search.bridge.StringBridge.class.isAssignableFrom( impl ) ) {
+            bridge = new String2FieldBridgeAdaptor( (org.hibernate.search.bridge.StringBridge) instance );
+          }
+          else {
+            throw new SearchException("@(protected): "
+                + impl );
+          }
+          if ( fieldBridgeAnnotation.params().length > 0 && ParameterizedBridge.class.isAssignableFrom( impl ) ) {
+            Map params = new HashMap( fieldBridgeAnnotation.params().length );
+            for ( Parameter param : fieldBridgeAnnotation.params() ) {
+              params.put( param.name(), param.value() );
+            }
+            ( (ParameterizedBridge) instance ).setParameterValues( params );
+          }
+        }
+        catch (Exception e) {
+          throw new HibernateException( "Unable to instantiate FieldBridge for " + ClassBridge.class.getName(), e );
+        }
+      }
+    }
+    if ( bridge == null ) throw new SearchException( "Unable to guess FieldBridge for " + ClassBridge.class.getName() );
+
+    return bridge;
+  }
+
+
}

Modified: search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java  2008-08-15 09:19:46 UTC (rev 15087)
+++ search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java  2008-08-15 10:02:32 UTC (rev 15088)
@@(protected) @@
@author Navin Surtani (<a href="mailto:nsurtani@redhat.com">nsurtani@(protected)>)
*/
@Entity
-@(protected)))
+@(protected)))
@Indexed
public class JBossCachePerson implements Serializable
{

_______________________________________________
hibernate-commits mailing list
hibernate-commits@(protected)
https://lists.jboss.org/mailman/listinfo/hibernate-commits
©2008 gg3721.com - Jax Systems, LLC, U.S.A.