1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-14 20:45:22 +02:00

[220020][api][breaking] SystemFileTransferModeRegistry should be internal

This commit is contained in:
Martin Oberhuber 2008-02-22 20:30:15 +00:00
parent d051bba838
commit 78e2da4542
12 changed files with 176 additions and 108 deletions

View file

@ -40,6 +40,7 @@
* Xuan Chen (IBM) - [191370] [dstore] supertransfer zip not deleted when cancelling copy
* Xuan Chen (IBM) - [210816] Archive testcases throw ResourceException if they are run in batch
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
********************************************************************************/
package org.eclipse.rse.files.ui.resources;
@ -96,7 +97,6 @@ import org.eclipse.rse.services.files.RemoteFileSecurityException;
import org.eclipse.rse.services.files.RemoteFolderNotEmptyException;
import org.eclipse.rse.subsystems.files.core.SystemIFileProperties;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
@ -111,7 +111,9 @@ import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
/**
* Utility class for doing file transfers on universal systems
* Utility class for doing file transfers on universal systems.
*
* Clients may use this class, but not instantiate or subclass it.
*/
public class UniversalFileTransferUtility
{
@ -825,7 +827,7 @@ public class UniversalFileTransferUtility
long remoteModifiedStamp = srcFileOrFolder.lastModified();
boolean usedBin = properties.getUsedBinaryTransfer();
boolean shouldUseBin = SystemFileTransferModeRegistry.getInstance().isBinary(srcFileOrFolder);
boolean shouldUseBin = RemoteFileUtility.getSystemFileTransferModeRegistry().isBinary(srcFileOrFolder);
if (storedModifiedStamp == remoteModifiedStamp && (usedBin == shouldUseBin))
{
return tempFile;
@ -855,7 +857,7 @@ public class UniversalFileTransferUtility
}
if (tempFile.exists())
{
if (SystemFileTransferModeRegistry.getInstance().isText(srcFileOrFolder))
if (RemoteFileUtility.getSystemFileTransferModeRegistry().isText(srcFileOrFolder))
{
try
{
@ -907,7 +909,7 @@ public class UniversalFileTransferUtility
}
// encoding conversion required if it a text file but not an xml file
boolean isBinary = SystemFileTransferModeRegistry.getInstance().isBinary(file);
boolean isBinary = RemoteFileUtility.getSystemFileTransferModeRegistry().isBinary(file);
boolean isEncodingConversionRequired = !isBinary;
inputStream = new FileInputStream(file);
@ -1595,7 +1597,7 @@ public class UniversalFileTransferUtility
String srcCharSet = null;
boolean isText = SystemFileTransferModeRegistry.getInstance().isText(newPath);
boolean isText = RemoteFileUtility.getSystemFileTransferModeRegistry().isText(newPath);
if (isText)
{
try

View file

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others. All rights reserved.
* Copyright (c) 2002, 2008 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
@ -16,6 +16,7 @@
* David McKnight (IBM) - [208951] no longer used editor registry for file type associations
* David McKnight (IBM) - [203114] Usability improvements for file transfer mode prefs
* David McKnight (IBM) - [210142] for accessibility need transfer mode toggle button
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
********************************************************************************/
package org.eclipse.rse.internal.files.ui.propertypages;
@ -44,13 +45,13 @@ import org.eclipse.jface.window.Window;
import org.eclipse.rse.internal.files.ui.Activator;
import org.eclipse.rse.internal.files.ui.FileResources;
import org.eclipse.rse.internal.subsystems.files.core.ISystemFilePreferencesConstants;
import org.eclipse.rse.internal.subsystems.files.core.model.SystemFileTransferModeMapping;
import org.eclipse.rse.internal.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager;
import org.eclipse.rse.services.clientserver.messages.SimpleSystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessage;
import org.eclipse.rse.services.clientserver.messages.SystemMessageFile;
import org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeMapping;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.ui.Mnemonics;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemWidgetHelpers;

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others.
* Copyright (c) 2002, 2008 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
@ -13,15 +13,17 @@
*
* Contributors:
* David McKnight (IBM) - [208951] new priority field
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.core.model;
package org.eclipse.rse.internal.subsystems.files.core.model;
import org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping;
/**
* An internal class. Clients must not instantiate or subclass it.
*/
public class SystemFileTransferModeMapping implements ISystemFileTransferModeMapping, Cloneable {
public static final int DEFAULT_PRIORITY = Integer.MAX_VALUE;
@ -55,18 +57,17 @@ public class SystemFileTransferModeMapping implements ISystemFileTransferModeMap
setExtension(extension);
}
/**
* @see ISystemFileTransferModeMapping#getExtension()
/*
* (non-Javadoc)
* @see org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping#getExtension()
*/
public String getExtension() {
return extension;
}
/**
* @see ISystemFileTransferModeMapping#getLabel()
/*
* (non-Javadoc)
* @see org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping#getLabel()
*/
public String getLabel() {
@ -78,31 +79,30 @@ public class SystemFileTransferModeMapping implements ISystemFileTransferModeMap
}
}
/**
* @see ISystemFileTransferModeMapping#getName()
/*
* (non-Javadoc)
* @see org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping#getName()
*/
public String getName() {
return name;
}
/**
* @see ISystemFileTransferModeMapping#isBinary()
/*
* (non-Javadoc)
* @see org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping#isBinary()
*/
public boolean isBinary() {
return isBinary;
}
/**
* @see ISystemFileTransferModeMapping#isText()
/*
* (non-Javadoc)
* @see org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping#isText()
*/
public boolean isText() {
return !isBinary();
}
/**
* Set whether transfer mode is binary
*/
@ -110,14 +110,12 @@ public class SystemFileTransferModeMapping implements ISystemFileTransferModeMap
isBinary = true;
}
/**
* Set whether transfer mode is text
*/
public void setAsText() {
isBinary = false;
}
/**
* Set the name
@ -126,7 +124,6 @@ public class SystemFileTransferModeMapping implements ISystemFileTransferModeMap
this.name = name;
}
/**
* Set the extension
*/
@ -136,27 +133,28 @@ public class SystemFileTransferModeMapping implements ISystemFileTransferModeMap
/**
* Set the priority - the smaller the number, the higher priority
* @param priority
* @param priority priority to set.
*/
public void setPriority(int priority) {
this.priority = priority;
}
/**
* Gets the priority - the smaller the number, the higher priority
* @return the priority
/*
* (non-Javadoc)
* @see org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping#getPriority()
*/
public int getPriority()
{
return this.priority;
}
/**
* Clone this object
* Clone this object.
*
* Subclasses must ensure that such a deep copy operation is always
* possible, so their state must always be cloneable.
*/
public Object clone() {
try {
return super.clone();
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others.
* Copyright (c) 2002, 2008 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
@ -14,8 +14,9 @@
* Contributors:
* Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin
* David McKnight (IBM) - [208951] Use remoteFileTypes extension point to determine file types
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.core.model;
package org.eclipse.rse.internal.subsystems.files.core.model;
import java.io.File;
import java.io.FileInputStream;
@ -37,6 +38,8 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.rse.internal.subsystems.files.core.ISystemFilePreferencesConstants;
import org.eclipse.rse.services.clientserver.SystemEncodingUtil;
import org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeMapping;
import org.eclipse.rse.subsystems.files.core.model.ISystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.SystemBasePlugin;
@ -67,7 +70,7 @@ public class SystemFileTransferModeRegistry implements ISystemFileTransferModeRe
private static final String MODE_ATTRIBUTE = "mode"; //$NON-NLS-1$
private static final String BINARY_VALUE = "binary"; //$NON-NLS-1$
private static final String TEXT_VALUE = "text"; //$NON-NLS-1$
private static final String PRIORITY_ATTRIBUTE = "priority";
private static final String PRIORITY_ATTRIBUTE = "priority"; //$NON-NLS-1$
/**
* Constructor for SystemFileTransferModeRegistry
@ -141,10 +144,10 @@ public class SystemFileTransferModeRegistry implements ISystemFileTransferModeRe
}
int priority = SystemFileTransferModeMapping.DEFAULT_PRIORITY;
String priorityStr = element.getAttribute("priority");
String priorityStr = element.getAttribute("priority"); //$NON-NLS-1$
try
{
if (priorityStr != null && !priorityStr.equals("")){
if (priorityStr != null && !priorityStr.equals("")){ //$NON-NLS-1$
priority = Integer.parseInt(priorityStr);
}
}

View file

@ -46,6 +46,11 @@ import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystemConf
* <p>
* It is invalid to have both a comma and an asterisk in the same filter string.
* It is also invalid to have both a comma and a period in the same filter string.
*
* Clients may use or subclass this class. When subclassing, clients need to
* ensure that the subclass is always capable of performing a deep clone
* operation with the {@link #clone()} method, so if they add fields of
* complex type, these need to be dealt with by overriding {@link #clone()}.
*/
public class RemoteFileFilterString implements Cloneable
{
@ -69,6 +74,7 @@ public class RemoteFileFilterString implements Cloneable
subdirs = true;
files = true;
}
/**
* Constructor to use when there is no existing filter string.
* <p>
@ -86,6 +92,7 @@ public class RemoteFileFilterString implements Cloneable
subdirs = true;
files = true;
}
/**
* Constructor to use when an absolute filter string already exists.
*/
@ -94,6 +101,7 @@ public class RemoteFileFilterString implements Cloneable
this(subsysFactory);
parse(null, input);
}
/**
* Constructor to use when you have a path and filename filter or comma-separated file types list.
* In the latter case, the last char must be a TYPE_SEP or comma, even for a single type.
@ -108,6 +116,7 @@ public class RemoteFileFilterString implements Cloneable
{
PATH_SEP = subsysFactory.getSeparator();
}
/**
* Set the file name filter. You either call this or setTypes!
*/
@ -115,6 +124,7 @@ public class RemoteFileFilterString implements Cloneable
{
file = obj;
}
/**
* Set the path to list files and/or folders in
*/
@ -122,6 +132,7 @@ public class RemoteFileFilterString implements Cloneable
{
this.path = path;
}
/**
* Set the file types to subset by. These are extensions, without the dot, as
* in java, class, gif, etc.
@ -132,6 +143,7 @@ public class RemoteFileFilterString implements Cloneable
this.types = types;
filterByTypes = (types != null);
}
/**
* Allow files?
*/
@ -139,6 +151,7 @@ public class RemoteFileFilterString implements Cloneable
{
files = set;
}
/**
* Allow subdirs?
*/
@ -168,6 +181,7 @@ public class RemoteFileFilterString implements Cloneable
return getTypesString(types);
}
}
/**
* Concatenate the given file types as a single string, each type comma-separated
*/
@ -178,6 +192,7 @@ public class RemoteFileFilterString implements Cloneable
typesBuffer.append(typesArray[idx]+","); //$NON-NLS-1$
return typesBuffer.toString();
}
/**
* For file types filters, returns the types as a string of concatenated types,
* comma-delimited. For file name filters, returns null;
@ -204,13 +219,15 @@ public class RemoteFileFilterString implements Cloneable
{
return types;
}
/**
* Subdirs allowed?
* Should the filter show individual files?
*/
public boolean getShowFiles()
{
return files;
}
/**
* Subdirs allowed?
*/
@ -218,6 +235,7 @@ public class RemoteFileFilterString implements Cloneable
{
return subdirs;
}
/**
* Return true if this filter string filters by file types versus by file name
*/
@ -243,7 +261,6 @@ public class RemoteFileFilterString implements Cloneable
return toStringNoSwitches().equals("/*"); //$NON-NLS-1$
}
/**
*
*/
@ -313,6 +330,7 @@ public class RemoteFileFilterString implements Cloneable
//this.path = fileObj.getAbsolutePath(); // happens for root drives
//this.file = fileObj.getName();
}
/**
* Parse the non-folder part of the filter string. Will either be a
* generic name or comma-separated list of types.
@ -333,6 +351,7 @@ public class RemoteFileFilterString implements Cloneable
else
file = filter;
}
/**
* Parse a comma-separated list of strings into an array of strings
*/
@ -353,7 +372,7 @@ public class RemoteFileFilterString implements Cloneable
}
/**
* De-hydrate into a string capturing all the attributes
* Serialize into a string capturing all the attributes
*/
public String toString()
{
@ -364,6 +383,7 @@ public class RemoteFileFilterString implements Cloneable
fs += SWITCH_NOFILES;
return fs;
}
/**
* Return the filter as a string, without the switches for no-files, no-folders
*/
@ -379,24 +399,25 @@ public class RemoteFileFilterString implements Cloneable
else
fs = path+getFileOrTypes();
return fs;
}
}
/**
* Clone this into another filter string object with the same attributes.
*
* Subclasses must ensure that such a deep copy operation is always
* possible, so their state must always be cloneable.
*/
public Object clone()
{
RemoteFileFilterString copy = new RemoteFileFilterString();
copy.path = path;
copy.file = file;
copy.subdirs = subdirs;
copy.files = files;
copy.PATH_SEP = PATH_SEP;
copy.filterByTypes = filterByTypes;
if (types!=null)
{
copy.types = new String[types.length];
for (int idx=0; idx<types.length; idx++)
copy.types[idx] = types[idx]; // don't think we need to clone strings as they are immutable
RemoteFileFilterString copy = null;
try {
copy = (RemoteFileFilterString)super.clone();
} catch(CloneNotSupportedException e) {
//assert false; //can never happen
throw new RuntimeException(e);
}
if (types!=null) {
copy.types = (String[])types.clone();
}
return copy;
}

View file

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
* Copyright (c) 2006, 2008 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
@ -13,6 +13,7 @@
* Contributors:
* Martin Oberhuber (Wind River) - [184095] Replace systemTypeName by IRSESystemType
* Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
********************************************************************************/
package org.eclipse.rse.subsystems.files.core.model;
@ -26,14 +27,25 @@ import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISubSystemConfiguration;
import org.eclipse.rse.internal.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystemConfiguration;
/**
* Public utility class for dealing with remote file subsystems.
*
* Clients may use this class, but not instantiate or subclass it.
*/
public class RemoteFileUtility
{
/**
* Return the first remote file subsystem associated with a connection.
* @param connection the connection to query.
* @return an IRemoteFileSubSystem instance, or <code>null</code> if
* no file subsystem is configured with the given connection.
*/
public static IRemoteFileSubSystem getFileSubSystem(IHost connection)
{
ISystemRegistry sr = RSECorePlugin.getTheSystemRegistry();
@ -49,6 +61,11 @@ public class RemoteFileUtility
return null;
}
/**
* Return the list of file subsystems associated with a connection.
* @param connection the connection to query.
* @return a list of IRemoteFileSubSystem instances (may be empty).
*/
public static IRemoteFileSubSystem[] getFileSubSystems(IHost connection)
{
List results = new ArrayList();
@ -65,6 +82,12 @@ public class RemoteFileUtility
return (IRemoteFileSubSystem[])results.toArray(new IRemoteFileSubSystem[results.size()]);
}
/**
* Return the first remote file subsystem configuration associated with a system type.
* @param systemType the system type to query.
* @return an IRemoteFileSubSystemConfiguration instance, or <code>null</code> if
* no file subsystem is configured with the given system type.
*/
public static IRemoteFileSubSystemConfiguration getFileSubSystemConfiguration(IRSESystemType systemType)
{
ISystemRegistry sr = RSECorePlugin.getTheSystemRegistry();
@ -78,5 +101,14 @@ public class RemoteFileUtility
}
return null;
}
/**
* Return the global SystemFileTransferModeRegistry.
* @return the global SystemFileTransferModeRegistry.
*/
public static ISystemFileTransferModeRegistry getSystemFileTransferModeRegistry()
{
return SystemFileTransferModeRegistry.getInstance();
}
}

View file

@ -31,6 +31,7 @@
* David Dykstal (IBM) - [217556] remove service subsystem types
* Martin Oberhuber (Wind River) - [219098][api] FileServiceSubSystem should not be final
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.core.servicesubsystem;
@ -68,7 +69,7 @@ import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
import org.eclipse.rse.services.search.IHostSearchResultSet;
import org.eclipse.rse.services.search.ISearchService;
import org.eclipse.rse.subsystems.files.core.ILanguageUtilityFactory;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.subsystems.IHostFileToRemoteFileAdapter;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileContext;
@ -537,7 +538,7 @@ public class FileServiceSubSystem extends RemoteFileSubSystem implements IFileSe
protected boolean isBinary(String localEncoding, String hostEncoding, String remotePath)
{
return SystemFileTransferModeRegistry.getInstance().isBinary(remotePath);
return RemoteFileUtility.getSystemFileTransferModeRegistry().isBinary(remotePath);
}
protected boolean isBinary(IRemoteFile source)

View file

@ -17,6 +17,7 @@
* David McKnight (IBM) - [186363] get rid of obsolete calls to ISubSystem.connect()
* David McKnight (IBM) - [209660] use parent encoding as default, rather than system encoding
* David McKnight (IBM) - [209593] [api] add support for "file permissions" and "owner" properties for unix files
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.core.subsystems;
@ -48,7 +49,7 @@ import org.eclipse.rse.services.files.IHostFile;
import org.eclipse.rse.services.files.IHostFilePermissions;
import org.eclipse.rse.services.files.IHostFilePermissionsContainer;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileFilterString;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.ui.SystemBasePlugin;
import org.eclipse.swt.widgets.Display;
@ -68,20 +69,16 @@ import org.eclipse.swt.widgets.Display;
* that creates this object must call the setter methods to
* prefill this object with the core required information:
* <ul>
* <li>{@link #RemoteFileImpl(IRemoteFileContext)} constructor sets the parent subsystem
* <li>{@link #setAbsolutePath(String, String, boolean, boolean)} to set core attributes
* <li>{@link #setExists(boolean)} to set existence attribute
* <li>{@link #setLastModified(long)} to set last-modified date
* <li>{@link #setLength(long)} to set length in bytes
* <li>{@link #RemoteFile(IRemoteFileContext)} constructor sets the parent subsystem
* </ul>
* A concrete implementation which extends this class, also needs to ensure
* that information is properly set by some means such that the {@link IRemoteFile#exists()},
* {@link IRemoteFile#getAbsolutePath()}, {@link IRemoteFile#getLength()}
* and similar methods can be implemented.
*/
public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable, Cloneable
public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
{
protected IRemoteFileContext _context;
protected String fullyQualifiedName;
protected String _label;
protected Object remoteObj;
@ -346,13 +343,6 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
return ss.getHost();
}
/**
* @see IRemoteFile#getAbsolutePath()
*/
public String getAbsolutePath()
{
return fullyQualifiedName;
}
/**
* Get fully qualified connection and file name: connection:\path\file
* Note the separator character between the profile name and the connection name is always '.'
@ -388,7 +378,7 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
if (isDirectory())
return false;
else
return SystemFileTransferModeRegistry.getInstance().isBinary(this);
return RemoteFileUtility.getSystemFileTransferModeRegistry().isBinary(this);
}
/**
@ -399,7 +389,7 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
if (isDirectory())
return false;
else
return SystemFileTransferModeRegistry.getInstance().isText(this);
return RemoteFileUtility.getSystemFileTransferModeRegistry().isText(this);
}
@ -528,8 +518,9 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
return this.getAbsolutePathPlusConnection().startsWith(file.getAbsolutePathPlusConnection() + separator);
}
/**
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#hasContents(java.lang.String)
/*
* (non-Javadoc)
* @see org.eclipse.rse.core.model.ISystemContainer#hasContents(org.eclipse.rse.core.model.ISystemContentsType)
*/
public boolean hasContents(ISystemContentsType contentsType)
{
@ -552,8 +543,9 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
return result;
}
/**
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#hasContents(java.lang.String, java.lang.String)
/*
* (non-Javadoc)
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#hasContents(org.eclipse.rse.core.model.ISystemContentsType, java.lang.String)
*/
public boolean hasContents(ISystemContentsType contentsType, String filter) {
HashMap filters = (HashMap)(_contents.get(contentsType));
@ -616,8 +608,9 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
return false;
}
/**
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#getContents(java.lang.String)
/*
* (non-Javadoc)
* @see org.eclipse.rse.core.model.ISystemContainer#getContents(org.eclipse.rse.core.model.ISystemContentsType)
*/
public Object[] getContents(ISystemContentsType contentsType)
{
@ -641,6 +634,7 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
return result.toArray(new IRemoteFile[result.size()]);
}
/*
private Object[] getFiles(Object[] filesAndFolders)
{
List results = new ArrayList();
@ -655,6 +649,7 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
}
return results.toArray();
}
*/
private Object[] getFolders(Object[] filesAndFolders)
{
@ -672,8 +667,9 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
}
/**
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#getContents(java.lang.String, java.lang.String)
/*
* (non-Javadoc)
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#getContents(org.eclipse.rse.core.model.ISystemContentsType, java.lang.String)
*/
public Object[] getContents(ISystemContentsType contentsType, String filter)
{
@ -801,7 +797,7 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
*/
private boolean isFilterForFileTypes(String filter) {
if (filter.endsWith(",")) {
if (filter.endsWith(",")) { //$NON-NLS-1$
return true;
}
else {
@ -839,8 +835,9 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
/**
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#setContents(java.lang.String, java.lang.String, java.lang.Object[])
/*
* (non-Javadoc)
* @see org.eclipse.rse.core.subsystems.IRemoteContainer#setContents(org.eclipse.rse.core.model.ISystemContentsType, java.lang.String, java.lang.Object[])
*/
public void setContents(ISystemContentsType contentsType, String filter, Object[] con) {
@ -1163,7 +1160,7 @@ public abstract class RemoteFile implements IRemoteFile, IAdaptable, Comparable
/**
* Returns the encoding of the remote file. If a user specified value does not exist, then we check
* it's ancestry for an encoding. Otherwise the encoding of the parent subsystem is returned.
* @see com.ibm.etools.systems.subsystems.IRemoteFile#getEncoding()
* @see IRemoteFile#getEncoding()
*/
public String getEncoding() {
String hostName = getParentRemoteFileSubSystem().getHost().getHostName();

View file

@ -12,7 +12,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.core.subsystems;
@ -26,16 +26,18 @@ import org.eclipse.rse.services.files.IHostFilePermissions;
*/
public class RemoteFileEmpty extends RemoteFile
{
/**
* Constructor for RemoteFileEmptyImpl
* Constructor for RemoteFileEmpty
*/
public RemoteFileEmpty()
{
super(new RemoteFileContext(null,null,null));
}
public String getAbsolutePath()
{
return ""; //$NON-NLS-1$
}
public String getName()

View file

@ -12,7 +12,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.core.subsystems;
@ -36,9 +36,13 @@ public class RemoteFileRoot extends RemoteFile
public RemoteFileRoot(IRemoteFile rootFile)
{
super(new RemoteFileContext(null,null,null));
setRootFile(rootFile);
}
/**
* Constructor when root is not known
* Constructor when root is not known.
* Client must call {@link #setRootFile(IRemoteFile)} before any
* get.. calls in this class are actually used.
*/
public RemoteFileRoot()
{
@ -163,6 +167,11 @@ public class RemoteFileRoot extends RemoteFile
return rootFile.getClassification();
}
public String getAbsolutePath()
{
return rootFile.getAbsolutePath();
}
public String getCanonicalPath()
{
return rootFile.getCanonicalPath();

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others.
* Copyright (c) 2006, 2008 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
@ -15,6 +15,7 @@
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
* Kushal Munir (IBM) - [189352] Set whether file service is Unix-style system or not
* David McKnight (IBM) - [206755] upload and download buffer should be in kbytes, not bytes
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
*******************************************************************************/
package org.eclipse.rse.subsystems.files.dstore;
@ -39,7 +40,7 @@ import org.eclipse.rse.services.search.IHostSearchResultConfiguration;
import org.eclipse.rse.services.search.IHostSearchResultSet;
import org.eclipse.rse.services.search.ISearchService;
import org.eclipse.rse.subsystems.files.core.ILanguageUtilityFactory;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystemConfiguration;
import org.eclipse.rse.subsystems.files.core.subsystems.IHostFileToRemoteFileAdapter;
@ -136,7 +137,7 @@ public class DStoreFileSubSystemConfiguration extends FileServiceSubSystemConfig
public IFileService createFileService(IHost host)
{
DStoreConnectorService connectorService = (DStoreConnectorService)getConnectorService(host);
DStoreFileService service = new DStoreFileService(connectorService, SystemFileTransferModeRegistry.getInstance(), RSEUIPlugin.getDefault());
DStoreFileService service = new DStoreFileService(connectorService, RemoteFileUtility.getSystemFileTransferModeRegistry(), RSEUIPlugin.getDefault());
service.setIsUnixStyle(isUnixStyle());
IPreferenceStore store= RSEUIPlugin.getDefault().getPreferenceStore();

View file

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (c) 2006, 2007 IBM Corporation and others. All rights reserved.
* Copyright (c) 2006, 2008 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
@ -14,6 +14,7 @@
* Martin Oberhuber (Wind River) - [177523] Unify singleton getter methods
* Martin Oberhuber (Wind River) - [186997] No deferred queries in Local Files
* Kevin Doyle (IBM) - [199871] LocalFileService needs to implement getMessage()
* Martin Oberhuber (Wind River) - [220020][api][breaking] SystemFileTransferModeRegistry should be internal
********************************************************************************/
package org.eclipse.rse.subsystems.files.local;
@ -41,7 +42,7 @@ import org.eclipse.rse.services.search.IHostSearchResultSet;
import org.eclipse.rse.services.search.ISearchService;
import org.eclipse.rse.subsystems.files.core.ILanguageUtilityFactory;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileFilterString;
import org.eclipse.rse.subsystems.files.core.model.SystemFileTransferModeRegistry;
import org.eclipse.rse.subsystems.files.core.model.RemoteFileUtility;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.FileServiceSubSystemConfiguration;
import org.eclipse.rse.subsystems.files.core.subsystems.IHostFileToRemoteFileAdapter;
@ -224,7 +225,7 @@ public class LocalFileSubSystemConfiguration extends FileServiceSubSystemConfigu
public IFileService createFileService(IHost host)
{
return new LocalFileService(SystemFileTransferModeRegistry.getInstance(), RSEUIPlugin.getDefault());
return new LocalFileService(RemoteFileUtility.getSystemFileTransferModeRegistry(), RSEUIPlugin.getDefault());
}
public ISearchService createSearchService(IHost host)