blob: 7251d44e6145a48db9c993139348a2ae6960a96d [file] [log] [blame]
/*******************************************************************************
* 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 java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryInternalReference;
import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.ArchiveFile;
import org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFLibrary;
import org.eclipse.jst.jsf.core.jsflibraryconfiguration.JSFLibraryReference;
import org.eclipse.jst.jsf.core.jsflibraryconfiguration.JSFVersion;
/**
* @author gekessle
* @deprecated
*/
public abstract class AbstractJSFLibraryReferenceImpl implements JSFLibraryReference {
/**
* The {@link org.eclipse.jst.jsf.core.internal.jsflibraryconfig.JSFLibraryInternalReference} being wrapped
*/
protected JSFLibraryInternalReference libRef;
private String _id;
private String _label;
private boolean _isImplementation;
private boolean _isDeloyed;
/**
* Constructor for "virtual" JSF Library References like "ServerSupplied"
* @param id
* @param label
* @param isImplementation
*/
public AbstractJSFLibraryReferenceImpl(String id, String label, boolean isImplementation){
_id = id;
_label = label;
_isImplementation = isImplementation;
}
/**
* Constructor non-virtual library references
* @param libRef
* @param isDeployed
*/
public AbstractJSFLibraryReferenceImpl(JSFLibraryInternalReference libRef, boolean isDeployed){
this.libRef = libRef;
_isDeloyed = isDeployed;
}
public String getId() {
if (libRef != null)
return libRef.getID();
return _id;
}
public String getLabel() {
if (libRef != null)
return libRef.getLabel();
return _label;
}
public boolean isDeployed() {
return _isDeloyed;
}
public boolean isJSFImplementation() {
if (libRef != null)
return libRef.isImplementation();
return _isImplementation;
}
/**
* @return the JSFLibrary underpinning the reference.
* May be null if the library is missing or cannot be resolved from the registry.
*/
protected JSFLibrary getLibrary(){
return libRef.getLibrary();
}
public Collection<IClasspathEntry> getJars() {
Set<IClasspathEntry> results = new HashSet<IClasspathEntry>();
if (getLibrary() != null){
List jars = getLibrary().getArchiveFiles();
for (Iterator it= jars.iterator();it.hasNext();){
ArchiveFile jar = (ArchiveFile)it.next();
String path = jar.getResolvedSourceLocation();
results.add(JavaCore.newLibraryEntry(new Path(path), null, null));
}
}
return results;
}
public JSFVersion getMaxSupportedVersion() {
if (getLibrary() != null)
return adaptVersion(getLibrary().getJSFVersion());
return null;
}
private JSFVersion adaptVersion(
org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion version) {
switch (version.getValue()){
case org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion.V1_1:
return JSFVersion.V1_1;
case org.eclipse.jst.jsf.core.internal.jsflibraryregistry.JSFVersion.V1_2:
return JSFVersion.V1_2;
default:
return JSFVersion.UNKNOWN;
}
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.core.jsflibraryconfiguration.JSFLibraryReference#getName()
*/
public String getName() {
if (getLibrary()!= null) {
return getLibrary().getName();
}
return getId();
}
public String toString(){
StringBuffer buf = new StringBuffer("id: "); //$NON-NLS-1$
buf.append(getId());
buf.append(", label: "); //$NON-NLS-1$
buf.append(getLabel());
buf.append(", isDeployed: "); //$NON-NLS-1$
buf.append(isDeployed());
buf.append(", isImpl: "); //$NON-NLS-1$
buf.append(isJSFImplementation());
buf.append(", version: "); //$NON-NLS-1$
buf.append(getMaxSupportedVersion().name());
return buf.toString();
}
}