Author: ssmiweve
Date: 2007-06-11 23:53:06 +0200 (Mon, 11 Jun 2007)
New Revision: 5304

Modified:
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigationCommand.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/DataModelResultHandler.java
   
trunk/core-api/src/main/java/no/schibstedsok/searchportal/run/RunningQueryImpl.java
   trunk/data-model-api/pom.xml
   
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/DataModel.java
   
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/search/SearchDataObject.java
   
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/BasicNavigationItem.java
   
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/ResultItem.java
   
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NavigationCommandConfig.java
Log:
SEARCH-297 - Build Navigation Data Model


Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
   2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
   2007-06-11 21:53:06 UTC (rev 5304)
@@ -814,6 +814,7 @@
     protected static ResultList<? extends ResultItem> getSearchResult(
             final String id,
             final DataModel datamodel) throws InterruptedException {
+        
         synchronized (datamodel.getSearches()) {
             while (null == datamodel.getSearch(id)) {
                 // next line releases the monitor so it is possible to call 
this method from different threads

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigationCommand.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigationCommand.java
       2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NavigationCommand.java
       2007-06-11 21:53:06 UTC (rev 5304)
@@ -4,8 +4,10 @@
 import no.schibstedsok.searchportal.datamodel.generic.StringDataObjectSupport;
 import no.schibstedsok.searchportal.mode.config.NavigationCommandConfig;
 import no.schibstedsok.searchportal.result.BasicResultList;
+import no.schibstedsok.searchportal.result.BasicNavigationItem;
 import no.schibstedsok.searchportal.result.FastSearchResult;
 import no.schibstedsok.searchportal.result.Modifier;
+import no.schibstedsok.searchportal.result.NavigationItem;
 import no.schibstedsok.searchportal.result.ResultItem;
 import no.schibstedsok.searchportal.result.ResultList;
 import org.apache.log4j.Logger;
@@ -13,11 +15,9 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.ListIterator;
 import java.util.Set;
 
 /**
@@ -115,24 +115,39 @@
          * @param name the id of the navigator to get.
          * @return a list with extended navigators
          */
-        public NavigatorList getNavigators(String name) {
+        public NavigationItem getNavigators(final String name) {
+            
             NavigationCommandConfig.Nav navEntry = 
extendedNavigationConfig.getNavMap().get(name);
             try {
                 if (navEntry != null) {
                     boolean selectionDone = false;
                     StringDataObject selectedValue = 
context.getDataModel().getParameters().getValue(name);
-                    NavigatorList extendedNavigators = new NavigatorList(new 
ArrayList<ExtendedNavigator>());
+                    final NavigationItem extendedNavigators = new 
BasicNavigationItem();
                     FastSearchResult fsr = null;
+                    
                     if (navEntry.getCommandName() != null) {
-                        ResultList<? extends ResultItem> searchResult = 
getSearchResult(navEntry.getCommandName(), context.getDataModel());
+                        final ResultList<? extends ResultItem> searchResult 
+                                = getSearchResult(navEntry.getCommandName(), 
context.getDataModel());
+                        
                         if (searchResult instanceof FastSearchResult) {
                             fsr = (FastSearchResult) searchResult;
-                            List<Modifier> modifiers = 
fsr.getModifiers(navEntry.isRealNavigator() ? navEntry.getField() : name);
+                            final List<Modifier> modifiers = 
fsr.getModifiers(navEntry.isRealNavigator() 
+                                    ? navEntry.getField() 
+                                    : name);
+                            
                             if (modifiers != null && modifiers.size() > 0) {
                                 for (Modifier modifier : modifiers) {
-                                    final String navigatorName = 
modifier.getNavigator() == null ? null : modifier.getNavigator().getName();
-                                    final String urlFragment = 
getUrlFragment(navEntry, modifier.getName(), navigatorName);
-                                    final ExtendedNavigator navigator = new 
ExtendedNavigator(modifier.getName(), urlFragment, modifier.getCount());
+                                    
+                                    final String navigatorName = 
modifier.getNavigator() == null 
+                                            ? null 
+                                            : 
modifier.getNavigator().getName();
+                                    
+                                    final String urlFragment 
+                                            = getUrlFragment(navEntry, 
modifier.getName(), navigatorName);
+                                    
+                                    final NavigationItem navigator 
+                                            = new 
BasicNavigationItem(modifier.getName(), urlFragment, modifier.getCount());
+                                    
                                     if (!selectionDone) {
                                         selectedValue = 
context.getDataModel().getParameters().getValue(navEntry.getField());
                                         if (selectedValue != null && 
selectedValue.getString().equals(modifier.getName())) {
@@ -140,7 +155,7 @@
                                             selectionDone = true;
                                         }
                                     }
-                                    extendedNavigators.add(navigator);
+                                    extendedNavigators.addResult(navigator);
                                 }
                             }
                         }
@@ -159,20 +174,22 @@
         private void getOptionNavigators(
                 final NavigationCommandConfig.Nav navEntry,
                 final FastSearchResult fsr,
-                final List<ExtendedNavigator> extendedNavigators,
+                final NavigationItem extendedNavigators,
                 StringDataObject selectedValue) {
 
             // Only used by getNavigators. Mainly to split code.
-            if (extendedNavigators.size() > 0 && navEntry.getOptions().size() 
> 0) {
+            if (extendedNavigators.getResults().size() > 0 && 
navEntry.getOptions().size() > 0) {
+                
+                final List<NavigationItem> toRemove = new 
ArrayList<NavigationItem>();
+                
                 // Navigators already collected. Options is override
-                Iterator<ExtendedNavigator> it = extendedNavigators.iterator();
-                while (it.hasNext()) {
+                for (NavigationItem navigator : 
extendedNavigators.getResults()) {
                     boolean match = false;
-                    ExtendedNavigator navigator = it.next();
+                    
                     // Double loop to find match in two lists. Not nice, but 
it works.
                     for (NavigationCommandConfig.Option option : 
navEntry.getOptions()) {
-                        String value = option.getValue();
-                        if (navigator.name.equals(value)) {
+                        final String value = option.getValue();
+                        if (navigator.getTitle().equals(value)) {
                             match = true;
                             if (selectedValue == null && 
option.isDefaultSelect()) {
                                 navigator.setSelected(true);
@@ -184,12 +201,19 @@
                         }
                     }
                     if (!match) {
-                        it.remove();
+                        toRemove.add(navigator);
                     }
                 }
+                for(NavigationItem item : toRemove){
+                    extendedNavigators.removeResult(item);
+                }
+                
             } else {
-                final StringDataObject optionSelectedValue = 
context.getDataModel().getParameters().getValue(navEntry.getField());
+                final StringDataObject optionSelectedValue 
+                        = 
context.getDataModel().getParameters().getValue(navEntry.getField());
+                
                 for (NavigationCommandConfig.Option option : 
navEntry.getOptions()) {
+                    
                     String value = option.getValue();
                     if (option.getValueRef() != null && fsr != null) {
                         String tmp = fsr.getField(option.getValueRef());
@@ -198,8 +222,10 @@
                         }
                     }
                     if (value != null) {
-                        ExtendedNavigator navigator = new 
ExtendedNavigator(option.getDisplayName(), getUrlFragment(navEntry, value), -1);
-                        extendedNavigators.add(navigator);
+                        final NavigationItem navigator 
+                                = new 
BasicNavigationItem(option.getDisplayName(), getUrlFragment(navEntry, value), 
-1);
+                        
+                        extendedNavigators.addResult(navigator);
                         if (optionSelectedValue == null && 
option.isDefaultSelect()) {
                             navigator.setSelected(true);
                         } else if (optionSelectedValue != null && 
optionSelectedValue.getString().equals(value)) {
@@ -348,204 +374,4 @@
         }
     }
 
-    public static class NavigatorList implements List<ExtendedNavigator> {
-        private List<ExtendedNavigator> proxiedList;
-        private boolean dirty = true;
-        private ExtendedNavigator selectedItem;
-
-        public NavigatorList(List<ExtendedNavigator> proxiedList) {
-            this.proxiedList = proxiedList;
-        }
-
-        public ExtendedNavigator getChildSelected() {
-            findSelection();
-            return selectedItem;
-        }
-
-        private void findSelection() {
-            if (dirty) {
-                selectedItem = null;
-                for (ExtendedNavigator extendedNavigator : proxiedList) {
-                    if (extendedNavigator.isSelected()) {
-                        selectedItem = extendedNavigator;
-                        break;
-                    }
-                }
-            }
-            dirty = false;
-        }
-
-        public boolean isChildSelected() {
-            findSelection();
-            return selectedItem != null;
-        }
-
-        public int size() {
-            return proxiedList.size();
-        }
-
-        public boolean isEmpty() {
-            return proxiedList.isEmpty();
-        }
-
-        public boolean contains(Object o) {
-            return proxiedList.contains(o);
-        }
-
-        public Iterator<ExtendedNavigator> iterator() {
-            dirty = true;
-            return proxiedList.iterator();
-        }
-
-        public Object[] toArray() {
-            return proxiedList.toArray();
-        }
-
-        public <T> T[] toArray(T[] a) {
-            return proxiedList.toArray(a);
-        }
-
-        public boolean add(ExtendedNavigator t) {
-            dirty = true;
-            return proxiedList.add(t);
-        }
-
-        public boolean remove(Object o) {
-            return proxiedList.remove(o);
-        }
-
-        public boolean containsAll(Collection<?> c) {
-            return proxiedList.containsAll(c);
-        }
-
-        public boolean addAll(Collection<? extends ExtendedNavigator> c) {
-            dirty = true;
-            return proxiedList.addAll(c);
-        }
-
-        public boolean addAll(int index, Collection<? extends 
ExtendedNavigator> c) {
-            dirty = true;
-            return proxiedList.addAll(index, c);
-        }
-
-        public boolean removeAll(Collection<?> c) {
-            dirty = true;
-            return proxiedList.removeAll(c);
-        }
-
-        public boolean retainAll(Collection<?> c) {
-            dirty = true;
-            return proxiedList.retainAll(c);
-        }
-
-        public void clear() {
-            dirty = true;
-            proxiedList.clear();
-        }
-
-        public ExtendedNavigator get(int index) {
-            return proxiedList.get(index);
-        }
-
-        public ExtendedNavigator set(int index, ExtendedNavigator element) {
-            dirty = true;
-            return proxiedList.set(index, element);
-        }
-
-        public void add(int index, ExtendedNavigator element) {
-            dirty = true;
-            proxiedList.add(index, element);
-        }
-
-        public ExtendedNavigator remove(int index) {
-            dirty = true;
-            return proxiedList.remove(index);
-        }
-
-        public int indexOf(Object o) {
-            return proxiedList.indexOf(o);
-        }
-
-        public int lastIndexOf(Object o) {
-            return proxiedList.lastIndexOf(o);
-        }
-
-        public ListIterator<ExtendedNavigator> listIterator() {
-            dirty = true;
-            return proxiedList.listIterator();
-        }
-
-        public ListIterator<ExtendedNavigator> listIterator(int index) {
-            dirty = true;
-            return proxiedList.listIterator(index);
-        }
-
-        public List<ExtendedNavigator> subList(int fromIndex, int toIndex) {
-            return proxiedList.subList(fromIndex, toIndex);
-        }
-    }
-
-    /**
-     * This is the interface class to velocity.
-     */
-    public static final class ExtendedNavigator {
-
-        private String name;
-        private String urlFragment;
-        private int count;
-        private boolean selected = false;
-
-        /**
-         * @param displayName
-         * @param urlFragment
-         * @param count
-         */
-        public ExtendedNavigator(final String displayName, final String 
urlFragment, final int count) {
-            this.name = displayName;
-            this.urlFragment = urlFragment;
-            this.count = count;
-        }
-
-        /**
-         * @param selected
-         */
-        public void setSelected(final boolean selected) {
-            this.selected = selected;
-        }
-
-        /**
-         * @return
-         */
-        public boolean isSelected() {
-            return selected;
-        }
-
-        /**
-         * @return
-         */
-        public String getTitle() {
-            return name;
-        }
-
-        /**
-         * @param name
-         */
-        public void setTitle(final String name) {
-            this.name = name;
-        }
-
-        /**
-         * @return
-         */
-        public String getUrl() {
-            return urlFragment;
-        }
-
-        /**
-         * @return
-         */
-        public int getHitCount() {
-            return count;
-        }
-    }
 }

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/DataModelResultHandler.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/DataModelResultHandler.java
        2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/result/handler/DataModelResultHandler.java
        2007-06-11 21:53:06 UTC (rev 5304)
@@ -96,6 +96,7 @@
         // Update the datamodel
         final SearchDataObject searchDO = factory.instantiate(
                 SearchDataObject.class,
+                new DataObject.Property("configuration", 
cxt.getSearchConfiguration()),
                 new DataObject.Property("query", cxt.getQuery()),
                 new DataObject.Property("results", cxt.getSearchResult()),
                 new DataObject.Property("pager", pager));

Modified: 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/run/RunningQueryImpl.java
===================================================================
--- 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/run/RunningQueryImpl.java
 2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/core-api/src/main/java/no/schibstedsok/searchportal/run/RunningQueryImpl.java
 2007-06-11 21:53:06 UTC (rev 5304)
@@ -602,12 +602,16 @@
         }
         sources.removeAll(toRemove);
 
-        if (getSearchTab().getAbsoluteOrdering()) {
+        if (getSearchTab().isAbsoluteOrdering()) {
             Collections.sort(sources, Modifier.getHintPriorityComparator());
         } else {
             Collections.sort(sources);
         }
     }
+    
+    private void performNavigationHandling(){
+        
+    }
 
     /** Used by the constructor. **/
     private void initParameters(final RunningQuery.Context rqCxt){

Modified: trunk/data-model-api/pom.xml
===================================================================
--- trunk/data-model-api/pom.xml        2007-06-11 15:27:26 UTC (rev 5303)
+++ trunk/data-model-api/pom.xml        2007-06-11 21:53:06 UTC (rev 5304)
@@ -32,22 +32,6 @@
                  </execution>
                </executions>
              </plugin>
-             <!--plugin>
-                <groupId>com.thoughtworks.paranamer</groupId>
-                <artifactId>paranamer</artifactId>
-                <version>1.0-SNAPSHOT</version>
-                <executions>
-                    <execution>                                
-                        <goals>
-                            <goal>generate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
-                    
<outputDirectory>${basedir}/target/classes</outputDirectory>
-                </configuration>
-            </plugin-->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
@@ -80,6 +64,11 @@
         </dependency>
         <dependency>
             <groupId>schibstedsok</groupId>
+            <artifactId>search-portal-search-command-config-spi</artifactId>
+            <version>${version}</version>
+        </dependency>
+        <dependency>
+            <groupId>schibstedsok</groupId>
             <artifactId>search-portal-result-spi</artifactId>
             <version>${version}</version>
         </dependency> 

Modified: 
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/DataModel.java
===================================================================
--- 
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/DataModel.java
    2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/DataModel.java
    2007-06-11 21:53:06 UTC (rev 5304)
@@ -15,6 +15,7 @@
 import static no.schibstedsok.searchportal.datamodel.access.ControlLevel.*;
 import no.schibstedsok.searchportal.datamodel.access.AccessAllow;
 import no.schibstedsok.searchportal.datamodel.junkyard.JunkYardDataObject;
+import no.schibstedsok.searchportal.datamodel.navigation.NavigationDataObject;
 import no.schibstedsok.searchportal.datamodel.query.QueryDataObject;
 import no.schibstedsok.searchportal.datamodel.request.BrowserDataObject;
 import no.schibstedsok.searchportal.datamodel.request.ParametersDataObject;
@@ -132,12 +133,6 @@
      */
     Map<String,SearchDataObject> getSearches();
     
-//    /**
-//     * 
-//     * @param searches 
-//     */
-//    void setSearches(Map<String,SearchDataObject> searches);
-
     /**
      * 
      * @param key 
@@ -157,6 +152,20 @@
     @AccessAllow({DATA_MODEL_CONSTRUCTION, SEARCH_COMMAND_EXECUTION})
     void setSearch(final String key, final SearchDataObject value);
     
+    // NavigationDataObject 
------------------------------------------------------------
+    
+    /**
+     * 
+     * @return 
+     */
+    NavigationDataObject getNavigation();
+
+    /** 
+     * @param value 
+     */
+    @AccessAllow(DATA_MODEL_CONSTRUCTION)
+    void setNavigation(final NavigationDataObject value);
+    
     // JunkYardDataObject 
------------------------------------------------------------
 
     /** @return 

Modified: 
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/search/SearchDataObject.java
===================================================================
--- 
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/search/SearchDataObject.java
      2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/data-model-api/src/main/java/no/schibstedsok/searchportal/datamodel/search/SearchDataObject.java
      2007-06-11 21:53:06 UTC (rev 5304)
@@ -11,6 +11,7 @@
 import static no.schibstedsok.searchportal.datamodel.access.ControlLevel.*;
 import no.schibstedsok.searchportal.datamodel.generic.DataObject;
 import no.schibstedsok.searchportal.datamodel.query.QueryDataObject;
+import no.schibstedsok.searchportal.mode.config.SearchConfiguration;
 import no.schibstedsok.searchportal.result.PagingDisplayHelper;
 import no.schibstedsok.searchportal.result.ResultItem;
 import no.schibstedsok.searchportal.result.ResultList;
@@ -23,9 +24,10 @@
 @DataObject
 public interface SearchDataObject {
     
-//    SearchConfiguration getConfiguration();
-//    void setConfiguration(SearchConfiguration configuration);
+    SearchConfiguration getConfiguration();
     
+    void setConfiguration(SearchConfiguration configuration);
+    
     /**
      * 
      * @return 

Modified: 
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/BasicNavigationItem.java
===================================================================
--- 
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/BasicNavigationItem.java
 2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/BasicNavigationItem.java
 2007-06-11 21:53:06 UTC (rev 5304)
@@ -15,6 +15,8 @@
 public class BasicNavigationItem extends BasicResultList<NavigationItem> 
implements NavigationItem{
 
     private boolean selected = false;
+    
+    public BasicNavigationItem(){}
 
     /**
      * @param title

Modified: 
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/ResultItem.java
===================================================================
--- 
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/ResultItem.java
  2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/ResultItem.java
  2007-06-11 21:53:06 UTC (rev 5304)
@@ -31,6 +31,21 @@
      * @return 
      */
     ResultItem setUrl(String url);
+    
+    /** The title this result item represents.
+     * 
+     * @return 
+     */
+    String getTitle();
+    
+    /** Sets the title to the returned instance which is otherwise equal to 
this.
+     * There is no guarantee that this instance is altered.
+     * This allows implementations to be immutable if they choose to be.
+     * 
+     * @param url 
+     * @return 
+     */
+    ResultItem setTitle(String title);    
 
     /**
      * 

Modified: 
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NavigationCommandConfig.java
===================================================================
--- 
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NavigationCommandConfig.java
 2007-06-11 15:27:26 UTC (rev 5303)
+++ 
trunk/search-command-config-spi/src/main/java/no/schibstedsok/searchportal/mode/config/NavigationCommandConfig.java
 2007-06-11 21:53:06 UTC (rev 5304)
@@ -28,8 +28,10 @@
  * @author Geir H. Pettersen(T-Rank)
  */
 @Controller("NavigationCommand")
-public class NavigationCommandConfig extends CommandConfig {
+public final class NavigationCommandConfig extends CommandConfig {
+    
     private static final Logger LOG = 
Logger.getLogger(NavigationCommandConfig.class);
+    
     private ExtendedNavigationConfig extendedNavigationConfig;
     private static final String NAVIGATION_ELEMENT = "navigation";
     private static final String NAV_ELEMENT = "nav";
@@ -37,7 +39,7 @@
     public NavigationCommandConfig() {
     }
 
-    public NavigationCommandConfig(SearchConfiguration sc) {
+    public NavigationCommandConfig(final SearchConfiguration sc) {
         if (sc instanceof NavigationCommandConfig) {
             extendedNavigationConfig = ((NavigationCommandConfig) 
sc).getExtendedNavigationConfig();
         }
@@ -47,16 +49,17 @@
         return extendedNavigationConfig;
     }
 
-    public void setExtendedNavigationConfig(ExtendedNavigationConfig 
extendedNavigationConfig) {
+    public void setExtendedNavigationConfig(final ExtendedNavigationConfig 
extendedNavigationConfig) {
         this.extendedNavigationConfig = extendedNavigationConfig;
     }
 
-    private static List<Element> getDirectChildren(Element element, String 
elementName) {
-        ArrayList<Element> children = new ArrayList<Element>();
+    private static List<Element> getDirectChildren(final Element element, 
final String elementName) {
+        
+        final List<Element> children = new ArrayList<Element>();
         if (element != null) {
-            NodeList childNodes = element.getChildNodes();
+            final NodeList childNodes = element.getChildNodes();
             for (int i = 0; i < childNodes.getLength(); i++) {
-                Node childNode = childNodes.item(i);
+                final Node childNode = childNodes.item(i);
                 if (childNode instanceof Element && 
childNode.getNodeName().equals(elementName)) {
                     children.add((Element) childNode);
                 }
@@ -68,13 +71,14 @@
 
     @Override
     public CommandConfig readSearchConfiguration(final Element element, final 
SearchConfiguration inherit) {
+        
         super.readSearchConfiguration(element, inherit);
-        List<Element> navigationElements = getDirectChildren(element, 
NAVIGATION_ELEMENT);
-        HashMap<String, Nav> navMap = new HashMap<String, Nav>();
-        HashMap<String, Navigation> navigationMap = new HashMap<String, 
Navigation>();
-        List<Navigation> navigationList = new 
ArrayList<Navigation>(navigationElements.size());
+        final List<Element> navigationElements = getDirectChildren(element, 
NAVIGATION_ELEMENT);
+        final Map<String, Nav> navMap = new HashMap<String, Nav>();
+        final Map<String, Navigation> navigationMap = new HashMap<String, 
Navigation>();
+        final List<Navigation> navigationList = new 
ArrayList<Navigation>(navigationElements.size());
         for (Element navigationElement : navigationElements) {
-            Navigation navigation = new Navigation(navigationElement, navMap);
+            final Navigation navigation = new Navigation(navigationElement, 
navMap);
             navigationList.add(navigation);
             if (navigation.getId() != null) {
                 navigationMap.put(navigation.getId(), navigation);
@@ -88,21 +92,26 @@
      * Clients may want to access this config to get info on available 
navigations.
      */
     public static class ExtendedNavigationConfig {
-        private HashMap<String, Nav> navMap;
-        private HashMap<String, Navigation> navigationMap;
-        private List<Navigation> navigationList;
+        
+        private final Map<String, Nav> navMap;
+        private final Map<String, Navigation> navigationMap;
+        private final List<Navigation> navigationList;
 
-        public ExtendedNavigationConfig(HashMap<String, Nav> navMap, 
HashMap<String, Navigation> navigationMap, List<Navigation> navigationList) {
+        public ExtendedNavigationConfig(
+                final Map<String, Nav> navMap, 
+                final Map<String, Navigation> navigationMap, 
+                final List<Navigation> navigationList) {
+            
             this.navigationMap = navigationMap;
             this.navMap = navMap;
             this.navigationList = navigationList;
         }
 
-        public HashMap<String, Nav> getNavMap() {
+        public Map<String, Nav> getNavMap() {
             return navMap;
         }
 
-        public HashMap<String, Navigation> getNavigationMap() {
+        public Map<String, Navigation> getNavigationMap() {
             return navigationMap;
         }
 
@@ -112,19 +121,21 @@
     }
 
     public static class Navigation {
+        
         private String id;
         private String commandName;
         private String tab;
         private boolean out = false;
         private List<Nav> navList;
-        private HashMap<String, Nav> navMap;
+        private Map<String, Nav> navMap;
         private Set<String> resetNavSet;
         private static final String RESET_NAV_ELEMENT = "reset-nav";
 
         public Navigation() {
         }
 
-        public Navigation(Element navigationElement, HashMap<String, Nav> 
navMap) {
+        public Navigation(final Element navigationElement, final Map<String, 
Nav> navMap) {
+            
             AbstractDocumentFactory.fillBeanProperty(this, null, "id", 
ParseType.String, navigationElement, null);
             AbstractDocumentFactory.fillBeanProperty(this, null, 
"commandName", ParseType.String, navigationElement, null);
             AbstractDocumentFactory.fillBeanProperty(this, null, "tab", 
ParseType.String, navigationElement, null);
@@ -154,7 +165,7 @@
             }
         }
 
-        private void addReset(Nav nav) {
+        private void addReset(final Nav nav) {
             if (nav != null) {
                 resetNavSet.add(nav.getField());
                 if (nav.getChildNavs() != null) {
@@ -165,7 +176,7 @@
             }
         }
 
-        private void updateNavMap(Nav nav, HashMap<String, Nav> navMap) {
+        private void updateNavMap(final Nav nav, final Map<String, Nav> 
navMap) {
             navMap.put(nav.getId(), nav);
             if (nav.getChildNavs() != null && nav.getChildNavs().size() > 0) {
                 for (Nav subNav : nav.getChildNavs()) {
@@ -178,11 +189,11 @@
             return id;
         }
 
-        public void setId(String id) {
+        public void setId(final String id) {
             this.id = id;
         }
 
-        public HashMap<String, Nav> getNavMap() {
+        public Map<String, Nav> getNavMap() {
             return navMap;
         }
 
@@ -194,7 +205,7 @@
             return resetNavSet;
         }
 
-        public void setNavList(List<Nav> navList) {
+        public void setNavList(final List<Nav> navList) {
             this.navList = navList;
         }
 
@@ -202,7 +213,7 @@
             return tab;
         }
 
-        public void setTab(String tab) {
+        public void setTab(final String tab) {
             this.tab = tab;
         }
 
@@ -210,7 +221,7 @@
             return commandName;
         }
 
-        public void setCommandName(String commandName) {
+        public void setCommandName(final String commandName) {
             this.commandName = commandName;
         }
 
@@ -218,10 +229,11 @@
             return out;
         }
 
-        public void setOut(boolean out) {
+        public void setOut(final boolean out) {
             this.out = out;
         }
 
+        @Override
         public String toString() {
             return "\nNavigation{" +
                     "commandName='" + commandName + '\'' +
@@ -234,6 +246,7 @@
     }
 
     public static class Nav {
+        
         private static final String OPTION_ELEMENT = "option";
         private static final String STATIC_PARAMETER_ELEMENT = 
"static-parameter";
         private String id;
@@ -246,20 +259,46 @@
         private List<Option> options;
         private Map<String, String> staticParameters;
         private List<Nav> childNavs;
-        private Navigation navigation;
-        private Nav parentNav;
+        private final Navigation navigation;
+        private final Nav parentNav;
         private boolean excludeQuery = false;
 
-        private Nav(Nav parentNav, Navigation navigation, Element navElement) {
+        private Nav(final Nav parentNav, final Navigation navigation, final 
Element navElement) {
+            
             this.navigation = navigation;
             this.parentNav = parentNav;
-            AbstractDocumentFactory.fillBeanProperty(this, null, 
"commandName", ParseType.String, navElement, navigation.getCommandName());
-            AbstractDocumentFactory.fillBeanProperty(this, null, "id", 
ParseType.String, navElement, null);
-            AbstractDocumentFactory.fillBeanProperty(this, null, "field", 
ParseType.String, navElement, id);
-            AbstractDocumentFactory.fillBeanProperty(this, null, "tab", 
ParseType.String, navElement, navigation.getTab());
-            AbstractDocumentFactory.fillBeanProperty(this, null, "out", 
ParseType.Boolean, navElement, Boolean.toString(navigation.isOut()));
-            AbstractDocumentFactory.fillBeanProperty(this, null, 
"excludeQuery", ParseType.Boolean, navElement, "false");
-            AbstractDocumentFactory.fillBeanProperty(this, null, 
"realNavigator", ParseType.Boolean, navElement, "true");
+            
+            AbstractDocumentFactory.fillBeanProperty(
+                    this, 
+                    null, 
+                    "commandName", 
+                    ParseType.String, 
+                    navElement, 
+                    navigation.getCommandName());
+            
+            AbstractDocumentFactory
+                    .fillBeanProperty(this, null, "id", ParseType.String, 
navElement, null);
+            
+            AbstractDocumentFactory
+                    .fillBeanProperty(this, null, "field", ParseType.String, 
navElement, id);
+            
+            AbstractDocumentFactory
+                    .fillBeanProperty(this, null, "tab", ParseType.String, 
navElement, navigation.getTab());
+            
+            AbstractDocumentFactory.fillBeanProperty(
+                    this, 
+                    null, 
+                    "out", 
+                    ParseType.Boolean, 
+                    navElement, 
+                    Boolean.toString(navigation.isOut()));
+            
+            AbstractDocumentFactory
+                    .fillBeanProperty(this, null, "excludeQuery", 
ParseType.Boolean, navElement, "false");
+            
+            AbstractDocumentFactory
+                    .fillBeanProperty(this, null, "realNavigator", 
ParseType.Boolean, navElement, "true");
+            
 
             final List<Element> childNavElements = 
getDirectChildren(navElement, NAV_ELEMENT);
             if (childNavElements.size() > 0) {
@@ -284,7 +323,7 @@
             }
         }
 
-        private Nav(Navigation navigation, Element navElement) {
+        private Nav(final Navigation navigation, final Element navElement) {
             this(null, navigation, navElement);
         }
 
@@ -304,7 +343,7 @@
             return realNavigator;
         }
 
-        public void setRealNavigator(boolean realNavigator) {
+        public void setRealNavigator(final boolean realNavigator) {
             this.realNavigator = realNavigator;
         }
 
@@ -312,7 +351,7 @@
             return options;
         }
 
-        public void setOptions(List<Option> options) {
+        public void setOptions(final List<Option> options) {
             this.options = options;
         }
 
@@ -320,11 +359,11 @@
             return staticParameters;
         }
 
-        public void setStaticParameters(Map<String, String> staticParameters) {
+        public void setStaticParameters(final Map<String, String> 
staticParameters) {
             this.staticParameters = staticParameters;
         }
 
-        public void setExcludeQuery(boolean excludeQuery) {
+        public void setExcludeQuery(final boolean excludeQuery) {
             this.excludeQuery = excludeQuery;
         }
 
@@ -336,7 +375,7 @@
             return id;
         }
 
-        public void setId(String id) {
+        public void setId(final String id) {
             this.id = id;
         }
 
@@ -344,7 +383,7 @@
             return tab;
         }
 
-        public void setTab(String tab) {
+        public void setTab(final String tab) {
             this.tab = tab;
         }
 
@@ -352,7 +391,7 @@
             return out;
         }
 
-        public void setOut(boolean out) {
+        public void setOut(final boolean out) {
             this.out = out;
         }
 
@@ -360,7 +399,7 @@
             return commandName;
         }
 
-        public void setCommandName(String commandName) {
+        public void setCommandName(final String commandName) {
             this.commandName = commandName;
         }
 
@@ -368,11 +407,11 @@
             return field;
         }
 
-        public void setField(String field) {
+        public void setField(final String field) {
             this.field = field;
         }
 
-
+        @Override
         public String toString() {
             return "Nav{" +
                     "id='" + id + '\'' +

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to