source: java/main/src/main/java/com/framsticks/test/prime/PrimePackage.java @ 193

Last change on this file since 193 was 193, checked in by Maciej Komosinski, 10 years ago

Set svn:eol-style native for all textual files

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1package com.framsticks.test.prime;
2
3import com.framsticks.experiment.InvalidWorkPackage;
4import com.framsticks.experiment.WorkPackage;
5import com.framsticks.params.annotations.FramsClassAnnotation;
6import com.framsticks.params.annotations.ParamAnnotation;
7
8@FramsClassAnnotation(order = {"params", "state"})
9public class PrimePackage implements WorkPackage<PrimePackage> {
10
11        @ParamAnnotation
12        public final ExpParams params = new ExpParams();
13
14        @ParamAnnotation
15        public final ExpState state = new ExpState();
16
17        @Override
18        public String toString() {
19                return params + " -> " + state;
20        }
21
22        @Override
23        public String sumUpTask() {
24                return params.toString();
25        }
26
27        @Override
28        public String sumUpResult() {
29                return state.toString();
30        }
31
32        @Override
33        public String getShortDescription() {
34                return params.toString();
35        }
36
37        public static PrimePackage compose(int from, int to) {
38                PrimePackage wp = new PrimePackage();
39                wp.params.from_number = from;
40                wp.params.to_number = to;
41                wp.state.current_number = from;
42                return wp;
43        }
44
45        @Override
46        public PrimePackage getRemainder(PrimePackage result) {
47                if (!result.params.isInsideOf(params)) {
48                        throw new InvalidWorkPackage().msg("result is not inside of task");
49                }
50                if (result.params.from_number != params.from_number) {
51                        throw new InvalidWorkPackage().msg("result is not subpackage");
52                }
53                if (result.state.current_number == params.to_number + 1) {
54                        return null;
55                }
56                return compose(result.state.current_number, params.to_number);
57        }
58}
Note: See TracBrowser for help on using the repository browser.