com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.java Source code

Java tutorial

Introduction

Here is the source code for com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.java

Source

  package com.fasterxml.jackson.databind.introspect;

  import com.fasterxml.jackson.databind.AnnotationIntrospector;
  import com.fasterxml.jackson.databind.JavaType;
  import com.fasterxml.jackson.databind.MapperFeature;
  import com.fasterxml.jackson.databind.PropertyName;
  import com.fasterxml.jackson.databind.PropertyNamingStrategy;
  import com.fasterxml.jackson.databind.cfg.HandlerInstantiator;
  import com.fasterxml.jackson.databind.cfg.MapperConfig;
  import com.fasterxml.jackson.databind.util.BeanUtil;
  import com.fasterxml.jackson.databind.util.ClassUtil;
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.HashSet;
  import java.util.Iterator;
  import java.util.LinkedHashMap;
  import java.util.LinkedList;
  import java.util.List;
  import java.util.Map;
  import java.util.Map.Entry;
  import java.util.Set;
  import java.util.TreeMap;

  public class POJOPropertiesCollector {
      protected final AnnotationIntrospector _annotationIntrospector;
      protected LinkedList<AnnotatedMember> _anyGetters = null;
      protected LinkedList<AnnotatedMethod> _anySetters = null;
      protected final AnnotatedClass _classDef;
      protected final MapperConfig<?> _config;
      protected LinkedList<POJOPropertyBuilder> _creatorProperties = null;
      protected final boolean _forSerialization;
      protected HashSet<String> _ignoredPropertyNames;
      protected LinkedHashMap<Object, AnnotatedMember> _injectables;
      protected LinkedList<AnnotatedMethod> _jsonValueGetters = null;
      protected final String _mutatorPrefix;
      protected final LinkedHashMap<String, POJOPropertyBuilder> _properties = new LinkedHashMap();
      protected final JavaType _type;
      protected final VisibilityChecker<?> _visibilityChecker;

      protected POJOPropertiesCollector(MapperConfig<?> paramMapperConfig, boolean paramBoolean,
              JavaType paramJavaType, AnnotatedClass paramAnnotatedClass, String paramString) {
          this._config = paramMapperConfig;
          this._forSerialization = paramBoolean;
          this._type = paramJavaType;
          this._classDef = paramAnnotatedClass;
          if (paramString == null)
              paramString = "set";
          this._mutatorPrefix = paramString;
          boolean bool = paramMapperConfig.isAnnotationProcessingEnabled();
          AnnotationIntrospector localAnnotationIntrospector = null;
          if (bool)
              localAnnotationIntrospector = this._config.getAnnotationIntrospector();
          this._annotationIntrospector = localAnnotationIntrospector;
          if (this._annotationIntrospector == null) {
              this._visibilityChecker = this._config.getDefaultVisibilityChecker();
              return;
          }
          this._visibilityChecker = this._annotationIntrospector.findAutoDetectVisibility(paramAnnotatedClass,
                  this._config.getDefaultVisibilityChecker());
      }

      private void _addIgnored(String paramString) {
          if (!this._forSerialization) {
              if (this._ignoredPropertyNames == null)
                  this._ignoredPropertyNames = new HashSet();
              this._ignoredPropertyNames.add(paramString);
          }
      }

      private PropertyNamingStrategy _findNamingStrategy() {
          if (this._annotationIntrospector == null)
              ;
          for (Object localObject = null; localObject == null; localObject = this._annotationIntrospector
                  .findNamingStrategy(this._classDef))
              return this._config.getPropertyNamingStrategy();
          if ((localObject instanceof PropertyNamingStrategy))
              return (PropertyNamingStrategy) localObject;
          if (!(localObject instanceof Class))
              throw new IllegalStateException(
                      "AnnotationIntrospector returned PropertyNamingStrategy definition of type "
                              + localObject.getClass().getName()
                              + "; expected type PropertyNamingStrategy or Class<PropertyNamingStrategy> instead");
          Class localClass = (Class) localObject;
          if (!PropertyNamingStrategy.class.isAssignableFrom(localClass))
              throw new IllegalStateException("AnnotationIntrospector returned Class " + localClass.getName()
                      + "; expected Class<PropertyNamingStrategy>");
          HandlerInstantiator localHandlerInstantiator = this._config.getHandlerInstantiator();
          if (localHandlerInstantiator != null)
              return localHandlerInstantiator.namingStrategyInstance(this._config, this._classDef, localClass);
          return (PropertyNamingStrategy) ClassUtil.createInstance(localClass,
                  this._config.canOverrideAccessModifiers());
      }

protected void _addCreators()
{
  AnnotationIntrospector localAnnotationIntrospector = this._annotationIntrospector;
  if (localAnnotationIntrospector == null);
  label71: Iterator localIterator2;
  label143: 
  do
  {
    return;
    Iterator localIterator1 = this._classDef.getConstructors().iterator();
    if (localIterator1.hasNext())
    {
      AnnotatedConstructor localAnnotatedConstructor = (AnnotatedConstructor)localIterator1.next();
      if (this._creatorProperties == null)
        this._creatorProperties = new LinkedList();
      int k = localAnnotatedConstructor.getParameterCount();
      int m = 0;
      AnnotatedParameter localAnnotatedParameter2;
      PropertyName localPropertyName2;
      if (m < k)
      {
        localAnnotatedParameter2 = localAnnotatedConstructor.getParameter(m);
        localPropertyName2 = localAnnotationIntrospector.findNameForDeserialization(localAnnotatedParameter2);
        if (localPropertyName2 != null)
          break label143;
      }
      for (String str2 = null; ; str2 = localPropertyName2.getSimpleName())
      {
        if (str2 != null)
        {
          POJOPropertyBuilder localPOJOPropertyBuilder2 = _property(str2);
          localPOJOPropertyBuilder2.addCtor(localAnnotatedParameter2, str2, true, false);
          this._creatorProperties.add(localPOJOPropertyBuilder2);
        }
        m++;
        break label71;
        break;
      }
    }
    localIterator2 = this._classDef.getStaticMethods().iterator();
  }
  while (!localIterator2.hasNext());
  AnnotatedMethod localAnnotatedMethod = (AnnotatedMethod)localIterator2.next();
  if (this._creatorProperties == null)
    this._creatorProperties = new LinkedList();
  int i = localAnnotatedMethod.getParameterCount();
  int j = 0;
  label214: AnnotatedParameter localAnnotatedParameter1;
  PropertyName localPropertyName1;
  if (j < i)
  {
    localAnnotatedParameter1 = localAnnotatedMethod.getParameter(j);
    localPropertyName1 = localAnnotationIntrospector.findNameForDeserialization(localAnnotatedParameter1);
    if (localPropertyName1 != null)
      break label286;
  }
  label286: for (String str1 = null; ; str1 = localPropertyName1.getSimpleName())
  {
    if (str1 != null)
    {
      POJOPropertyBuilder localPOJOPropertyBuilder1 = _property(str1);
      localPOJOPropertyBuilder1.addCtor(localAnnotatedParameter1, str1, true, false);
      this._creatorProperties.add(localPOJOPropertyBuilder1);
    }
    j++;
    break label214;
    break;
  }
}

      protected void _addFields() {
          AnnotationIntrospector localAnnotationIntrospector = this._annotationIntrospector;
          Iterator localIterator = this._classDef.fields().iterator();
          AnnotatedField localAnnotatedField;
          String str;
          Object localObject1;
          if (localIterator.hasNext()) {
              localAnnotatedField = (AnnotatedField) localIterator.next();
              str = localAnnotatedField.getName();
              if (localAnnotationIntrospector == null) {
                  localObject1 = null;
                  label50: if (!"".equals(localObject1))
                      break label206;
              }
          }
          label72: label206: for (Object localObject2 = str;; localObject2 = localObject1) {
              boolean bool1;
              if (localObject2 != null) {
                  bool1 = true;
                  if (bool1)
                      break label199;
              }
              for (boolean bool2 = this._visibilityChecker.isFieldVisible(localAnnotatedField);; bool2 = bool1) {
                  if ((localAnnotationIntrospector != null)
                          && (localAnnotationIntrospector.hasIgnoreMarker(localAnnotatedField)))
                      ;
                  for (boolean bool3 = true;; bool3 = false) {
                      _property(str).addField(localAnnotatedField, (String) localObject2, bool2, bool3);
                      break;
                      if (this._forSerialization) {
                          PropertyName localPropertyName2 = localAnnotationIntrospector
                                  .findNameForSerialization(localAnnotatedField);
                          if (localPropertyName2 == null) {
                              localObject1 = null;
                              break label50;
                          }
                          localObject1 = localPropertyName2.getSimpleName();
                          break label50;
                      }
                      PropertyName localPropertyName1 = localAnnotationIntrospector
                              .findNameForDeserialization(localAnnotatedField);
                      if (localPropertyName1 == null) {
                          localObject1 = null;
                          break label50;
                      }
                      localObject1 = localPropertyName1.getSimpleName();
                      break label50;
                      bool1 = false;
                      break label72;
                  }
                  return;
              }
          }
      }

protected void _addGetterMethod(AnnotatedMethod paramAnnotatedMethod, AnnotationIntrospector paramAnnotationIntrospector)
{
  if (paramAnnotationIntrospector != null)
    if (paramAnnotationIntrospector.hasAnyGetterAnnotation(paramAnnotatedMethod))
    {
      if (this._anyGetters == null)
        this._anyGetters = new LinkedList();
      this._anyGetters.add(paramAnnotatedMethod);
    }
  PropertyName localPropertyName;
  Object localObject1;
  label89: String str2;
  String str3;
  do
  {
    return;
    if (paramAnnotationIntrospector.hasAsValueAnnotation(paramAnnotatedMethod))
    {
      if (this._jsonValueGetters == null)
        this._jsonValueGetters = new LinkedList();
      this._jsonValueGetters.add(paramAnnotatedMethod);
      return;
    }
    if (paramAnnotationIntrospector != null)
      break;
    localPropertyName = null;
    localObject1 = null;
    if (localPropertyName != null)
      break label177;
    if (localObject1 != null)
      break label209;
    str2 = BeanUtil.okNameForRegularGetter(paramAnnotatedMethod, paramAnnotatedMethod.getName());
    if (str2 != null)
      break label186;
    str3 = BeanUtil.okNameForIsGetter(paramAnnotatedMethod, paramAnnotatedMethod.getName());
  }
  while (str3 == null);
  boolean bool4 = this._visibilityChecker.isIsGetterVisible(paramAnnotatedMethod);
  Object localObject2 = str3;
  boolean bool1 = bool4;
  label144: if (paramAnnotationIntrospector == null);
  for (boolean bool2 = false; ; bool2 = paramAnnotationIntrospector.hasIgnoreMarker(paramAnnotatedMethod))
  {
    _property((String)localObject2).addGetter(paramAnnotatedMethod, (String)localObject1, bool1, bool2);
    return;
    localPropertyName = paramAnnotationIntrospector.findNameForSerialization(paramAnnotatedMethod);
    break;
    label177: localObject1 = localPropertyName.getSimpleName();
    break label89;
    label186: boolean bool3 = this._visibilityChecker.isGetterVisible(paramAnnotatedMethod);
    localObject2 = str2;
    bool1 = bool3;
    break label144;
    label209: String str1 = BeanUtil.okNameForGetter(paramAnnotatedMethod);
    if (str1 == null)
      str1 = paramAnnotatedMethod.getName();
    if (((String)localObject1).length() == 0)
      localObject1 = str1;
    bool1 = true;
    localObject2 = str1;
    break label144;
  }
}

      protected void _addInjectables() {
          AnnotationIntrospector localAnnotationIntrospector = this._annotationIntrospector;
          if (localAnnotationIntrospector == null)
              ;
          while (true) {
              return;
              Iterator localIterator1 = this._classDef.fields().iterator();
              while (localIterator1.hasNext()) {
                  AnnotatedField localAnnotatedField = (AnnotatedField) localIterator1.next();
                  _doAddInjectable(localAnnotationIntrospector.findInjectableValueId(localAnnotatedField),
                          localAnnotatedField);
              }
              Iterator localIterator2 = this._classDef.memberMethods().iterator();
              while (localIterator2.hasNext()) {
                  AnnotatedMethod localAnnotatedMethod = (AnnotatedMethod) localIterator2.next();
                  if (localAnnotatedMethod.getParameterCount() == 1)
                      _doAddInjectable(localAnnotationIntrospector.findInjectableValueId(localAnnotatedMethod),
                              localAnnotatedMethod);
              }
          }
      }

      protected void _addMethods() {
          AnnotationIntrospector localAnnotationIntrospector = this._annotationIntrospector;
          Iterator localIterator = this._classDef.memberMethods().iterator();
          while (localIterator.hasNext()) {
              AnnotatedMethod localAnnotatedMethod = (AnnotatedMethod) localIterator.next();
              int i = localAnnotatedMethod.getParameterCount();
              if (i == 0) {
                  _addGetterMethod(localAnnotatedMethod, localAnnotationIntrospector);
              } else if (i == 1) {
                  _addSetterMethod(localAnnotatedMethod, localAnnotationIntrospector);
              } else if ((i == 2) && (localAnnotationIntrospector != null)
                      && (localAnnotationIntrospector.hasAnySetterAnnotation(localAnnotatedMethod))) {
                  if (this._anySetters == null)
                      this._anySetters = new LinkedList();
                  this._anySetters.add(localAnnotatedMethod);
              }
          }
      }

protected void _addSetterMethod(AnnotatedMethod paramAnnotatedMethod, AnnotationIntrospector paramAnnotationIntrospector)
{
  PropertyName localPropertyName;
  Object localObject1;
  if (paramAnnotationIntrospector == null)
  {
    localPropertyName = null;
    localObject1 = null;
    if (localPropertyName != null)
      break label43;
  }
  label43: Object localObject2;
  boolean bool1;
  while (true)
    if (localObject1 == null)
    {
      String str2 = BeanUtil.okNameForMutator(paramAnnotatedMethod, this._mutatorPrefix);
      if (str2 == null)
      {
        return;
        localPropertyName = paramAnnotationIntrospector.findNameForDeserialization(paramAnnotatedMethod);
        break;
        localObject1 = localPropertyName.getSimpleName();
        continue;
      }
      boolean bool3 = this._visibilityChecker.isSetterVisible(paramAnnotatedMethod);
      localObject2 = str2;
      bool1 = bool3;
      if (paramAnnotationIntrospector != null)
        break label139;
    }
  label139: for (boolean bool2 = false; ; bool2 = paramAnnotationIntrospector.hasIgnoreMarker(paramAnnotatedMethod))
  {
    _property((String)localObject2).addSetter(paramAnnotatedMethod, (String)localObject1, bool1, bool2);
    return;
    String str1 = BeanUtil.okNameForMutator(paramAnnotatedMethod, this._mutatorPrefix);
    if (str1 == null)
      str1 = paramAnnotatedMethod.getName();
    if (((String)localObject1).length() == 0)
      localObject1 = str1;
    bool1 = true;
    localObject2 = str1;
    break;
  }
}

      protected void _doAddInjectable(Object paramObject, AnnotatedMember paramAnnotatedMember) {
          if (paramObject == null)
              ;
          do {
              return;
              if (this._injectables == null)
                  this._injectables = new LinkedHashMap();
          } while ((AnnotatedMember) this._injectables.put(paramObject, paramAnnotatedMember) == null);
          if (paramObject == null)
              ;
          for (String str = "[null]";; str = paramObject.getClass().getName())
              throw new IllegalArgumentException("Duplicate injectable value with id '" + String.valueOf(paramObject)
                      + "' (of type " + str + ")");
      }

      protected POJOPropertyBuilder _property(String paramString) {
          POJOPropertyBuilder localPOJOPropertyBuilder = (POJOPropertyBuilder) this._properties.get(paramString);
          if (localPOJOPropertyBuilder == null) {
              localPOJOPropertyBuilder = new POJOPropertyBuilder(paramString, this._annotationIntrospector,
                      this._forSerialization);
              this._properties.put(paramString, localPOJOPropertyBuilder);
          }
          return localPOJOPropertyBuilder;
      }

      protected void _removeUnwantedProperties() {
          Iterator localIterator = this._properties.entrySet().iterator();
          while (localIterator.hasNext()) {
              POJOPropertyBuilder localPOJOPropertyBuilder = (POJOPropertyBuilder) ((Map.Entry) localIterator.next())
                      .getValue();
              if (!localPOJOPropertyBuilder.anyVisible())
                  localIterator.remove();
              else if (localPOJOPropertyBuilder.anyIgnorals()) {
                  if (!localPOJOPropertyBuilder.isExplicitlyIncluded()) {
                      localIterator.remove();
                      _addIgnored(localPOJOPropertyBuilder.getName());
                  } else {
                      localPOJOPropertyBuilder.removeIgnored();
                      if ((!this._forSerialization) && (!localPOJOPropertyBuilder.couldDeserialize()))
                          _addIgnored(localPOJOPropertyBuilder.getName());
                  }
              } else
                  localPOJOPropertyBuilder.removeNonVisible();
          }
      }

      protected void _renameProperties() {
          Iterator localIterator1 = this._properties.entrySet().iterator();
          LinkedList localLinkedList = null;
          while (localIterator1.hasNext()) {
              POJOPropertyBuilder localPOJOPropertyBuilder3 = (POJOPropertyBuilder) ((Map.Entry) localIterator1
                      .next()).getValue();
              String str2 = localPOJOPropertyBuilder3.findNewName();
              if (str2 != null) {
                  if (localLinkedList == null)
                      localLinkedList = new LinkedList();
                  localLinkedList.add(localPOJOPropertyBuilder3.withName(str2));
                  localIterator1.remove();
              }
          }
          if (localLinkedList != null) {
              Iterator localIterator2 = localLinkedList.iterator();
              while (localIterator2.hasNext()) {
                  POJOPropertyBuilder localPOJOPropertyBuilder1 = (POJOPropertyBuilder) localIterator2.next();
                  String str1 = localPOJOPropertyBuilder1.getName();
                  POJOPropertyBuilder localPOJOPropertyBuilder2 = (POJOPropertyBuilder) this._properties.get(str1);
                  if (localPOJOPropertyBuilder2 == null)
                      this._properties.put(str1, localPOJOPropertyBuilder1);
                  else
                      localPOJOPropertyBuilder2.addAll(localPOJOPropertyBuilder1);
              }
          }
      }

      protected void _renameUsing(PropertyNamingStrategy paramPropertyNamingStrategy) {
          POJOPropertyBuilder[] arrayOfPOJOPropertyBuilder = (POJOPropertyBuilder[]) this._properties.values()
                  .toArray(new POJOPropertyBuilder[this._properties.size()]);
          this._properties.clear();
          int i = arrayOfPOJOPropertyBuilder.length;
          int j = 0;
          POJOPropertyBuilder localPOJOPropertyBuilder1;
          String str1;
          String str2;
          if (j < i) {
              localPOJOPropertyBuilder1 = arrayOfPOJOPropertyBuilder[j];
              str1 = localPOJOPropertyBuilder1.getName();
              if (this._forSerialization)
                  if (localPOJOPropertyBuilder1.hasGetter())
                      str2 = paramPropertyNamingStrategy.nameForGetterMethod(this._config,
                              localPOJOPropertyBuilder1.getGetter(), str1);
          }
          while (true) {
              label90: if (!str2.equals(localPOJOPropertyBuilder1.getName()))
                  localPOJOPropertyBuilder1 = localPOJOPropertyBuilder1.withName(str2);
              POJOPropertyBuilder localPOJOPropertyBuilder2 = (POJOPropertyBuilder) this._properties.get(str2);
              if (localPOJOPropertyBuilder2 == null)
                  this._properties.put(str2, localPOJOPropertyBuilder1);
              while (true) {
                  j++;
                  break;
                  if (!localPOJOPropertyBuilder1.hasField())
                      break label300;
                  str2 = paramPropertyNamingStrategy.nameForField(this._config, localPOJOPropertyBuilder1.getField(),
                          str1);
                  break label90;
                  if (localPOJOPropertyBuilder1.hasSetter()) {
                      str2 = paramPropertyNamingStrategy.nameForSetterMethod(this._config,
                              localPOJOPropertyBuilder1.getSetter(), str1);
                      break label90;
                  }
                  if (localPOJOPropertyBuilder1.hasConstructorParameter()) {
                      str2 = paramPropertyNamingStrategy.nameForConstructorParameter(this._config,
                              localPOJOPropertyBuilder1.getConstructorParameter(), str1);
                      break label90;
                  }
                  if (localPOJOPropertyBuilder1.hasField()) {
                      str2 = paramPropertyNamingStrategy.nameForField(this._config,
                              localPOJOPropertyBuilder1.getField(), str1);
                      break label90;
                  }
                  if (!localPOJOPropertyBuilder1.hasGetter())
                      break label300;
                  str2 = paramPropertyNamingStrategy.nameForGetterMethod(this._config,
                          localPOJOPropertyBuilder1.getGetter(), str1);
                  break label90;
                  localPOJOPropertyBuilder2.addAll(localPOJOPropertyBuilder1);
              }
              return;
              label300: str2 = str1;
          }
      }

      protected void _renameWithWrappers() {
          Iterator localIterator1 = this._properties.entrySet().iterator();
          LinkedList localLinkedList = null;
          while (localIterator1.hasNext()) {
              POJOPropertyBuilder localPOJOPropertyBuilder3 = (POJOPropertyBuilder) ((Map.Entry) localIterator1
                      .next()).getValue();
              AnnotatedMember localAnnotatedMember = localPOJOPropertyBuilder3.getPrimaryMember();
              if (localAnnotatedMember != null) {
                  PropertyName localPropertyName = this._annotationIntrospector.findWrapperName(localAnnotatedMember);
                  if ((localPropertyName != null) && (localPropertyName.hasSimpleName())) {
                      String str2 = localPropertyName.getSimpleName();
                      if (!str2.equals(localPOJOPropertyBuilder3.getName())) {
                          if (localLinkedList == null)
                              localLinkedList = new LinkedList();
                          localLinkedList.add(localPOJOPropertyBuilder3.withName(str2));
                          localIterator1.remove();
                      }
                  }
              }
          }
          if (localLinkedList != null) {
              Iterator localIterator2 = localLinkedList.iterator();
              while (localIterator2.hasNext()) {
                  POJOPropertyBuilder localPOJOPropertyBuilder1 = (POJOPropertyBuilder) localIterator2.next();
                  String str1 = localPOJOPropertyBuilder1.getName();
                  POJOPropertyBuilder localPOJOPropertyBuilder2 = (POJOPropertyBuilder) this._properties.get(str1);
                  if (localPOJOPropertyBuilder2 == null)
                      this._properties.put(str1, localPOJOPropertyBuilder1);
                  else
                      localPOJOPropertyBuilder2.addAll(localPOJOPropertyBuilder1);
              }
          }
      }

protected void _sortProperties()
{
  AnnotationIntrospector localAnnotationIntrospector = this._annotationIntrospector;
  Boolean localBoolean;
  boolean bool;
  if (localAnnotationIntrospector == null)
  {
    localBoolean = null;
    if (localBoolean != null)
      break label59;
    bool = this._config.shouldSortPropertiesAlphabetically();
    label23: if (localAnnotationIntrospector != null)
      break label67;
  }
  label59: label67: for (String[] arrayOfString = null; ; arrayOfString = localAnnotationIntrospector.findSerializationPropertyOrder(this._classDef))
  {
    if ((bool) || (this._creatorProperties != null) || (arrayOfString != null))
      break label80;
    return;
    localBoolean = localAnnotationIntrospector.findSerializationSortAlphabetically(this._classDef);
    break;
    bool = localBoolean.booleanValue();
    break label23;
  }
  label80: int i = this._properties.size();
  if (bool);
  for (Object localObject1 = new TreeMap(); ; localObject1 = new LinkedHashMap(i + i))
  {
    Iterator localIterator1 = this._properties.values().iterator();
    while (localIterator1.hasNext())
    {
      POJOPropertyBuilder localPOJOPropertyBuilder3 = (POJOPropertyBuilder)localIterator1.next();
      ((Map)localObject1).put(localPOJOPropertyBuilder3.getName(), localPOJOPropertyBuilder3);
    }
  }
  LinkedHashMap localLinkedHashMap = new LinkedHashMap(i + i);
  int k;
  String str1;
  Object localObject2;
  String str2;
  if (arrayOfString != null)
  {
    int j = arrayOfString.length;
    k = 0;
    if (k < j)
    {
      str1 = arrayOfString[k];
      localObject2 = (POJOPropertyBuilder)((Map)localObject1).get(str1);
      if (localObject2 != null)
        break label398;
      Iterator localIterator3 = this._properties.values().iterator();
      while (localIterator3.hasNext())
      {
        POJOPropertyBuilder localPOJOPropertyBuilder2 = (POJOPropertyBuilder)localIterator3.next();
        if (str1.equals(localPOJOPropertyBuilder2.getInternalName()))
        {
          str2 = localPOJOPropertyBuilder2.getName();
          localObject2 = localPOJOPropertyBuilder2;
        }
      }
    }
  }
  while (true)
  {
    if (localObject2 != null)
      localLinkedHashMap.put(str2, localObject2);
    k++;
    break;
    if (this._creatorProperties != null)
    {
      Iterator localIterator2 = this._creatorProperties.iterator();
      while (localIterator2.hasNext())
      {
        POJOPropertyBuilder localPOJOPropertyBuilder1 = (POJOPropertyBuilder)localIterator2.next();
        localLinkedHashMap.put(localPOJOPropertyBuilder1.getName(), localPOJOPropertyBuilder1);
      }
    }
    localLinkedHashMap.putAll((Map)localObject1);
    this._properties.clear();
    this._properties.putAll(localLinkedHashMap);
    return;
    label398: str2 = str1;
  }
}

      public POJOPropertiesCollector collect() {
          this._properties.clear();
          _addFields();
          _addMethods();
          _addCreators();
          _addInjectables();
          _removeUnwantedProperties();
          _renameProperties();
          PropertyNamingStrategy localPropertyNamingStrategy = _findNamingStrategy();
          if (localPropertyNamingStrategy != null)
              _renameUsing(localPropertyNamingStrategy);
          Iterator localIterator1 = this._properties.values().iterator();
          while (localIterator1.hasNext())
              ((POJOPropertyBuilder) localIterator1.next()).trimByVisibility();
          Iterator localIterator2 = this._properties.values().iterator();
          while (localIterator2.hasNext())
              ((POJOPropertyBuilder) localIterator2.next()).mergeAnnotations(this._forSerialization);
          if (this._config.isEnabled(MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME))
              _renameWithWrappers();
          _sortProperties();
          return this;
      }

      public AnnotatedMember getAnyGetter() {
          if (this._anyGetters != null) {
              if (this._anyGetters.size() > 1)
                  reportProblem("Multiple 'any-getters' defined (" + this._anyGetters.get(0) + " vs "
                          + this._anyGetters.get(1) + ")");
              return (AnnotatedMember) this._anyGetters.getFirst();
          }
          return null;
      }

      public AnnotatedMethod getAnySetterMethod() {
          if (this._anySetters != null) {
              if (this._anySetters.size() > 1)
                  reportProblem("Multiple 'any-setters' defined (" + this._anySetters.get(0) + " vs "
                          + this._anySetters.get(1) + ")");
              return (AnnotatedMethod) this._anySetters.getFirst();
          }
          return null;
      }

      public AnnotatedClass getClassDef() {
          return this._classDef;
      }

      public MapperConfig<?> getConfig() {
          return this._config;
      }

      public Set<String> getIgnoredPropertyNames() {
          return this._ignoredPropertyNames;
      }

      public Map<Object, AnnotatedMember> getInjectables() {
          return this._injectables;
      }

      public AnnotatedMethod getJsonValueMethod() {
          if (this._jsonValueGetters != null) {
              if (this._jsonValueGetters.size() > 1)
                  reportProblem("Multiple value properties defined (" + this._jsonValueGetters.get(0) + " vs "
                          + this._jsonValueGetters.get(1) + ")");
              return (AnnotatedMethod) this._jsonValueGetters.get(0);
          }
          return null;
      }

      public ObjectIdInfo getObjectIdInfo() {
          ObjectIdInfo localObjectIdInfo;
          if (this._annotationIntrospector == null)
              localObjectIdInfo = null;
          do {
              return localObjectIdInfo;
              localObjectIdInfo = this._annotationIntrospector.findObjectIdInfo(this._classDef);
          } while (localObjectIdInfo == null);
          return this._annotationIntrospector.findObjectReferenceInfo(this._classDef, localObjectIdInfo);
      }

      public List<BeanPropertyDefinition> getProperties() {
          return new ArrayList(this._properties.values());
      }

      public JavaType getType() {
          return this._type;
      }

      protected void reportProblem(String paramString) {
          throw new IllegalArgumentException("Problem with definition of " + this._classDef + ": " + paramString);
      }
  }

  /* Location:           /Users/dantheman/src/fffffffffattttt/basis/classes_dex2jar.jar
   * Qualified Name:     com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector
   * JD-Core Version:    0.6.2
   */