ruper2/src/java/core/org/krysalis/ruper2/protocols/impl AbstractProtocolOperationsProvider.java,NONE,1.1 VfsProtocolOperationsProvider.java,NONE,1.1 BasicProtocolOperationsProvider.java,NONE,1.1

[email protected]
Newsgroups gmane.comp.krysalis.metamorphosis.cvs
Message-ID <[email protected]>
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.