Package: AssistantBase

AssistantBase

nameinstructionbranchcomplexitylinemethod
AssistantBase(AssistantManager)
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
cloneNodes(List, Class)
M: 0 C: 30
100%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 0 C: 7
100%
M: 0 C: 1
100%
getVdmNode(PIR)
M: 0 C: 11
100%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 0 C: 3
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * #%~
3: * VDM Code Generator
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.codegen.assistant;
23:
24: import java.util.LinkedList;
25: import java.util.List;
26:
27: import org.apache.log4j.Logger;
28: import org.overture.codegen.ir.INode;
29: import org.overture.codegen.ir.PIR;
30:
31: public abstract class AssistantBase
32: {
33:         protected Logger log = Logger.getLogger(this.getClass().getName());
34:
35:         protected AssistantManager assistantManager;
36:
37:         public AssistantBase(AssistantManager assistantManager)
38:         {
39:                 super();
40:                 this.assistantManager = assistantManager;
41:         }
42:
43:         public static org.overture.ast.node.INode getVdmNode(PIR irNode)
44:         {
45:•                if (irNode != null && irNode.getSourceNode() != null)
46:                 {
47:                         return irNode.getSourceNode().getVdmNode();
48:                 } else
49:                 {
50:                         return null;
51:                 }
52:         }
53:
54:         public <T extends INode> List<T> cloneNodes(List<T> list, Class<T> nodeType)
55:         {
56:                 List<T> cloneList = new LinkedList<T>();
57:
58:•                for (T e : list)
59:                 {
60:                         Object clone = e.clone();
61:
62:•                        if (nodeType.isInstance(clone))
63:                         {
64:                                 cloneList.add(nodeType.cast(clone));
65:                         }
66:                 }
67:
68:                 return cloneList;
69:         }
70: }