Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Apr 18, 2016
1 parent e5a5772 commit 6becf8f
Showing 1 changed file with 14 additions and 39 deletions.
53 changes: 14 additions & 39 deletions src/main/java/com/alibaba/fastjson/parser/DefaultJSONParser.java
Expand Up @@ -350,8 +350,8 @@ public final Object parseObject(final Map object, Object fieldName) {

Object refValue = null;
if ("@".equals(ref)) {
if (this.getContext() != null) {
ParseContext thisContext = this.getContext();
if (this.context != null) {
ParseContext thisContext = this.context;
Object thisObj = thisContext.object;
if (thisObj instanceof Object[] || thisObj instanceof Collection<?>) {
refValue = thisObj;
Expand Down Expand Up @@ -1167,10 +1167,6 @@ public List<ResolveTask> getResolveTaskList() {
return resolveTaskList;
}

public List<ResolveTask> getResolveTaskListDirect() {
return resolveTaskList;
}

public void addResolveTask(ResolveTask task) {
if (resolveTaskList == null) {
resolveTaskList = new ArrayList<ResolveTask>(2);
Expand All @@ -1189,21 +1185,13 @@ public List<ExtraProcessor> getExtraProcessors() {
return extraProcessors;
}

public List<ExtraProcessor> getExtraProcessorsDirect() {
return extraProcessors;
}

public List<ExtraTypeProvider> getExtraTypeProviders() {
if (extraTypeProviders == null) {
extraTypeProviders = new ArrayList<ExtraTypeProvider>(2);
}
return extraTypeProviders;
}

public List<ExtraTypeProvider> getExtraTypeProvidersDirect() {
return extraTypeProviders;
}

public FieldTypeResolver getFieldTypeResolver() {
return fieldTypeResolver;
}
Expand Down Expand Up @@ -1475,40 +1463,27 @@ public void setOwnerContext(ParseContext ownerContext) {
public void parseExtra(Object object, String key) {
final JSONLexer lexer = this.lexer; // xxx
lexer.nextTokenWithColon();
Type type = getExtratype(object, key);
Type type = null;

if (extraTypeProviders != null) {
for (ExtraTypeProvider extraProvider : extraTypeProviders) {
type = extraProvider.getExtraType(object, key);
}
}
Object value = type == null //
? parse() // skip
: parseObject(type);

processExtra(object, key, value);
}

public Type getExtratype(Object object, String key) {
List<ExtraTypeProvider> extraTypeProviders = this.extraTypeProviders;
if (extraTypeProviders == null) {
return null;
}

Type type = null;
for (ExtraTypeProvider extraProvider : extraTypeProviders) {
type = extraProvider.getExtraType(object, key);
}
return type;
}

public void processExtra(Object object, String key, Object value) {
if (object instanceof ExtraProcessable) {
ExtraProcessable extraProcessable = ((ExtraProcessable) object);
extraProcessable.processExtra(key, value);
return;
}

List<ExtraProcessor> extraProcessors = this.extraProcessors;
if (extraProcessors == null) {
return;
}
for (ExtraProcessor process : extraProcessors) {
process.processExtra(object, key, value);

if (extraProcessors != null) {
for (ExtraProcessor process : extraProcessors) {
process.processExtra(object, key, value);
}
}
}
}

0 comments on commit 6becf8f

Please sign in to comment.