Package org.eclipse.jst.jsf.core.jsflibraryconfiguration.internal

Source Code of org.eclipse.jst.jsf.core.jsflibraryconfiguration.internal.JSFLibraryReferenceFacadeFactory

/*******************************************************************************
* Copyright (c) 2001, 2007 Oracle 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:
*     Oracle Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.jsf.core.jsflibraryconfiguration.internal;

import org.eclipse.jdt.core.IClasspathAttribute;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jst.j2ee.classpathdep.IClasspathDependencyConstants;
import org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryRegistryUtil;
import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.PluginProvidedJSFLibrary;
import org.eclipse.jst.jsf.core.jsflibraryconfiguration.JSFLibraryConfigurationHelper;
import org.eclipse.jst.jsf.core.jsflibraryconfiguration.JSFLibraryReference;
import org.eclipse.jst.jsf.core.jsflibraryconfiguration.JSFLibraryReferenceServerSupplied;

/**
* Factory for producing facade objects for references to the internal EMF JSF Library classes
* @deprecated
*/
public class JSFLibraryReferenceFacadeFactory {
  /**
   * Returns a JSFLibraryReferenceUserSpecified (or JSFLibraryReferenceUserDefined})  or JSFLibraryReferencePluginProvided instance.
   * Will not create a JSFLibraryReferenceServerSupplied as there is no cp entry.   Use createServerSuppliedJSFLibRef instead.
   * @param classpathEntry
   * @return an instance of JSFLibraryInternalReference.  Null will be returned if the cpEntry is not a JSF Library reference.
   */
  public static JSFLibraryReference create(final IClasspathEntry classpathEntry) {
    if (JSFLibraryConfigurationHelper.isJSFLibraryContainer(classpathEntry)){
      return createReference(classpathEntry);
    }
    return null;
  }

  /**
   * @return instance of {@link JSFLibraryReferenceServerSupplied}
   */
  public static JSFLibraryReferenceServerSupplied createServerSuppliedJSFLibRef(){
    return new JSFLibraryReferenceServerSuppliedImpl();
  }


  /**
   * @param classpathEntry
   * @return {@link JSFLibraryReference}
   */
  private static JSFLibraryReference createReference(
      final IClasspathEntry classpathEntry) {
   
    String libID = classpathEntry.getPath().segment(1);
    org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryInternalReference libRef = JSFLibraryRegistryUtil.getInstance().getJSFLibraryReferencebyID(libID);
    if (libRef!= null){
      boolean isDeployed = getJ2EEModuleDependency(classpathEntry);
      if (libRef.getLibrary() instanceof PluginProvidedJSFLibrary)
        return new JSFLibraryReferencePluginProvidedImpl(libRef, isDeployed);
     
      return new JSFLibraryReferenceUserSpecifiedImpl(libRef, isDeployed);
    }
    return null;
  }

  private static boolean getJ2EEModuleDependency(IClasspathEntry classpathEntry) {
    IClasspathAttribute[] attrs = classpathEntry.getExtraAttributes();
    for (int i=0;i<attrs.length;i++){
      IClasspathAttribute attr = attrs[i];
      if (attr.getName().equals(IClasspathDependencyConstants.CLASSPATH_COMPONENT_DEPENDENCY)){
        return true;
      }
    }
    return false;
  }
}
TOP

Related Classes of org.eclipse.jst.jsf.core.jsflibraryconfiguration.internal.JSFLibraryReferenceFacadeFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.