public void resolve(DeserializationContext paramDeserializationContext) { if (this._valueInstantiator.canCreateUsingDelegate()) { JavaType localJavaType = this._valueInstantiator.getDelegateType(paramDeserializationContext.getConfig()); if (localJavaType == null) throw new IllegalArgumentException("Invalid delegate-creator definition for " + this._mapType + ": value instantiator (" + this._valueInstantiator.getClass().getName() + ") returned true for 'canCreateUsingDelegate()', but null for 'getDelegateType()'"); this._delegateDeserializer = findDeserializer(paramDeserializationContext, localJavaType, null); } if (this._valueInstantiator.canCreateFromObjectWith()) { SettableBeanProperty[] arrayOfSettableBeanProperty = this._valueInstantiator.getFromObjectArguments(paramDeserializationContext.getConfig()); this._propertyBasedCreator = PropertyBasedCreator.construct(paramDeserializationContext, this._valueInstantiator, arrayOfSettableBeanProperty); } this._standardStringKey = _isStdKeyDeser(this._mapType, this._keyDeserializer); }
public BeanPropertyMap(Collection<SettableBeanProperty> paramCollection) { this._size = paramCollection.size(); int i = findSize(this._size); this._hashMask = (i - 1); Bucket[] arrayOfBucket = new Bucket[i]; Iterator localIterator = paramCollection.iterator(); while (localIterator.hasNext()) { SettableBeanProperty localSettableBeanProperty = (SettableBeanProperty)localIterator.next(); String str = localSettableBeanProperty.getName(); int j = str.hashCode() & this._hashMask; Bucket localBucket = arrayOfBucket[j]; int k = this._nextBucketIndex; this._nextBucketIndex = (k + 1); arrayOfBucket[j] = new Bucket(localBucket, str, localSettableBeanProperty, k); } this._buckets = arrayOfBucket; }
public final SettableBeanProperty find(String paramString) { int i = paramString.hashCode() & this._hashMask; Bucket localBucket1 = this._buckets[i]; Object localObject = localBucket1; if (localBucket1 == null) return null; if (((Bucket)localObject).key == paramString) return ((Bucket)localObject).value; do { Bucket localBucket2 = ((Bucket)localObject).next; localObject = localBucket2; if (localBucket2 == null) break; } while (((Bucket)localObject).key != paramString); return ((Bucket)localObject).value; return _findWithEquals(paramString, i); }
public final BeanPropertyMap renameAll(NameTransformer paramNameTransformer) { if ((paramNameTransformer == null) || (paramNameTransformer == NameTransformer.NOP)) return this; Iterator localIterator = iterator(); ArrayList localArrayList = new ArrayList(); while (localIterator.hasNext()) { SettableBeanProperty localSettableBeanProperty1 = (SettableBeanProperty)localIterator.next(); SettableBeanProperty localSettableBeanProperty2 = localSettableBeanProperty1.withName(paramNameTransformer.transform(localSettableBeanProperty1.getName())); SettableBeanProperty localSettableBeanProperty3 = localSettableBeanProperty2; JsonDeserializer localJsonDeserializer1 = localSettableBeanProperty2.getValueDeserializer(); if (localJsonDeserializer1 != null) { JsonDeserializer localJsonDeserializer2 = localJsonDeserializer1.unwrappingDeserializer(paramNameTransformer); if (localJsonDeserializer2 != localJsonDeserializer1) localSettableBeanProperty3 = localSettableBeanProperty3.withValueDeserializer(localJsonDeserializer2); } localArrayList.add(localSettableBeanProperty3); } return new BeanPropertyMap(localArrayList); }
public final String toString() { StringBuilder localStringBuilder = new StringBuilder(); localStringBuilder.append("Properties=["); int i = 0; for (SettableBeanProperty localSettableBeanProperty : getPropertiesInInsertionOrder()) if (localSettableBeanProperty != null) { int m = i; i++; if (m > 0) localStringBuilder.append(", "); localStringBuilder.append(localSettableBeanProperty.getName()); localStringBuilder.append('('); localStringBuilder.append(localSettableBeanProperty.getType()); localStringBuilder.append(')'); } localStringBuilder.append(']'); return localStringBuilder.toString(); }
public final BeanPropertyMap withProperty(SettableBeanProperty paramSettableBeanProperty) { int i = this._buckets.length; Bucket[] arrayOfBucket = new Bucket[i]; System.arraycopy(this._buckets, 0, arrayOfBucket, 0, i); String str = paramSettableBeanProperty.getName(); if (find(paramSettableBeanProperty.getName()) == null) { int j = str.hashCode() & this._hashMask; Bucket localBucket = arrayOfBucket[j]; int k = this._nextBucketIndex; this._nextBucketIndex = (k + 1); arrayOfBucket[j] = new Bucket(localBucket, str, paramSettableBeanProperty, k); return new BeanPropertyMap(arrayOfBucket, 1 + this._size, this._nextBucketIndex); } BeanPropertyMap localBeanPropertyMap = new BeanPropertyMap(arrayOfBucket, i, this._nextBucketIndex); localBeanPropertyMap.replace(paramSettableBeanProperty); return localBeanPropertyMap; }
public final SettableBeanProperty next() { BeanPropertyMap.Bucket localBucket1 = this._currentBucket; if (localBucket1 == null) throw new NoSuchElementException(); BeanPropertyMap.Bucket[] arrayOfBucket; int i; for (BeanPropertyMap.Bucket localBucket2 = localBucket1.next; (localBucket2 == null) && (this._nextBucketIndex < this._buckets.length); localBucket2 = arrayOfBucket[i]) { arrayOfBucket = this._buckets; i = this._nextBucketIndex; this._nextBucketIndex = (i + 1); } this._currentBucket = localBucket2; return localBucket1.value; }
protected PropertyBasedCreator(ValueInstantiator paramValueInstantiator, SettableBeanProperty[] paramArrayOfSettableBeanProperty, Object[] paramArrayOfObject) { this._valueInstantiator = paramValueInstantiator; this._properties = new HashMap(); SettableBeanProperty[] arrayOfSettableBeanProperty = null; int i = paramArrayOfSettableBeanProperty.length; this._propertyCount = i; for (int j = 0; j < i; j++) { SettableBeanProperty localSettableBeanProperty = paramArrayOfSettableBeanProperty[j]; this._properties.put(localSettableBeanProperty.getName(), localSettableBeanProperty); if (localSettableBeanProperty.getInjectableValueId() != null) { if (arrayOfSettableBeanProperty == null) arrayOfSettableBeanProperty = new SettableBeanProperty[i]; arrayOfSettableBeanProperty[j] = localSettableBeanProperty; } } this._defaultValues = paramArrayOfObject; this._propertiesWithInjectables = arrayOfSettableBeanProperty; }
public UnwrappedPropertyHandler renameAll(NameTransformer paramNameTransformer) { ArrayList localArrayList = new ArrayList(this._properties.size()); Iterator localIterator = this._properties.iterator(); while (localIterator.hasNext()) { SettableBeanProperty localSettableBeanProperty1 = (SettableBeanProperty)localIterator.next(); SettableBeanProperty localSettableBeanProperty2 = localSettableBeanProperty1.withName(paramNameTransformer.transform(localSettableBeanProperty1.getName())); SettableBeanProperty localSettableBeanProperty3 = localSettableBeanProperty2; JsonDeserializer localJsonDeserializer1 = localSettableBeanProperty2.getValueDeserializer(); if (localJsonDeserializer1 != null) { JsonDeserializer localJsonDeserializer2 = localJsonDeserializer1.unwrappingDeserializer(paramNameTransformer); if (localJsonDeserializer2 != localJsonDeserializer1) localSettableBeanProperty3 = localSettableBeanProperty3.withValueDeserializer(localJsonDeserializer2); } localArrayList.add(localSettableBeanProperty3); } return new UnwrappedPropertyHandler(localArrayList); }
/** * Fluent copy method that creates a new instance that is a copy * of this instance except for one additional property that is * passed as the argument. * Note that method does not modify this instance but constructs * and returns a new one. * * @since 2.0 */ public BeanPropertyMap withProperty(SettableBeanProperty newProperty) { // first things first: can just copy hash area: final int bcount = _buckets.length; Bucket[] newBuckets = new Bucket[bcount]; System.arraycopy(_buckets, 0, newBuckets, 0, bcount); final String propName = newProperty.getName(); // and then see if it's add or replace: SettableBeanProperty oldProp = find(newProperty.getName()); if (oldProp == null) { // add // first things first: add or replace? // can do a straight copy, since all additions are at the front // and then insert the new property: int index = propName.hashCode() & _hashMask; newBuckets[index] = new Bucket(newBuckets[index], propName, newProperty, _nextBucketIndex++); return new BeanPropertyMap(newBuckets, _size+1, _nextBucketIndex); } // replace: easy, close + replace BeanPropertyMap newMap = new BeanPropertyMap(newBuckets, bcount, _nextBucketIndex); newMap.replace(newProperty); return newMap; }
/** * Factory method for constructing a map where all entries use given * prefix */ public BeanPropertyMap renameAll(NameTransformer transformer) { if (transformer == null || (transformer == NameTransformer.NOP)) { return this; } Iterator<SettableBeanProperty> it = iterator(); ArrayList<SettableBeanProperty> newProps = new ArrayList<SettableBeanProperty>(); while (it.hasNext()) { SettableBeanProperty prop = it.next(); String newName = transformer.transform(prop.getName()); prop = prop.withName(newName); JsonDeserializer<?> deser = prop.getValueDeserializer(); if (deser != null) { @SuppressWarnings("unchecked") JsonDeserializer<Object> newDeser = (JsonDeserializer<Object>) deser.unwrappingDeserializer(transformer); if (newDeser != deser) { prop = prop.withValueDeserializer(newDeser); } } newProps.add(prop); } // should we try to re-index? Ordering probably changed but called probably doesn't want changes... return new BeanPropertyMap(newProps); }
public SettableBeanProperty find(String key) { int index = key.hashCode() & _hashMask; Bucket bucket = _buckets[index]; // Let's unroll first lookup since that is null or match in 90+% cases if (bucket == null) { return null; } // Primarily we do just identity comparison as keys should be interned if (bucket.key == key) { return bucket.value; } while ((bucket = bucket.next) != null) { if (bucket.key == key) { return bucket.value; } } // Do we need fallback for non-interned Strings? return _findWithEquals(key, index); }
/** * Specialized method for removing specified existing entry. * NOTE: entry MUST exist, otherwise an exception is thrown. */ public void remove(SettableBeanProperty property) { // Mostly this is the same as code with 'replace', just bit simpler... String name = property.getName(); int index = name.hashCode() & (_buckets.length-1); Bucket tail = null; boolean found = false; // slightly complex just because chain is immutable, must recreate for (Bucket bucket = _buckets[index]; bucket != null; bucket = bucket.next) { // match to remove? if (!found && bucket.key.equals(name)) { found = true; } else { tail = new Bucket(tail, bucket.key, bucket.value, bucket.index); } } if (!found) { // must be found throw new NoSuchElementException("No entry '"+property+"' found, can't remove"); } _buckets[index] = tail; }
/** * Helper method called to handle Object Id value collected earlier, if any */ public Object handleIdValue(final DeserializationContext ctxt, Object bean) throws IOException { if (_objectIdReader != null) { if (_idValue != null) { ReadableObjectId roid = ctxt.findObjectId(_idValue, _objectIdReader.generator); roid.bindItem(bean); // also: may need to set a property value as well SettableBeanProperty idProp = _objectIdReader.idProperty; if (idProp != null) { return idProp.setAndReturn(bean, _idValue); } } else { // TODO: is this an error case? } } return bean; }
protected PropertyBasedCreator(ValueInstantiator valueInstantiator, SettableBeanProperty[] creatorProps, Object[] defaultValues) { _valueInstantiator = valueInstantiator; _properties = new HashMap<String, SettableBeanProperty>(); SettableBeanProperty[] propertiesWithInjectables = null; final int len = creatorProps.length; _propertyCount = len; for (int i = 0; i < len; ++i) { SettableBeanProperty prop = creatorProps[i]; _properties.put(prop.getName(), prop); Object injectableValueId = prop.getInjectableValueId(); if (injectableValueId != null) { if (propertiesWithInjectables == null) { propertiesWithInjectables = new SettableBeanProperty[len]; } propertiesWithInjectables[i] = prop; } } _defaultValues = defaultValues; _propertiesWithInjectables = propertiesWithInjectables; }
public Object complete(JsonParser jp, DeserializationContext ctxt, Object bean) throws IOException, JsonProcessingException { for (int i = 0, len = _properties.length; i < len; ++i) { if (_typeIds[i] == null) { // let's allow missing both type and property (may already have been set, too) if (_tokens[i] == null) { continue; } // but not just one throw ctxt.mappingException("Missing external type id property '"+_properties[i].getTypePropertyName()); } else if (_tokens[i] == null) { SettableBeanProperty prop = _properties[i].getProperty(); throw ctxt.mappingException("Missing property '"+prop.getName()+"' for external type id '"+_properties[i].getTypePropertyName()); } _deserializeAndSet(jp, ctxt, bean, i); } return bean; }
public void renameAll(NameTransformer transformer) { ArrayList<SettableBeanProperty> oldProps = new ArrayList<SettableBeanProperty>(_properties); Iterator<SettableBeanProperty> it = oldProps.iterator(); _properties.clear(); while (it.hasNext()) { SettableBeanProperty prop = it.next(); String newName = transformer.transform(prop.getName()); prop = prop.withName(newName); JsonDeserializer<?> deser = prop.getValueDeserializer(); if (deser != null) { @SuppressWarnings("unchecked") JsonDeserializer<Object> newDeser = (JsonDeserializer<Object>) deser.unwrappingDeserializer(transformer); if (newDeser != deser) { prop = prop.withValueDeserializer(newDeser); } } _properties.add(prop); } }
/** * Creates a new instance with the given delegate and error consumer * * @param delegate The delegate * @param jsonErrorConsumer The consumer for {@link JsonError}s. If * this is <code>null</code>, then errors will be ignored. */ ErrorReportingSettableBeanProperty( SettableBeanProperty delegate, Consumer<? super JsonError> jsonErrorConsumer) { super(delegate); this.delegate = delegate; this.jsonErrorConsumer = jsonErrorConsumer; }
@Override public SettableBeanProperty withValueDeserializer(JsonDeserializer<?> deser) { return new ErrorReportingSettableBeanProperty( delegate.withValueDeserializer(deser), jsonErrorConsumer); }
/** * Creates a BeanDeserializerModifier that replaces the * SettableBeanProperties in the BeanDeserializerBuilder with * ErrorReportingSettableBeanProperty instances that forward * information about errors when setting bean properties to the * given consumer. (Don't ask ... ) * * @param jsonErrorConsumer The consumer for {@link JsonError}s. * If this is <code>null</code>, then no errors will be reported. * @return The modifier */ private static BeanDeserializerModifier createErrorHandlingBeanDeserializerModifier( Consumer<? super JsonError> jsonErrorConsumer) { return new BeanDeserializerModifier() { @Override public BeanDeserializerBuilder updateBuilder( DeserializationConfig config, BeanDescription beanDesc, BeanDeserializerBuilder builder) { Iterator<SettableBeanProperty> propertiesIterator = builder.getProperties(); while (propertiesIterator.hasNext()) { SettableBeanProperty property = propertiesIterator.next(); SettableBeanProperty wrappedProperty = new ErrorReportingSettableBeanProperty( property, jsonErrorConsumer); builder.addOrReplaceProperty(wrappedProperty, true); } return builder; } }; }
private SettableBeanProperty _findWithEquals(String paramString, int paramInt) { for (Bucket localBucket = this._buckets[paramInt]; localBucket != null; localBucket = localBucket.next) if (paramString.equals(localBucket.key)) return localBucket.value; return null; }
public final BeanPropertyMap assignIndexes() { int i = 0; Bucket[] arrayOfBucket = this._buckets; int j = arrayOfBucket.length; for (int k = 0; k < j; k++) for (Bucket localBucket = arrayOfBucket[k]; localBucket != null; localBucket = localBucket.next) { SettableBeanProperty localSettableBeanProperty = localBucket.value; int m = i; i++; localSettableBeanProperty.assignIndex(m); } return this; }
public final SettableBeanProperty[] getPropertiesInInsertionOrder() { SettableBeanProperty[] arrayOfSettableBeanProperty = new SettableBeanProperty[this._nextBucketIndex]; Bucket[] arrayOfBucket = this._buckets; int i = arrayOfBucket.length; for (int j = 0; j < i; j++) for (Bucket localBucket = arrayOfBucket[j]; localBucket != null; localBucket = localBucket.next) arrayOfSettableBeanProperty[localBucket.index] = localBucket.value; return arrayOfSettableBeanProperty; }
public final void remove(SettableBeanProperty paramSettableBeanProperty) { String str = paramSettableBeanProperty.getName(); int i = str.hashCode() & -1 + this._buckets.length; Bucket localBucket1 = null; int j = 0; for (Bucket localBucket2 = this._buckets[i]; localBucket2 != null; localBucket2 = localBucket2.next) if ((j == 0) && (localBucket2.key.equals(str))) j = 1; else localBucket1 = new Bucket(localBucket1, localBucket2.key, localBucket2.value, localBucket2.index); if (j == 0) throw new NoSuchElementException("No entry '" + paramSettableBeanProperty + "' found, can't remove"); this._buckets[i] = localBucket1; }
public final void replace(SettableBeanProperty paramSettableBeanProperty) { String str = paramSettableBeanProperty.getName(); int i = str.hashCode() & -1 + this._buckets.length; Bucket localBucket1 = null; int j = -1; for (Bucket localBucket2 = this._buckets[i]; localBucket2 != null; localBucket2 = localBucket2.next) if ((j < 0) && (localBucket2.key.equals(str))) j = localBucket2.index; else localBucket1 = new Bucket(localBucket1, localBucket2.key, localBucket2.value, localBucket2.index); if (j < 0) throw new NoSuchElementException("No entry '" + paramSettableBeanProperty + "' found, can't replace"); this._buckets[i] = new Bucket(localBucket1, str, paramSettableBeanProperty, j); }
public Bucket(Bucket paramBucket, String paramString, SettableBeanProperty paramSettableBeanProperty, int paramInt) { this.next = paramBucket; this.key = paramString; this.value = paramSettableBeanProperty; this.index = paramInt; }
public Object deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext) { if (paramJsonParser.getCurrentToken() != JsonToken.START_ARRAY) return _deserializeFromNonArray(paramJsonParser, paramDeserializationContext); if (!this._vanillaProcessing) return _deserializeNonVanilla(paramJsonParser, paramDeserializationContext); Object localObject = this._valueInstantiator.createUsingDefault(paramDeserializationContext); SettableBeanProperty[] arrayOfSettableBeanProperty = this._orderedProperties; int i = 0; int j = arrayOfSettableBeanProperty.length; while (true) { if (paramJsonParser.nextToken() == JsonToken.END_ARRAY) return localObject; if (i == j) break; SettableBeanProperty localSettableBeanProperty = arrayOfSettableBeanProperty[i]; if (localSettableBeanProperty != null) try { localSettableBeanProperty.deserializeAndSet(paramJsonParser, paramDeserializationContext, localObject); } catch (Exception localException) { wrapAndThrow(localException, localObject, localSettableBeanProperty.getName(), paramDeserializationContext); } else paramJsonParser.skipChildren(); i++; } if (!this._ignoreAllUnknown) throw paramDeserializationContext.mappingException("Unexpected JSON values; expected at most " + j + " properties (in JSON Array)"); while (paramJsonParser.nextToken() != JsonToken.END_ARRAY) paramJsonParser.skipChildren(); return localObject; }
public Object deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject) { if (this._injectables != null) injectValues(paramDeserializationContext, paramObject); SettableBeanProperty[] arrayOfSettableBeanProperty = this._orderedProperties; int i = 0; int j = arrayOfSettableBeanProperty.length; while (true) { if (paramJsonParser.nextToken() == JsonToken.END_ARRAY) return paramObject; if (i == j) break; SettableBeanProperty localSettableBeanProperty = arrayOfSettableBeanProperty[i]; if (localSettableBeanProperty != null) try { localSettableBeanProperty.deserializeAndSet(paramJsonParser, paramDeserializationContext, paramObject); } catch (Exception localException) { wrapAndThrow(localException, paramObject, localSettableBeanProperty.getName(), paramDeserializationContext); } else paramJsonParser.skipChildren(); i++; } if (!this._ignoreAllUnknown) throw paramDeserializationContext.mappingException("Unexpected JSON values; expected at most " + j + " properties (in JSON Array)"); while (paramJsonParser.nextToken() != JsonToken.END_ARRAY) paramJsonParser.skipChildren(); return paramObject; }
public final Object handleIdValue(DeserializationContext paramDeserializationContext, Object paramObject) { if ((this._objectIdReader != null) && (this._idValue != null)) { paramDeserializationContext.findObjectId(this._idValue, this._objectIdReader.generator).bindItem(paramObject); SettableBeanProperty localSettableBeanProperty = this._objectIdReader.idProperty; if (localSettableBeanProperty != null) return localSettableBeanProperty.setAndReturn(paramObject, this._idValue); } return paramObject; }
public final void inject(SettableBeanProperty[] paramArrayOfSettableBeanProperty) { int i = 0; int j = paramArrayOfSettableBeanProperty.length; while (i < j) { SettableBeanProperty localSettableBeanProperty = paramArrayOfSettableBeanProperty[i]; if (localSettableBeanProperty != null) this._creatorParameters[i] = this._context.findInjectableValue(localSettableBeanProperty.getInjectableValueId(), localSettableBeanProperty, null); i++; } }
public static PropertyBasedCreator construct(DeserializationContext paramDeserializationContext, ValueInstantiator paramValueInstantiator, SettableBeanProperty[] paramArrayOfSettableBeanProperty) { int i = paramArrayOfSettableBeanProperty.length; SettableBeanProperty[] arrayOfSettableBeanProperty = new SettableBeanProperty[i]; Object[] arrayOfObject = null; for (int j = 0; j < i; j++) { SettableBeanProperty localSettableBeanProperty1 = paramArrayOfSettableBeanProperty[j]; SettableBeanProperty localSettableBeanProperty2 = localSettableBeanProperty1; if (!localSettableBeanProperty1.hasValueDeserializer()) localSettableBeanProperty2 = localSettableBeanProperty2.withValueDeserializer(paramDeserializationContext.findContextualValueDeserializer(localSettableBeanProperty2.getType(), localSettableBeanProperty2)); arrayOfSettableBeanProperty[j] = localSettableBeanProperty2; JsonDeserializer localJsonDeserializer = localSettableBeanProperty2.getValueDeserializer(); Object localObject1; if (localJsonDeserializer == null) localObject1 = null; else localObject1 = localJsonDeserializer.getNullValue(); Object localObject2 = localObject1; if ((localObject1 == null) && (localSettableBeanProperty2.getType().isPrimitive())) localObject2 = ClassUtil.defaultValue(localSettableBeanProperty2.getType().getRawClass()); if (localObject2 != null) { if (arrayOfObject == null) arrayOfObject = new Object[i]; arrayOfObject[j] = localObject2; } } return new PropertyBasedCreator(paramValueInstantiator, arrayOfSettableBeanProperty, arrayOfObject); }
public Object complete(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, PropertyValueBuffer paramPropertyValueBuffer, PropertyBasedCreator paramPropertyBasedCreator) { int i = this._properties.length; Object[] arrayOfObject = new Object[i]; for (int j = 0; j < i; j++) { String str1 = this._typeIds[j]; String str2 = str1; if (str1 == null) { if (this._tokens[j] == null) continue; if (!this._properties[j].hasDefaultType()) throw paramDeserializationContext.mappingException("Missing external type id property '" + this._properties[j].getTypePropertyName() + "'"); str2 = this._properties[j].getDefaultTypeId(); } else if (this._tokens[j] == null) { SettableBeanProperty localSettableBeanProperty3 = this._properties[j].getProperty(); throw paramDeserializationContext.mappingException("Missing property '" + localSettableBeanProperty3.getName() + "' for external type id '" + this._properties[j].getTypePropertyName()); } arrayOfObject[j] = _deserialize(paramJsonParser, paramDeserializationContext, j, str2); } for (int k = 0; k < i; k++) { SettableBeanProperty localSettableBeanProperty2 = this._properties[k].getProperty(); if (paramPropertyBasedCreator.findCreatorProperty(localSettableBeanProperty2.getName()) != null) paramPropertyValueBuffer.assignParameter(localSettableBeanProperty2.getCreatorIndex(), arrayOfObject[k]); } Object localObject = paramPropertyBasedCreator.build(paramDeserializationContext, paramPropertyValueBuffer); for (int m = 0; m < i; m++) { SettableBeanProperty localSettableBeanProperty1 = this._properties[m].getProperty(); if (paramPropertyBasedCreator.findCreatorProperty(localSettableBeanProperty1.getName()) == null) localSettableBeanProperty1.set(localObject, arrayOfObject[m]); } return localObject; }
public Object complete(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject) { int i = 0; int j = this._properties.length; while (i < j) { String str1 = this._typeIds[i]; String str2 = str1; if (str1 == null) { TokenBuffer localTokenBuffer = this._tokens[i]; if (localTokenBuffer == null) break label263; JsonToken localJsonToken = localTokenBuffer.firstToken(); if ((localJsonToken != null) && (localJsonToken.isScalarValue())) { JsonParser localJsonParser = localTokenBuffer.asParser(paramJsonParser); localJsonParser.nextToken(); SettableBeanProperty localSettableBeanProperty2 = this._properties[i].getProperty(); Object localObject = TypeDeserializer.deserializeIfNatural(localJsonParser, paramDeserializationContext, localSettableBeanProperty2.getType()); if (localObject != null) { localSettableBeanProperty2.set(paramObject, localObject); break label263; } if (!this._properties[i].hasDefaultType()) throw paramDeserializationContext.mappingException("Missing external type id property '" + this._properties[i].getTypePropertyName() + "'"); str2 = this._properties[i].getDefaultTypeId(); } } else if (this._tokens[i] == null) { SettableBeanProperty localSettableBeanProperty1 = this._properties[i].getProperty(); throw paramDeserializationContext.mappingException("Missing property '" + localSettableBeanProperty1.getName() + "' for external type id '" + this._properties[i].getTypePropertyName()); } _deserializeAndSet(paramJsonParser, paramDeserializationContext, paramObject, i, str2); label263: i++; } return paramObject; }
public void addExternal(SettableBeanProperty paramSettableBeanProperty, TypeDeserializer paramTypeDeserializer) { Integer localInteger = Integer.valueOf(this._properties.size()); this._properties.add(new ExternalTypeHandler.ExtTypedProperty(paramSettableBeanProperty, paramTypeDeserializer)); this._nameToPropertyIndex.put(paramSettableBeanProperty.getName(), localInteger); this._nameToPropertyIndex.put(paramTypeDeserializer.getPropertyName(), localInteger); }
public final Object deserializeSetAndReturn(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject) { Object localObject = this._valueDeserializer.deserialize(paramJsonParser, paramDeserializationContext); paramDeserializationContext.findObjectId(localObject, this._objectIdReader.generator).bindItem(paramObject); SettableBeanProperty localSettableBeanProperty = this._objectIdReader.idProperty; if (localSettableBeanProperty != null) return localSettableBeanProperty.setAndReturn(paramObject, localObject); return paramObject; }
public final Object setAndReturn(Object paramObject1, Object paramObject2) { SettableBeanProperty localSettableBeanProperty = this._objectIdReader.idProperty; if (localSettableBeanProperty == null) throw new UnsupportedOperationException("Should not call set() on ObjectIdProperty that has no SettableBeanProperty"); return localSettableBeanProperty.setAndReturn(paramObject1, paramObject2); }
public BeanAsArrayBuilderDeserializer(BeanDeserializerBase paramBeanDeserializerBase, SettableBeanProperty[] paramArrayOfSettableBeanProperty, AnnotatedMethod paramAnnotatedMethod) { super(paramBeanDeserializerBase); this._delegate = paramBeanDeserializerBase; this._orderedProperties = paramArrayOfSettableBeanProperty; this._buildMethod = paramAnnotatedMethod; }
public Object deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext) { if (paramJsonParser.getCurrentToken() != JsonToken.START_ARRAY) return finishBuild(paramDeserializationContext, _deserializeFromNonArray(paramJsonParser, paramDeserializationContext)); if (!this._vanillaProcessing) return finishBuild(paramDeserializationContext, _deserializeNonVanilla(paramJsonParser, paramDeserializationContext)); Object localObject = this._valueInstantiator.createUsingDefault(paramDeserializationContext); SettableBeanProperty[] arrayOfSettableBeanProperty = this._orderedProperties; int i = 0; int j = arrayOfSettableBeanProperty.length; while (true) { if (paramJsonParser.nextToken() == JsonToken.END_ARRAY) return finishBuild(paramDeserializationContext, localObject); if (i == j) break; SettableBeanProperty localSettableBeanProperty = arrayOfSettableBeanProperty[i]; if (localSettableBeanProperty != null) try { localObject = localSettableBeanProperty.deserializeSetAndReturn(paramJsonParser, paramDeserializationContext, localObject); } catch (Exception localException) { wrapAndThrow(localException, localObject, localSettableBeanProperty.getName(), paramDeserializationContext); } else paramJsonParser.skipChildren(); i++; } if (!this._ignoreAllUnknown) throw paramDeserializationContext.mappingException("Unexpected JSON values; expected at most " + j + " properties (in JSON Array)"); while (paramJsonParser.nextToken() != JsonToken.END_ARRAY) paramJsonParser.skipChildren(); return finishBuild(paramDeserializationContext, localObject); }
public Object deserialize(JsonParser paramJsonParser, DeserializationContext paramDeserializationContext, Object paramObject) { if (this._injectables != null) injectValues(paramDeserializationContext, paramObject); SettableBeanProperty[] arrayOfSettableBeanProperty = this._orderedProperties; int i = 0; int j = arrayOfSettableBeanProperty.length; while (true) { if (paramJsonParser.nextToken() == JsonToken.END_ARRAY) return finishBuild(paramDeserializationContext, paramObject); if (i == j) break; SettableBeanProperty localSettableBeanProperty = arrayOfSettableBeanProperty[i]; if (localSettableBeanProperty != null) try { paramObject = localSettableBeanProperty.deserializeSetAndReturn(paramJsonParser, paramDeserializationContext, paramObject); } catch (Exception localException) { wrapAndThrow(localException, paramObject, localSettableBeanProperty.getName(), paramDeserializationContext); } else paramJsonParser.skipChildren(); i++; } if (!this._ignoreAllUnknown) throw paramDeserializationContext.mappingException("Unexpected JSON values; expected at most " + j + " properties (in JSON Array)"); while (paramJsonParser.nextToken() != JsonToken.END_ARRAY) paramJsonParser.skipChildren(); return finishBuild(paramDeserializationContext, paramObject); }
public ManagedReferenceProperty(SettableBeanProperty paramSettableBeanProperty1, String paramString, SettableBeanProperty paramSettableBeanProperty2, Annotations paramAnnotations, boolean paramBoolean) { super(paramSettableBeanProperty1.getName(), paramSettableBeanProperty1.getType(), paramSettableBeanProperty1.getWrapperName(), paramSettableBeanProperty1.getValueTypeDeserializer(), paramAnnotations, paramSettableBeanProperty1.isRequired()); this._referenceName = paramString; this._managedProperty = paramSettableBeanProperty1; this._backProperty = paramSettableBeanProperty2; this._isContainer = paramBoolean; }