- Timestamp:
- 06/28/13 11:56:03 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/parsers/Loaders.java
r86 r87 12 12 13 13 public static FramsClass loadFramsClass(SourceInterface source) throws ConstructionException { 14 MultiParamLoader loader = new MultiParamLoader();14 final MultiParamLoader loader = new MultiParamLoader(); 15 15 loader.setNewSource(source); 16 16 17 FramsClass result = new FramsClass();17 final FramsClassBuilder builder = FramsClass.build(); 18 18 19 AccessInterface framsClassAccess = new ReflectionAccess(FramsClass.class, FramsClassBuilder.buildForClass(FramsClass.class));20 AccessInterface paramBuilderAccess = new ReflectionAccess(ParamBuilder.class, FramsClass Builder.buildForClass(ParamBuilder.class));21 framsClassAccess.select( result);19 final AccessInterface framsClassAccess = new ReflectionAccess(FramsClassBuilder.class, FramsClass.build().forClass(FramsClassBuilder.class)); 20 AccessInterface paramBuilderAccess = new ReflectionAccess(ParamBuilder.class, FramsClass.build().forClass(ParamBuilder.class)); 21 framsClassAccess.select(builder); 22 22 loader.addAccessInterface(framsClassAccess); 23 23 loader.addAccessInterface(paramBuilderAccess); 24 24 25 loader.addBreakCondition(MultiParamLoader.Status.AfterObject); 25 loader.addListener(MultiParamLoader.Status.AfterObject, new MultiParamLoader.StatusListener() { 26 @Override 27 public void onStatusChange() { 28 Object object = loader.returnObject(); 29 if (object instanceof FramsClassBuilder) { 30 return; 31 } 32 if (framsClassAccess.select(builder).tryAutoAppend(object)) { 33 return; 34 } 35 throw new ConstructionException().msg("failed to interpretate object").arg("object", object); 36 37 } 38 }); 26 39 27 40 try { 28 MultiParamLoader.Status condition; 29 while ((condition = loader.go()) != MultiParamLoader.Status.Finished) { 30 if (condition == MultiParamLoader.Status.AfterObject) { 31 32 Object object = loader.returnObject(); 33 if (object instanceof FramsClass) { 34 continue; 35 } 36 if (object instanceof ParamBuilder) { 37 result.append(((ParamBuilder) object).finish()); 38 } 39 } 40 } 41 return result; 41 loader.go(); 42 return builder.finish(); 42 43 } catch (Exception e) { 43 44 throw new ConstructionException().msg("an error occurred while loading class description").arg("before", loader.getCurrentLine()).cause(e);
Note: See TracChangeset
for help on using the changeset viewer.