public Object getAdapter()

in plugins/org.apache.karaf.eik.ui/src/main/java/org/apache/karaf/eik/ui/internal/KarafLaunchConfigurationAdapterFactory.java [38:86]


    public Object getAdapter(final Object adaptableObject, @SuppressWarnings("rawtypes") final Class adapterType) {

        // TODO: This entire method is ugly and needs to be cleaned up

        final Object adapted;
        if (     KarafPlatformModel.class.equals(adapterType)
              && adaptableObject instanceof ILaunchConfiguration)
        {
            final ILaunchConfiguration configuration = (ILaunchConfiguration) adaptableObject;
            try {
                if (configuration.getAttributes().containsKey(KarafLaunchConfigurationConstants.KARAF_LAUNCH_SOURCE_RUNTIME)) {
                    final String platformPath = (String) configuration.getAttributes().get(KarafLaunchConfigurationConstants.KARAF_LAUNCH_SOURCE_RUNTIME);
                    adapted = KarafPlatformModelRegistry.findPlatformModel(new Path(platformPath));
                } else {
                    adapted = null;
                }
            } catch (final CoreException e) {
                KarafUIPluginActivator.getLogger().error("Unable to find Karaf Platform model", e);
                return null;
            }
        } else if (    IKarafProject.class.equals(adapterType)
                    && adaptableObject instanceof KarafPlatformModel)
        {
            IKarafProject karafProject = null;
            final KarafPlatformModel karafPlatformModel = (KarafPlatformModel) adaptableObject;
            for (final IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
                if (KarafProject.isKarafProject(project)) {
                    karafProject = new KarafProject(project);
                    if (karafPlatformModel.getRootDirectory().equals(karafProject.getPlatformRootDirectory())) {
                        break;
                    }
                }
            }

            adapted = karafProject;
        } else if (    IKarafProject.class.equals(adapterType)
                    && adaptableObject instanceof IProject)
        {
            if (KarafProject.isKarafProject((IProject) adaptableObject)) {
                adapted = new KarafProject((IProject) adaptableObject);
            } else {
                return null;
            }
        } else {
            adapted = null;
        }

        return adapted;
    }