// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.fasterxml.jackson.databind.deser.impl; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.PropertyName; import com.fasterxml.jackson.databind.deser.SettableAnyProperty; import com.fasterxml.jackson.databind.deser.SettableBeanProperty; import java.io.IOException; import java.util.BitSet; // Referenced classes of package com.fasterxml.jackson.databind.deser.impl: // ObjectIdReader, ReadableObjectId, PropertyValue public class PropertyValueBuffer { protected PropertyValue _buffered; protected final DeserializationContext _context; protected final Object _creatorParameters[]; protected Object _idValue; protected final ObjectIdReader _objectIdReader; protected int _paramsNeeded; protected int _paramsSeen; protected final BitSet _paramsSeenBig; protected final JsonParser _parser; public PropertyValueBuffer(JsonParser jsonparser, DeserializationContext deserializationcontext, int i, ObjectIdReader objectidreader) { _parser = jsonparser; _context = deserializationcontext; _paramsNeeded = i; _objectIdReader = objectidreader; _creatorParameters = new Object[i]; if (i < 32) { _paramsSeenBig = null; return; } else { _paramsSeenBig = new BitSet(); return; } } protected Object _findMissing(SettableBeanProperty settablebeanproperty) throws JsonMappingException { if (settablebeanproperty.getInjectableValueId() != null) { return _context.findInjectableValue(settablebeanproperty.getInjectableValueId(), settablebeanproperty, null); } if (settablebeanproperty.isRequired()) { throw _context.mappingException("Missing required creator property '%s' (index %d)", new Object[] { settablebeanproperty.getName(), Integer.valueOf(settablebeanproperty.getCreatorIndex()) }); } if (_context.isEnabled(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES)) { throw _context.mappingException("Missing creator property '%s' (index %d); DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES enabled", new Object[] { settablebeanproperty.getName(), Integer.valueOf(settablebeanproperty.getCreatorIndex()) }); } else { return settablebeanproperty.getValueDeserializer().getNullValue(_context); } } public boolean assignParameter(int i, Object obj) { _creatorParameters[i] = obj; return false; } public boolean assignParameter(SettableBeanProperty settablebeanproperty, Object obj) { int i; i = settablebeanproperty.getCreatorIndex(); _creatorParameters[i] = obj; if (_paramsSeenBig != null) goto _L2; else goto _L1 _L1: int j = _paramsSeen; i = j | 1 << i; if (j == i) { break MISSING_BLOCK_LABEL_99; } _paramsSeen = i; i = _paramsNeeded - 1; _paramsNeeded = i; if (i > 0) { break MISSING_BLOCK_LABEL_99; } _L4: return true; _L2: int k; if (_paramsSeenBig.get(i)) { break MISSING_BLOCK_LABEL_99; } k = _paramsNeeded - 1; _paramsNeeded = k; if (k <= 0) goto _L4; else goto _L3 _L3: _paramsSeenBig.set(i); return false; } public void bufferAnyProperty(SettableAnyProperty settableanyproperty, String s, Object obj) { _buffered = new PropertyValue.Any(_buffered, obj, settableanyproperty, s); } public void bufferMapProperty(Object obj, Object obj1) { _buffered = new PropertyValue.Map(_buffered, obj1, obj); } public void bufferProperty(SettableBeanProperty settablebeanproperty, Object obj) { _buffered = new PropertyValue.Regular(_buffered, obj, settablebeanproperty); } protected PropertyValue buffered() { return _buffered; } protected Object[] getParameters(SettableBeanProperty asettablebeanproperty[]) throws JsonMappingException { if (_paramsNeeded > 0) { if (_paramsSeenBig == null) { int i = _paramsSeen; int k = 0; for (int i1 = _creatorParameters.length; k < i1;) { if ((i & 1) == 0) { _creatorParameters[k] = _findMissing(asettablebeanproperty[k]); } k++; i >>= 1; } } else { int l = _creatorParameters.length; int j = 0; do { j = _paramsSeenBig.nextClearBit(j); if (j >= l) { break; } _creatorParameters[j] = _findMissing(asettablebeanproperty[j]); j++; } while (true); } } return _creatorParameters; } public Object handleIdValue(DeserializationContext deserializationcontext, Object obj) throws IOException { label0: { Object obj1 = obj; if (_objectIdReader != null) { if (_idValue == null) { break label0; } deserializationcontext.findObjectId(_idValue, _objectIdReader.generator, _objectIdReader.resolver).bindItem(obj); deserializationcontext = _objectIdReader.idProperty; obj1 = obj; if (deserializationcontext != null) { obj1 = deserializationcontext.setAndReturn(obj, _idValue); } } return obj1; } throw deserializationcontext.mappingException("No _idValue when handleIdValue called, on instance of %s", new Object[] { obj.getClass().getName() }); } public boolean isComplete() { return _paramsNeeded <= 0; } public boolean readIdProperty(String s) throws IOException { if (_objectIdReader != null && s.equals(_objectIdReader.propertyName.getSimpleName())) { _idValue = _objectIdReader.readObjectReference(_parser, _context); return true; } else { return false; } } }