01: package spoon.reflect.cu;
02:
03: /**
04: * This class defines textual source code fragments that can be attached to a
05: * compilation unit in order to modify its source code by preserving its
06: * original formatting. Source code fragements are ignored by default. A special
07: * mode must be activated in order to take them into account (-f or --fragments
08: * with command line). When this mode is activated, the programs model is not
09: * used any more to generate the transformed code (unless a fragment uses it to
10: * get its code).
11: */
12: public class SourceCodeFragment {
13:
14: /**
15: * The position in the orginal source code where this fragment must be
16: * inserted. Default value is 0;
17: */
18: public int position = 0;
19:
20: /**
21: * The length of the original source code that must be replaced by this
22: * fragment (starting at the position). Default value is 0 (pure insertion).
23: * Note that if replacementLength==code.length, then the fragment just
24: * replaces the existing code.
25: */
26: public int replacementLength = 0;
27:
28: /**
29: * The value of the code, which will be printed as is within the orginal
30: * source code (at the specified position).
31: */
32: public String code = "";
33:
34: /**
35: * Creates a new source code fragment with default values.
36: */
37: public SourceCodeFragment() {
38: super ();
39: }
40:
41: /**
42: * Creates a new source code fragment.
43: *
44: * @param position
45: * the position at which it must start in the original source
46: * code
47: * @param code
48: * the code as a string (will be pasted as is)
49: * @param replacementLength
50: * the number of character of the original code that should be
51: * replaced
52: */
53: public SourceCodeFragment(int position, String code,
54: int replacementLength) {
55: super();
56: this.position = position;
57: this.code = code;
58: this.replacementLength = replacementLength;
59: }
60:
61: }
|