source: java/main/src/main/java/com/framsticks/parsers/Loaders.java @ 77

Last change on this file since 77 was 77, checked in by psniegowski, 11 years ago

Add new java codebase.

File size: 1.5 KB
Line 
1package com.framsticks.parsers;
2
3import com.framsticks.params.*;
4import org.apache.log4j.Logger;
5
6/**
7 * @author Piotr Sniegowski
8 */
9public class Loaders {
10
11        private static final Logger LOGGER = Logger.getLogger(Loaders.class.getName());
12
13        public static FramsClass loadFramsClass(SourceInterface source) {
14                MultiParamLoader loader = new MultiParamLoader();
15                loader.setNewSource(source);
16
17        FramsClass result = new FramsClass();
18
19        AccessInterface framsClassAccess = new ReflectionAccess(FramsClass.class, FramsClass.getFramsClass());
20        AccessInterface paramBuilderAccess = new ReflectionAccess(ParamBuilder.class, ParamBuilder.getFramsClass());
21        framsClassAccess.select(result);
22                loader.addAccessInterface(framsClassAccess);
23                loader.addAccessInterface(paramBuilderAccess);
24
25                loader.addBreakCondition(MultiParamLoader.Status.AfterObject);
26
27                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).build());
38                                        }
39                                }
40                        }
41                        return result;
42                } catch (Exception e) {
43                        LOGGER.error("an error occurred while loading class description: " + e + " before " + source.readLine());
44                        e.printStackTrace();
45                }
46                return null;
47
48
49        }
50}
Note: See TracBrowser for help on using the repository browser.