Skip to content

Package: OptionHandler

OptionHandler

nameinstructionbranchcomplexitylinemethod
addFlags(List, String)
M: 20 C: 22
52%
M: 3 C: 3
50%
M: 3 C: 1
25%
M: 2 C: 5
71%
M: 0 C: 1
100%
addType(List, String)
M: 70 C: 0
0%
M: 10 C: 0
0%
M: 6 C: 0
0%
M: 11 C: 0
0%
M: 1 C: 0
0%
convertOptions(List)
M: 67 C: 84
56%
M: 10 C: 12
55%
M: 8 C: 4
33%
M: 9 C: 17
65%
M: 0 C: 1
100%
getTheInstance()
M: 0 C: 8
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%

Coverage

1: package generator;
2:
3: import generator.option.AbstractOption;
4: import generator.option.DevtypeOption;
5: import generator.option.FlagsOption;
6: import generator.option.GidOption;
7: import generator.option.LinktargetOption;
8: import generator.option.MajorOption;
9: import generator.option.MinorOption;
10: import generator.option.NameOption;
11: import generator.option.TypeOption;
12: import generator.option.UidOption;
13: import generator.option.flag.DtxtFlag;
14: import generator.option.flag.ShFlag;
15: import generator.option.flag.UtxtFlag;
16: import generator.option.type.DirType;
17: import generator.option.type.FileType;
18: import generator.option.type.LocalType;
19: import generator.option.type.NodeType;
20: import generator.option.type.SymlinkType;
21:
22: import java.util.ArrayList;
23: import java.util.List;
24:
25: import model.packages.Option;
26:
27: /**
28: *
29: * @author Muri
30: *
31: */
32: @SuppressWarnings("PMD")
33: public final class OptionHandler {
34:
35:         /**
36:          * theInstance of an PackageManager for the singleton.
37:          */
38:         private static OptionHandler instance;
39:
40:         /**
41:          * the secret constructor.
42:          */
43:         private OptionHandler() {
44:                 super();
45:         }
46:
47:         /**
48:          * @return the PackageManager.
49:          *
50:          */
51:         public static OptionHandler getTheInstance() {
52:•                if (OptionHandler.instance == null) {
53:                         OptionHandler.instance = new OptionHandler();
54:                 }
55:                 return instance;
56:         }
57:
58:         /**
59:          * Apply all the options provided! and Convert them to Objects!
60:          *
61:          * @param options
62:          * options
63:          * @return List<AbstractOption>
64:          */
65:         protected List<AbstractOption> convertOptions(final List<Option> options) {
66:
67:                 final List<AbstractOption> optionList = new ArrayList<AbstractOption>();
68:
69:                 // NOPMDs are because we need an object per iteration!
70:                 // would like to use swich but for strings only available in 1.7 =(
71:•                for (Option option : options) {
72:                         final String name = option.getName();
73:                         final String value = option.getValue();
74:
75:•                        if ("devtype".equals(name)) {
76:                                 optionList.add(new DevtypeOption(value.charAt(0))); // NOPMD
77:•                        } else if ("flags".equals(name)) {
78:                                 addFlags(optionList, value);
79:•                        } else if ("gid".equals(name)) {
80:                                 optionList.add(new GidOption(value)); // NOPMD
81:•                        } else if ("linktarget".equals(name)) {
82:                                 optionList.add(new LinktargetOption(value)); // NOPMD
83:•                        } else if ("major".equals(name)) {
84:                                 optionList.add(new MajorOption(Integer.parseInt(value))); // NOPMD
85:•                        } else if ("minor".equals(name)) {
86:                                 optionList.add(new MinorOption(Integer.parseInt(value))); // NOPMD
87:•                        } else if ("mode".equals(name)) {
88:                                 // add a 0 to parse an octal Integer value!
89:                                 optionList.add(new MajorOption(Integer.decode("0" + value))); // NOPMD
90:•                        } else if ("name".equals(name)) {
91:                                 optionList.add(new NameOption(value)); // NOPMD
92:•                        } else if ("type".equals(name)) {
93:                                 addType(optionList, value);
94:•                        } else if ("uid".equals(name)) {
95:                                 optionList.add(new UidOption(value)); // NOPMD
96:                         }
97:                 }
98:                 return optionList;
99:         }
100:
101:         /**
102:          *
103:          * @param optionList
104:          * optionList
105:          * @param value
106:          * value
107:          */
108:         private void addFlags(final List<AbstractOption> optionList, final String value) {
109:•                if ("dtxt".equals(value)) {
110:                         optionList.add(new FlagsOption(new DtxtFlag())); // NOPMD
111:•                } else if ("utxt".equals(value)) {
112:                         optionList.add(new FlagsOption(new UtxtFlag())); // NOPMD
113:•                } else if ("sh".equals(value)) {
114:                         optionList.add(new FlagsOption(new ShFlag())); // NOPMD
115:                 }
116:         }
117:
118:         /**
119:          *
120:          * @param optionList
121:          * optionList
122:          * @param value
123:          * value
124:          */
125:         private void addType(final List<AbstractOption> optionList, final String value) {
126:•                if ("dir".equals(value)) {
127:                         optionList.add(new TypeOption(new DirType())); // NOPMD
128:•                } else if ("file".equals(value)) {
129:                         optionList.add(new TypeOption(new FileType())); // NOPMD
130:•                } else if ("local".equals(value)) {
131:                         optionList.add(new TypeOption(new LocalType())); // NOPMD
132:•                } else if ("node".equals(value)) {
133:                         optionList.add(new TypeOption(new NodeType())); // NOPMD
134:•                } else if ("symlink".equals(value)) {
135:                         optionList.add(new TypeOption(new SymlinkType())); // NOPMD
136:                 }
137:         }
138:
139: }