Package: AdapterFactoryVdmSourceUnit

AdapterFactoryVdmSourceUnit

nameinstructionbranchcomplexitylinemethod
AdapterFactoryVdmSourceUnit()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getAdapter(Object, Class)
M: 47 C: 0
0%
M: 10 C: 0
0%
M: 6 C: 0
0%
M: 12 C: 0
0%
M: 1 C: 0
0%
getAdapterList()
M: 7 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: /*
2: * #%~
3: * org.overture.ide.core
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.ide.core.resources;
23:
24: import org.eclipse.core.resources.IFile;
25: import org.eclipse.core.resources.IProject;
26: import org.eclipse.core.runtime.CoreException;
27: import org.eclipse.core.runtime.IAdapterFactory;
28: import org.overture.ide.core.VdmCore;
29:
30: public class AdapterFactoryVdmSourceUnit implements IAdapterFactory
31: {
32:
33:         public Object getAdapter(Object adaptableObject,
34:                         @SuppressWarnings("rawtypes") Class adapterType)
35:         {
36:•                if (adapterType == IVdmSourceUnit.class)
37:                 {
38:•                        if (adaptableObject instanceof IFile)
39:                         {
40:                                 IFile f = (IFile) adaptableObject;
41:                                 IProject project = f.getProject();
42:                                 IVdmProject p = (IVdmProject) project.getAdapter(IVdmProject.class);
43:•                                if (p != null)
44:                                 {
45:                                         try
46:                                         {
47:•                                                for (IVdmSourceUnit source : p.getSpecFiles())
48:                                                 {
49:•                                                        if (source.getFile().getProjectRelativePath().equals(f.getProjectRelativePath()))
50:                                                         {
51:                                                                 return source;
52:                                                         }
53:                                                 }
54:                                         } catch (CoreException e)
55:                                         {
56:                                                 VdmCore.log("Failed to adapt ifile to ivdmsourceunit", e);
57:                                         }
58:                                 }
59:                         }
60:                 }
61:
62:                 return null;
63:         }
64:
65:         @SuppressWarnings("rawtypes")
66:         public Class[] getAdapterList()
67:         {
68:                 return new Class[] { IFile.class };
69:         }
70:
71: }