Skip to content

Package: FinderTransformer

FinderTransformer

nameinstructionbranchcomplexitylinemethod
FinderTransformer(Model, TaskExecutor, GeneratorModel)
M: 11 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
beginTask()
M: 1 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
finalizeTask()
M: 37 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
handleAttribute(Attribute, ClassType)
M: 72 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 12 C: 0
0%
M: 1 C: 0
0%
handleClass(ClassType)
M: 1 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
handleConstructorOrOperation(ConstructorOrOperation, ClassType)
M: 1 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
handleGroup(Group)
M: 1 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: package de.fhdw.wtf.generator.transformer.transformers.classTransformer;
2:
3: import java.util.Collection;
4: import java.util.Vector;
5:
6: import de.fhdw.wtf.common.ast.Attribute;
7: import de.fhdw.wtf.common.ast.ConstructorOrOperation;
8: import de.fhdw.wtf.common.ast.Group;
9: import de.fhdw.wtf.common.ast.Model;
10: import de.fhdw.wtf.common.ast.type.ClassType;
11: import de.fhdw.wtf.common.exception.walker.TaskException;
12: import de.fhdw.wtf.common.task.TaskExecutor;
13: import de.fhdw.wtf.generator.java.generatorModel.GenAspect;
14: import de.fhdw.wtf.generator.java.generatorModel.GenAspectAttribute;
15: import de.fhdw.wtf.generator.java.generatorModel.GenAspectOperation;
16: import de.fhdw.wtf.generator.java.generatorModel.GenClassModifier;
17: import de.fhdw.wtf.generator.java.generatorModel.GenComment;
18: import de.fhdw.wtf.generator.java.generatorModel.GenException;
19: import de.fhdw.wtf.generator.java.generatorModel.GenFullParsedOperationState;
20: import de.fhdw.wtf.generator.java.generatorModel.GenInterfaceClass;
21: import de.fhdw.wtf.generator.java.generatorModel.GenJavaAttribute;
22: import de.fhdw.wtf.generator.java.generatorModel.GenJavaOperation;
23: import de.fhdw.wtf.generator.java.generatorModel.GenOperationModifier;
24: import de.fhdw.wtf.generator.java.generatorModel.GenParameter;
25: import de.fhdw.wtf.generator.java.generatorModel.GenTypeReferenceByReference;
26: import de.fhdw.wtf.generator.java.generatorModel.GenUnqualifiedPackage;
27: import de.fhdw.wtf.generator.java.generatorModel.GenVisibility;
28: import de.fhdw.wtf.generator.java.generatorModel.GeneratorModel;
29:
30: public class FinderTransformer extends Transformer {
31:         
32:         private final Collection<GenAspectOperation> findOperations;
33:         
34:         public FinderTransformer(final Model m, final TaskExecutor taskmanager, final GeneratorModel generatorModel) {
35:                 super(m, taskmanager, generatorModel);
36:                 this.findOperations = new Vector<>();
37:         }
38:         
39:         @Override
40:         public void handleClass(final ClassType c) throws TaskException {
41:                 // nothing to do
42:         }
43:         
44:         @Override
45:         public void handleGroup(final Group g) throws TaskException {
46:                 // nothing to do
47:         }
48:         
49:         @Override
50:         public void handleAttribute(final Attribute a, final ClassType owner) throws TaskException {
51:                 // TODO finder method and comment
52:•                if (a.isFindable()) {
53:                         final de.fhdw.wtf.generator.java.generatorModel.GenClass genOwner =
54:                                         this.getGeneratorModel().getJavaClassForWTFClass(owner);
55:                         final Vector<GenParameter> param = new Vector<>();
56:                         final de.fhdw.wtf.generator.java.generatorModel.GenClass attrType =
57:                                         this.getGeneratorModel().getJavaClassForWTFClass(a.getAttrType());
58:                         param.add(GenParameter.create("findBy", attrType));
59:                         final Vector<GenOperationModifier> modifiers = new Vector<>();
60:                         modifiers.add(GenOperationModifier.STATIC);
61:                         final GenTypeReferenceByReference ref = GenTypeReferenceByReference.create(genOwner);
62:                         final GenFullParsedOperationState state =
63:                                         GenFullParsedOperationState.create(
64:                                                         GenComment.createFromPlainText("Commi", true),
65:                                                         new Vector<GenException>(),
66:                                                         ref,
67:                                                         modifiers,
68:                                                         GenVisibility.PUBLIC,
69:                                                         "Operation");
70:                         final GenAspectOperation currentOp =
71:                                         GenAspectOperation.create("find" + owner.getName() + "By" + a.getName(), param, state, genOwner);
72:                         this.findOperations.add(currentOp);
73:                 }
74:         }
75:         
76:         @Override
77:         public void handleConstructorOrOperation(final ConstructorOrOperation coo, final ClassType owner)
78:                         throws TaskException {
79:                 // TODO Please implement if necessary! (handleConstructor)
80:                 
81:         }
82:         
83:         @Override
84:         public void finalizeTask() throws TaskException {
85:                 // TODO finder class comment and package
86:                 final GenUnqualifiedPackage aspectPackage = GenUnqualifiedPackage.create("iwo");
87:                 final GenAspect finderAspect =
88:                                 GenAspect.create(
89:                                                 "FinderAspect",
90:                                                 new Vector<GenJavaOperation>(),
91:                                                 this.findOperations,
92:                                                 new Vector<GenInterfaceClass>(),
93:                                                 new Vector<GenJavaAttribute>(),
94:                                                 new Vector<GenAspectAttribute>(),
95:                                                 new Vector<GenClassModifier>(),
96:                                                 new Vector<GenJavaOperation>(),
97:                                                 null,
98:                                                 aspectPackage,
99:                                                 GenComment.createFromPlainText("Commi", false),
100:                                                 "");
101:                 this.getGeneratorModel().addNonAstClass(finderAspect);
102:         }
103:         
104:         @Override
105:         public void beginTask() throws TaskException {
106:                 // Nothing
107:         }
108:         
109: }