Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2010, Red Hat, Inc. and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.richfaces.component;
 
 import java.util.Map;
 
 import  javax.faces.component.UIComponent;
 import  javax.faces.context.FacesContext;
 
 import  org.richfaces.log.Logger;
 import  org.richfaces.log.RichfacesLogger;
 
 import  com.google.common.collect.Iterables;

Author(s):
Nick Belaevski
 
     private static final Logger LOGGER = RichfacesLogger.COMPONENTS.getLogger();
     private String var;
     private FacesContext facesContext;
     private UIComponent rootComponent;
     private UIComponent currentComponent;
     private Map<StringObjectcontextMap;
     private Object modelData;
     private Object data;
 
     public DeclarativeTreeDataModelWalker(FacesContext facesContextAbstractTree rootComponent) {
         super();
 
         this. = rootComponent;
         this. = facesContext;
         this. = rootComponent.getVariablesMap(facesContext);
         this. = rootComponent.getVar();
         this. = rootComponent;
     }
 
     private void setupModelComponentContext(String modelId) {
         if ( instanceof TreeModelRecursiveAdaptor && modelId.equals(.getId())) {
             // currentComponent already set
              = ((TreeModelRecursiveAdaptor).getNodes();
         } else {
              = Iterables.find(.getChildren(), ComponentPredicates.withId(modelId));
             if ( instanceof TreeModelRecursiveAdaptor) {
                  = ((TreeModelRecursiveAdaptor).getRoots();
             } else {
                  = ((TreeModelAdaptor).getNodes();
             }
         }
     }
 
     private void setupDataModelContext(Object key) {
         if ( instanceof Iterable<?>) {
             Iterable<?> iterable = (Iterable<?>) ;
             Integer index = (Integerkey;
 
             if (index < Iterables.size(iterable)) {
                  = Iterables.get(iterableindex);
             } else {
                  = null;
             }
         } else {
              = ((Map<?, ?>) ).get(key);
         }
     }
 
     private void resetForDataNotAvailable() {
          = null;
          = ;
     }
 
     protected FacesContext getFacesContext() {
         return ;
     }
 
     protected UIComponent getRootComponent() {
         return ;
    }
    public UIComponent getCurrentComponent() {
        return ;
    }
    public Object getData() {
        return ;
    }
    public void walk(SequenceRowKey key) {
        Object initialContextValue = null;
        if ( != null) {
            initialContextValue = .remove();
        }
        try {
            for (Object simpleKey : key.getSimpleKeys()) {
                DeclarativeModelKey declarativeKey = (DeclarativeModelKeysimpleKey;
                if ( != null) {
                    .put();
                }
                setupModelComponentContext(declarativeKey.getModelId());
                if ( == null) {
                    resetForDataNotAvailable();
                    break;
                }
                setupDataModelContext(declarativeKey.getModelKey());
                if ( == null) {
                    resetForDataNotAvailable();
                    break;
                }
            }
        } finally {
            if ( != null) {
                try {
                    .put(initialContextValue);
                } catch (Exception e) {
                    .error(e.getMessage(), e);
                }
            }
        }
    }
New to GrepCode? Check out our FAQ X