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.jboss.seam.xml.model;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 
 
 public class PropertyXmlItem extends AbstractXmlItem
 {
    private final Property<Objectproperty;
    private final Class<?> fieldType;
    private final List<BeanResult<?>> inlineBeans = new ArrayList<BeanResult<?>>();
 
    private FieldValueObject fieldValue;
 
    public PropertyXmlItem(XmlItem parentProperty<ObjectpropertyString innerTextString documentint lineno)
    {
       this(parentpropertyinnerTextnulldocumentlineno);
    }
 
    public PropertyXmlItem(XmlItem parentProperty<ObjectpropertyString innerTextClass<?> overridenFieldTypeString documentint lineno)
    {
       super(.parentparent.getJavaClass(), innerTextnulldocumentlineno);
       this. = property;
       if (overridenFieldType == null)
       {
          this. = property.getJavaClass();
       }
       else
       {
          this. = overridenFieldType;
       }
       if (innerText != null && innerText.length() > 0)
       {
          FieldValue fv;
          if (innerText.matches("^#\\{.*\\}$"))
          {
             fv = new ELFieldValue(innerText);
          }
          else
          {
             fv = new ConstantFieldValue(innerText);
          }
           = new SimpleFieldValue(parent.getJavaClass(), propertyfv);
       }
       .add(new TypeOccuranceInformation(.nullnull));
       .add(new TypeOccuranceInformation(.nullnull));
       .add(new TypeOccuranceInformation(.nullnull));
    }
 
    {
       return ;
    }
 
    @Override
    public boolean resolveChildren(BeanManager manager)
    {
       List<EntryXmlItemmapEntries = new ArrayList<EntryXmlItem>();
      List<ValueXmlItemvalueEntries = new ArrayList<ValueXmlItem>();
      if ( == null)
      {
         for (XmlItem i : )
         {
            if (i.getType() == .)
            {
               valueEntries.add((ValueXmlItemi);
            }
            else if (i.getType() == .)
            {
               mapEntries.add((EntryXmlItemi);
            }
         }
      }
      if (!mapEntries.isEmpty() || !valueEntries.isEmpty())
      {
         if (Map.class.isAssignableFrom(getFieldType()))
         {
            if (!valueEntries.isEmpty())
            {
               throw new XmlConfigurationException("Map fields cannot have <value> elements as children,only <entry> elements Field:" + getDeclaringClass().getName() + '.' + getFieldName(), getDocument(), getLineno());
            }
            if (!mapEntries.isEmpty())
            {
               for (EntryXmlItem entry : mapEntries)
               {
                  // resolve inline beans if nessesary
                  Set<BeanResult<?>> beans = entry.getBeanResults(manager);
                  .addAll(beans);
               }
                = new MapFieldSet(mapEntries);
            }
         }
         else if (Collection.class.isAssignableFrom(getFieldType()) || getFieldType().isArray())
         {
            if (!mapEntries.isEmpty())
            {
               throw new XmlConfigurationException("Collection fields must be set using <value> not <entry> Field:" + getDeclaringClass().getName() + '.' + getFieldName(), getDocument(), getLineno());
            }
            if (!valueEntries.isEmpty())
            {
               for (ValueXmlItem value : valueEntries)
               {
                  // resolve inline beans if nessesary
                  BeanResult<?> result = value.getBeanResult(manager);
                  if (result != null)
                  {
                     .add(result);
                  }
               }
               if (getFieldType().isArray())
               {
                   = new ArrayFieldSet(valueEntries);
               }
               else
               {
                   = new CollectionFieldSet(valueEntries);
               }
            }
         }
         else
         {
            if (!mapEntries.isEmpty())
            {
               throw new XmlConfigurationException("Only Map fields can be set using <entry> Field:" + getDeclaringClass().getName() + '.' + getFieldName(), getDocument(), getLineno());
            }
            if (valueEntries.size() != 1)
            {
               throw new XmlConfigurationException("Non collection fields can only have a single <value> element Field:" + getDeclaringClass().getName() + '.' + getFieldName(), getDocument(), getLineno());
            }
            ValueXmlItem value = valueEntries.get(0);
            BeanResult<?> result = value.getBeanResult(manager);
             = new SimpleFieldValue(.getJavaClass(), value.getValue(), );
            if (result != null)
            {
               .add(result);
            }
         }
      }
      return true;
   }

   
Returns the field that corresponds to the property, or null if it does not exist

Returns:
   public Field getField()
   {
      if (.getMember() instanceof Field)
      {
         return (Field.getMember();
      }
      return org.jboss.seam.xml.util.Reflections.getField(.getJavaClass(), .getName());
   }
   {
      return ;
   }
   public Collection<? extends BeanResult<?>> getInlineBeans()
   {
      return ;
   }
   public Class<?> getDeclaringClass()
   {
      return .getDeclaringClass();
   }
   public String getFieldName()
   {
      return .getName();
   }
   public Class<?> getFieldType()
   {
      return ;
   }
   public Property<?> getProperty()
   {
      return ;
   }
New to GrepCode? Check out our FAQ X