Update of /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper2/protocols/impl
In directory sc8-pr-cvs1:/tmp/cvs-serv30481/src/java/core/org/krysalis/ruper2/protocols/impl
Added Files:
AbstractProtocolOperationsProvider.java
VfsProtocolOperationsProvider.java
BasicProtocolOperationsProvider.java
Log Message:
Avoid clash with existing Ruper...
--- NEW FILE: AbstractProtocolOperationsProvider.java ---
/*
* Created on Aug 27, 2003
*/
package org.krysalis.ruper2.protocols.impl;
import java.util.ArrayList;
import java.util.List;
import org.krysalis.ruper2.impl.ResourceUpdaterContext;
import org.krysalis.ruper2.protocols.ProtocolOperationsProvider;
import org.krysalis.ruper2.protocols.VirtualResourceLocator;
import org.krysalis.ruper2.util.select.AllSelector;
/**
* @author ajack
*/
public abstract class AbstractProtocolOperationsProvider
implements ProtocolOperationsProvider {
protected ResourceUpdaterContext m_context = null;
protected List m_sourceProtocols = new ArrayList();
protected List m_destinationProtocols = new ArrayList();
AbstractProtocolOperationsProvider() {
}
void addSourceProtocol(String protocol) {
m_sourceProtocols.add(protocol);
}
public List getSupportedSourceProtocols() {
return m_sourceProtocols;
}
void addDestinationProtocol(String protocol) {
m_destinationProtocols.add(protocol);
}
public List getSupportedDestinationProtocols() {
return m_destinationProtocols;
}
public void init(ResourceUpdaterContext context) throws Exception {
m_context = context;
}
public List list(VirtualResourceLocator container) throws Exception {
return list(container, AllSelector.getInstance());
}
public void copy(VirtualResourceLocator from, VirtualResourceLocator to) throws Exception {
copy(from, to, AllSelector.getInstance());
}
}
--- NEW FILE: VfsProtocolOperationsProvider.java ---
/*
* Created on Aug 27, 2003
*/
package org.krysalis.ruper2.protocols.impl;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemManager;
import org.krysalis.ruper2.impl.ResourceUpdaterContext;
import org.krysalis.ruper2.protocols.Protocol;
import org.krysalis.ruper2.protocols.VirtualResourceLocator;
import org.krysalis.ruper2.util.io.VfsUtils;
import org.krysalis.ruper2.util.select.Selector;
/**
* @author ajack
*/
public class VfsProtocolOperationsProvider
extends AbstractProtocolOperationsProvider {
private FileSystemManager m_fsm = null;
public void init(ResourceUpdaterContext context) throws Exception {
super.init(context);
addSourceProtocol(Protocol.HTTP_PROTOCOL);
addSourceProtocol(Protocol.FILE_PROTOCOL);
addDestinationProtocol(Protocol.HTTP_PROTOCOL);
addDestinationProtocol(Protocol.FILE_PROTOCOL);
m_fsm =
VfsUtils.createFSM(
context.getIdentifier().getId(),
context.getBaseFile().getAbsolutePath());
//:TODO: Get Protocols from FSM..
}
public boolean exists(VirtualResourceLocator container) throws Exception {
FileObject fileObject = resolveAddress(container);
return fileObject.exists();
}
public List list(VirtualResourceLocator container, Selector selector)
throws Exception {
List fileObjects = VfsUtils.getChildren(resolveAddress(container));
// Convert the list of File Objects to Locators...
List locators = new ArrayList(fileObjects.size());
for (Iterator i = fileObjects.iterator(); i.hasNext();) {
FileObject fileObject = (FileObject) i.next();
locators.add(resolveLocator(fileObject));
}
return locators;
}
public void copy(
VirtualResourceLocator from,
VirtualResourceLocator to,
Selector selector)
throws Exception {
FileObject fromFile = resolveAddress(from);
FileObject toFile = resolveAddress(to);
// Build Folders to this Folder
buildPathTo(toFile.getParent());
// Copy in contents..
VfsUtils.copyFrom(toFile,fromFile);
}
private void buildPathTo(FileObject container) throws Exception {
FileObject parent = container.getParent();
// Recurse up to try to make parent tree..
if (!parent.exists()) {
buildPathTo(parent);
}
// Now, assuming parent is ok, make this..
if (!container.exists()) {
container.createFolder();
}
}
private FileObject resolveAddress(VirtualResourceLocator address)
throws Exception {
return m_fsm.resolveFile(address.toExternalForm());
}
private VirtualResourceLocator resolveLocator(FileObject fileObject)
throws Exception {
return new VirtualResourceLocator(fileObject.getURL());
}
}
--- NEW FILE: BasicProtocolOperationsProvider.java ---
/*
* Created on Aug 27, 2003
*/
package org.krysalis.ruper2.protocols.impl;
import java.net.URL;
import java.util.List;
import org.krysalis.ruper2.impl.ResourceUpdaterContext;
import org.krysalis.ruper2.protocols.Protocol;
import org.krysalis.ruper2.protocols.VirtualResourceLocator;
import org.krysalis.ruper2.util.select.Selector;
/**
* @author ajack
*/
public class BasicProtocolOperationsProvider
extends AbstractProtocolOperationsProvider {
public void init(ResourceUpdaterContext context) throws Exception {
super.init(context);
// We can read files or HTTP
addSourceProtocol(Protocol.HTTP_PROTOCOL);
addSourceProtocol(Protocol.FILE_PROTOCOL);
// We only write to files
addDestinationProtocol(Protocol.FILE_PROTOCOL);
}
public boolean exists(VirtualResourceLocator container)
throws Exception {
boolean exists = false;
URL url = container.getResourceLocator();
// :TODO: Get URL contents and list
return exists;
}
public List list(VirtualResourceLocator container, Selector selector)
throws Exception {
List results = null;
URL url = container.getResourceLocator();
// :TODO: Get URL contents and list
return results;
}
public void copy(
VirtualResourceLocator from,
VirtualResourceLocator to,
Selector selector)
throws Exception {
URL url1 = from.getResourceLocator();
URL url2 = to.getResourceLocator();
// :TODO: Get URL contents and write to a file...
}
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.