org.eclipse.jst.j2ee.internal.project.facet.UtilityFacetInstallDataModelProvider.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.jst.j2ee.internal.project.facet.UtilityFacetInstallDataModelProvider.java

Source

/*******************************************************************************
 * Copyright (c) 2005, 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jst.j2ee.internal.project.facet;

import java.util.List;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jst.common.project.facet.core.JavaFacet;
import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants;
import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
import org.eclipse.jst.j2ee.project.facet.IUtilityFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.project.facet.J2EEModuleFacetInstallDataModelProvider;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;

public class UtilityFacetInstallDataModelProvider extends J2EEModuleFacetInstallDataModelProvider
        implements IUtilityFacetInstallDataModelProperties {
    public UtilityFacetInstallDataModelProvider() {
        super();
    }

    @Override
    public Object getDefaultProperty(String propertyName) {
        if (FACET_ID.equals(propertyName)) {
            return UTILITY;
        } else if (propertyName.equals(MODULE_URI)) {
            String projectName = model.getStringProperty(FACET_PROJECT_NAME).replace(' ', '_');
            return projectName + IJ2EEModuleConstants.JAR_EXT;
        } else if (propertyName.equals(CONFIG_FOLDER)) {
            final IFacetedProjectWorkingCopy fpjwc = (IFacetedProjectWorkingCopy) getProperty(
                    FACETED_PROJECT_WORKING_COPY);

            if (this.javaFacetInstallConfig != null) {
                final List<IPath> sourceFolders = this.javaFacetInstallConfig.getSourceFolders();

                if (!sourceFolders.isEmpty()) {
                    return sourceFolders.get(0).toPortableString();
                }
            } else {
                final IFacetedProject fpj = fpjwc.getFacetedProject();

                if (fpj.hasProjectFacet(JavaFacet.FACET)) {
                    try {
                        final IJavaProject jpj = JavaCore.create(fpj.getProject());

                        for (IClasspathEntry cpe : jpj.getRawClasspath()) {
                            if (cpe.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                                return cpe.getPath().removeFirstSegments(1).toPortableString();
                            }
                        }
                    } catch (CoreException e) {
                        J2EEPlugin.logError(e);
                    }
                }
            }
        }
        return super.getDefaultProperty(propertyName);
    }

    @Override
    protected int convertFacetVersionToJ2EEVersion(IProjectFacetVersion version) {
        return 0;
    }
}