blob: 343d83f99df9f32f77937edf125cfb35e082d36a [file] [log] [blame]
package org.eclipse.ptp.internal.rdt.core.includebrowser;
import java.io.Serializable;
import org.eclipse.cdt.core.index.IIndexFile;
import org.eclipse.cdt.core.index.IIndexFileLocation;
import org.eclipse.cdt.core.index.IIndexInclude;
import org.eclipse.cdt.core.index.IIndexLocationConverter;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.ptp.internal.rdt.core.miners.RemoteIndexFileLocation;
public class IndexIncludeValue implements IIndexIncludeValue, Serializable
{
/**
*
*/
private static final long serialVersionUID = -6440736393666515385L;
private transient IIndexInclude include;
private transient IIndexFile includedBy;
private transient IIndexLocationConverter converter;
private IIndexFileLocation includedByLocation;
private IIndexFileLocation includesLocation;
private long includedByTimestamp;
private String name, fullName;
private int nameLength;
private int nameOffset;
private boolean isActive;
private boolean isResolved;
private boolean isSystemInclude;
public IndexIncludeValue(IIndexInclude include) throws CoreException
{
this(include, null);
}
public IndexIncludeValue(IIndexInclude include, IIndexLocationConverter converter) throws CoreException
{
if (include == null)
throw new IllegalArgumentException();
this.converter = converter;
this.include = include;
includedBy = include.getIncludedBy();
//converting non-serializable IndexFileLocation to RemoteIndexFileLocation
if (include.getIncludedByLocation() != null)
{
if (converter != null)
includedByLocation = converter.fromInternalFormat(include.getIncludedByLocation().getURI().toString());
//includedByLocation = new RemoteIndexFileLocation(include.getIncludedByLocation());
}
if (include.getIncludesLocation() != null)
{
if (converter != null)
includesLocation = converter.fromInternalFormat(include.getIncludesLocation().getURI().toString());
//includesLocation = new RemoteIndexFileLocation(include.getIncludesLocation());
}
includedByTimestamp = include.getIncludedBy().getTimestamp();
name = include.getName();
fullName = include.getFullName();
nameLength = include.getNameLength();
nameOffset = include.getNameOffset();
isActive = include.isActive();
isResolved = include.isResolved();
isSystemInclude = include.isSystemInclude();
}
//returns absolute url in the form of: schema://host/mypath...filename
public IIndexFileLocation getIncludedByLocation() throws CoreException
{
return this.includedByLocation;
}
//returns absolute url in the form of: protocol://host/mypath...file.ext
public IIndexFileLocation getIncludesLocation() throws CoreException
{
return this.includesLocation;
}
public String getName() throws CoreException
{
return this.name;
}
public int getNameLength() throws CoreException
{
return this.nameLength;
}
public int getNameOffset() throws CoreException
{
return this.nameOffset;
}
public boolean isActive() throws CoreException
{
return this.isActive;
}
public boolean isResolved() throws CoreException
{
return this.isResolved;
}
public boolean isSystemInclude() throws CoreException
{
return this.isSystemInclude;
}
public long getIncludedByTimestamp()
{
return this.includedByTimestamp;
}
//NOTE: after the transport getter below will return null
public IIndexFile getIncludedBy() throws CoreException
{
return this.includedBy;
}
public IIndexInclude getIndexInclude()
{
return this.include;
}
public IIndexLocationConverter getLocationConverter()
{
return this.converter;
}
public String toString()
{
StringBuffer buffer = new StringBuffer(100);
buffer.append("\nsuper = ").append(super.toString()); //$NON-NLS-1$
buffer.append("\nincludedByLocation = ").append(this.includedByLocation); //$NON-NLS-1$
buffer.append("\nincludesLocation = ").append(this.includesLocation); //$NON-NLS-1$
buffer.append("\nname = ").append(this.name); //$NON-NLS-1$
buffer.append("\nnameLength = ").append(this.nameLength); //$NON-NLS-1$
buffer.append("\nnameOffset = ").append(this.nameOffset); //$NON-NLS-1$
buffer.append("\nisActive = ").append(this.isActive); //$NON-NLS-1$
buffer.append("\nisResolved = ").append(this.isResolved); //$NON-NLS-1$
buffer.append("\nisSystemInclude = ").append(this.isSystemInclude); //$NON-NLS-1$
buffer.append("\nincludedByTimestamp = ").append(this.includedByTimestamp); //$NON-NLS-1$
return buffer.toString();
}
public boolean isResolvedByHeuristics() throws CoreException {
// TODO Auto-generated method stub
return false;
}
public String getFullName() throws CoreException {
return fullName;
}
}