Author: noble
Date: Tue Sep 22 04:38:10 2009
New Revision: 817501

URL: http://svn.apache.org/viewvc?rev=817501&view=rev
Log:
refactored and added javadocs

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/core/PluginInfo.java
    lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
    
lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
    
lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/PluginInfo.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/PluginInfo.java?rev=817501&r1=817500&r2=817501&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/PluginInfo.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/PluginInfo.java Tue Sep 22 
04:38:10 2009
@@ -92,6 +92,10 @@
     return Boolean.parseBoolean(attributes.get("default"));
   }
 
+  /**Filter children by type
+   * @param type The type name. must not be null
+   * @return The mathcing children
+   */
   public List<PluginInfo> getChildren(String type){
     if(children.isEmpty()) return children;
     List<PluginInfo> result = new ArrayList<PluginInfo>();

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java?rev=817501&r1=817500&r2=817501&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java Tue Sep 22 
04:38:10 2009
@@ -400,7 +400,7 @@
   /** Creates an instance by trying a constructor that accepts a SolrCore 
before
    *  trying the default (no arg) constructor.
    *...@param className the instance class to create
-   *...@cast the class or interface that the instance should extend or 
implement
+   *...@param cast the class or interface that the instance should extend or 
implement
    *...@param msg a message helping compose the exception error if any occurs.
    *...@return the desired instance
    *...@throws SolrException if the object could not be instantiated
@@ -430,6 +430,7 @@
   }
 
   public <T extends Object> T createInitInstance(PluginInfo info,Class<T> 
cast, String msg, String defClassName){
+    if(info == null) return null;
     T o = createInstance(info.className == null ? defClassName : 
info.className,cast, msg);
     if (o instanceof PluginInfoInitialized) {
       ((PluginInfoInitialized) o).init(info);
@@ -1478,6 +1479,12 @@
     }
   }
 
+  /**
+   * @param registry The map to which the instance should be added to. The key 
is the name attribute
+   * @param type the class or interface that the instance should extend or 
implement.
+   * @param defClassName If PluginInfo does not have a classname, use this as 
the classname
+   * @return The default instance . The one with (default=true)
+   */
   public <T> T initPlugins(Map<String ,T> registry, Class<T> type, String 
defClassName){
     return initPlugins(solrConfig.getPluginInfos(type.getName()), registry, 
type, defClassName);
   }
@@ -1486,11 +1493,6 @@
     T def = null;
     for (PluginInfo info : pluginInfos) {
       T o = createInitInstance(info,type, type.getSimpleName(), defClassName);
-      if (o instanceof PluginInfoInitialized) {
-        ((PluginInfoInitialized) o).init(info);
-      }else if (o instanceof NamedListInitializedPlugin) {
-        ((NamedListInitializedPlugin) o).init(info.initArgs);
-      }
       registry.put(info.name, o);
       if(info.isDefault()){
         def = o;
@@ -1499,6 +1501,23 @@
     return def;
   }
 
+  /**For a given List of PluginInfo return the instances as a List
+   * @param defClassName The default classname if PluginInfo#className == null
+   * @return The instances initialized
+   */
+  public <T> List<T> initPlugins(List<PluginInfo> pluginInfos, Class<T> type, 
String defClassName) {
+    if(pluginInfos.isEmpty()) return Collections.emptyList();
+    List<T> result = new ArrayList<T>();
+    for (PluginInfo info : pluginInfos) 
result.add(createInitInstance(info,type, type.getSimpleName(), defClassName));
+    return result;
+  }
+
+  /**
+   *
+   * @param registry The map to which the instance should be added to. The key 
is the name attribute
+   * @param type The type of the Plugin. These should be standard ones 
registerd by type.getName() in SolrConfig
+   * @return     The default if any
+   */
   public <T> T initPlugins(Map<String, T> registry, Class<T> type) {
     return initPlugins(registry, type, null);
   }

Modified: 
lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java?rev=817501&r1=817500&r2=817501&view=diff
==============================================================================
--- 
lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
 (original)
+++ 
lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
 Tue Sep 22 04:38:10 2009
@@ -72,25 +72,19 @@
     formatters.clear();
     fragmenters.clear();
 
-    List<PluginInfo> fragmenterInfo = new ArrayList<PluginInfo>();
-    List<PluginInfo> formatterrInfo = new ArrayList<PluginInfo>();
-    // Load the fragmenters
-    for (PluginInfo child : info.children) {
-      if("fragmenter".equals(child.type)) fragmenterInfo.add(child);
-      if("formatter".equals(child.type)) formatterrInfo.add(child);
-    }
-    SolrFragmenter frag = solrCore.initPlugins(fragmenterInfo, 
fragmenters,SolrFragmenter.class,null);
+    SolrFragmenter frag = solrCore.initPlugins(info.getChildren("fragmenter") 
, fragmenters,SolrFragmenter.class,null);
     if (frag == null) frag = new GapFragmenter();
     fragmenters.put("", frag);
     fragmenters.put(null, frag);
     // Load the formatters
-    SolrFormatter fmt = solrCore.initPlugins(formatterrInfo, 
formatters,SolrFormatter.class,null);
+    SolrFormatter fmt = solrCore.initPlugins(info.getChildren("formatter"), 
formatters,SolrFormatter.class,null);
     if (fmt == null) fmt = new HtmlFormatter();
     formatters.put("", fmt);
     formatters.put(null, fmt);
     initialized = true;
 
   }
+  //just for back-compat with the deprecated method
   private boolean initialized = false;
   @Deprecated
   public void initalize( SolrConfig config) {

Modified: 
lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java?rev=817501&r1=817500&r2=817501&view=diff
==============================================================================
--- 
lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
 (original)
+++ 
lucene/solr/trunk/src/java/org/apache/solr/update/processor/UpdateRequestProcessorChain.java
 Tue Sep 22 04:38:10 2009
@@ -23,7 +23,7 @@
 import org.apache.solr.core.PluginInfo;
 import org.apache.solr.core.SolrCore;
 
-import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Manages a chain of UpdateRequestProcessorFactories.
@@ -54,13 +54,7 @@
   }
 
   public void init(PluginInfo info) {
-    ArrayList<UpdateRequestProcessorFactory> list = new 
ArrayList<UpdateRequestProcessorFactory>();
-    for (PluginInfo child : info.children) {
-      if("processor".equals(child.type)){
-        UpdateRequestProcessorFactory factory = 
solrCore.createInitInstance(child, UpdateRequestProcessorFactory.class, 
null,null);
-        list.add(factory);
-      }
-    }
+    List<UpdateRequestProcessorFactory> list = 
solrCore.initPlugins(info.getChildren("processor"),UpdateRequestProcessorFactory.class,null);
     if(list.isEmpty()){
       throw new RuntimeException( "updateRequestProcessorChain require at 
least one processor");
     }


Reply via email to