Skip to content

Package: UtilVisitorTransformer

UtilVisitorTransformer

nameinstructionbranchcomplexitylinemethod
firstToLowerCase(String)
M: 19 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
isVisitable(ClassType)
M: 0 C: 26
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 7
100%
M: 0 C: 1
100%

Coverage

1: package de.fhdw.wtf.generator.transformer.visitorTransformation;
2:
3: import java.util.Iterator;
4:
5: import de.fhdw.wtf.common.ast.type.ClassModifier;
6: import de.fhdw.wtf.common.ast.type.ClassModifierAbstract;
7: import de.fhdw.wtf.common.ast.type.ClassModifierService;
8: import de.fhdw.wtf.common.ast.type.ClassModifierTransient;
9: import de.fhdw.wtf.common.ast.type.ClassModifierVisitable;
10: import de.fhdw.wtf.common.ast.type.ClassType;
11: import de.fhdw.wtf.common.ast.visitor.ClassModifierVisitorReturn;
12:
13: public final class UtilVisitorTransformer {
14:         
15:         public static final String HANDLE_OPNAME = "handle";
16:         public static final String ACCEPT_OPNAME = "accept";
17:         public static final String ACCEPT_METHOD_WITHOUT_RETURN = "visitor.handle(this);";
18:         public static final String ACCEPT_METHOD_RETURN = "return " + ACCEPT_METHOD_WITHOUT_RETURN;
19:         public static final String ACCEPT_PARAMETER_NAME = "visitor";
20:         public static final String FULL_VISITOR_SUFFIX = "$Visitor";
21:         public static final String PARTIAL_VISITOR_SUFFIX = "$PartialVisitor";
22:         public static final String DEFAULT_VISITOR_COMMENT = "This class represents a visitor.";
23:         public static final String DEFAULT_HANDLE_COMMENT = "This operation is part of a visitor.";
24:         public static final String DEFAULT_ACCEPT_COMMENT = "This is an accept-Operation for a visitor.";
25:         public static final String DEFAULT_HANDLE_METHOD = "// TODO: Implement method!";
26:         public static final char JAVA_LINE_END = ';';
27:         public static final String RETURN_VISITOR = "Return";
28:         public static final String EXCEPTION_VISITOR = "Exception";
29:         
30:         private UtilVisitorTransformer() {
31:         }
32:         
33:         public static String firstToLowerCase(final String string) {
34:                 final String first = string.substring(0, 1);
35:                 final String firstLower = first.toLowerCase();
36:                 return firstLower + string.substring(1);
37:         }
38:         
39:         /**
40:          * Returns true if <code>c</code> has the {@link ClassModifier} {@link ClassModifierVisitable}. Else returns false.
41:          *
42:          * @param c
43:          * @return
44:          */
45:         public static boolean isVisitable(final ClassType c) {
46:                 final Iterator<ClassModifier> i = c.getModifiers().iterator();
47:                 boolean result = false;
48:•                while (!result && i.hasNext()) {
49:                         final ClassModifier current = i.next();
50:                         result = current.accept(new ClassModifierVisitorReturn<Boolean>() {
51:                                 @Override
52:                                 public Boolean handle(final ClassModifierAbstract modAbstract) {
53:                                         return false;
54:                                 }
55:                                 
56:                                 @Override
57:                                 public Boolean handle(final ClassModifierService modService) {
58:                                         return false;
59:                                 }
60:                                 
61:                                 @Override
62:                                 public Boolean handle(final ClassModifierTransient modTransient) {
63:                                         return false;
64:                                 }
65:                                 
66:                                 @Override
67:                                 public Boolean handle(final ClassModifierVisitable visitable) {
68:                                         return true;
69:                                 }
70:                         });
71:                 }
72:                 return result;
73:         }
74: }