/*
*
* Copyright 2007-2008 University Of Southern California
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package edu.isi.pegasus.planner.catalog.site.classes;
import java.io.IOException;
import java.io.Writer;
/**
* The Visitor interface for the Site Catalog Data Classes.
*
* @author Karan Vahi
* @version $Revision$
*/
public interface SiteDataVisitor {
/**
* Initialize the visitor implementation
*
* @param writer the writer
*/
public void initialize( Writer writer );
/**
* Visit the SiteStore object
*
* @param entry the site store
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( SiteStore entry ) throws IOException;
/**
* Depart the Site Store object.
*
* @param entry the SiteStore
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( SiteStore entry ) throws IOException;
/**
* Visit the Site CatalogEntry object
*
* @param entry the site catalog entry
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( SiteCatalogEntry entry) throws IOException;
/**
* Depart the Site Catalog Entry object.
*
* @param entry the site catalog entry
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( SiteCatalogEntry entry ) throws IOException;
/**
* Visit the GridGateway object
*
* @param gateway the grid gateway
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( GridGateway entry) throws IOException;
/**
* Depart the GridGateway object
*
* @param entry GridGateway object
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( GridGateway entry ) throws IOException;
/**
* Visit Directory site data object
*
* @param headnode the object laying out the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( Directory headnode )throws IOException;
/**
* Depart the Directory object
*
* @param directory the object laying out the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( Directory directory) throws IOException;
/**
* Visit FileServer site data object
*
* @param server the object corresponding to the FileServer
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( FileServer server )throws IOException;
/**
* Depart the Directory object
*
* @param server the object corresponding to the FileServer
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( FileServer server) throws IOException;
/**
* Visit the ReplicaCatalog object
*
* @param catalog the object describing the catalog
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( ReplicaCatalog catalog ) throws IOException;
/**
* Depart the ReplicaCatalog object
*
* @param catalog the object describing the catalog
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( ReplicaCatalog catalog ) throws IOException;
/**
* Visit the connection object
*
* @param c the connection.
*
* @throws IOException in case of error while writing to underlying stream
*/
public void visit( Connection c ) throws IOException;
/**
* Depart the connection object
*
* @param c the connection.
*
* @throws IOException in case of error while writing to underlying stream
*/
public void depart( Connection c ) throws IOException;
public void visit( SiteData data ) throws IOException;
public void depart( SiteData data ) throws IOException;
/**
* Visit HeadNodeFS object
*
* @param headnode the object laying out the headnode
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( HeadNodeFS headnode )throws IOException;
/**
* Depart the HeadNodeFS object
*
* @param headnode the object laying out the headnode
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( HeadNodeFS headnode) throws IOException;
/**
* Visit the HeadNodeScratch object
*
* @param scratch the object describing the scratch area of the headnode.
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( HeadNodeScratch scratch) throws IOException;
/**
* Depart the HeadNodeScratch object
*
* @param scratch the object describing the scratch area of the headnode.
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( HeadNodeScratch scratch ) throws IOException;
/**
* Visit the HeadNodeStorage object
*
* @param storage the object describing the storage area of the headnode
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( HeadNodeStorage storage ) throws IOException;
/**
* Depart the HeadNodeStorage object
*
* @param storage the object describing the storage area of the headnode
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( HeadNodeStorage storage ) throws IOException;
/**
* Visit the WorkerNodeFS object
*
* @param workernode the object describing the worker node
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( WorkerNodeFS workernode ) throws IOException;
/**
* Depart the WorkerNodeFS object
*
* @param workernode the object describing the worker node
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( WorkerNodeFS workernode ) throws IOException;
/**
* Visit the WorkerNodeScratch object
*
* @param scratch the object describing the scratch area
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( WorkerNodeScratch scratch) throws IOException;
/**
* Depart the WorkerNodeScratch object
*
* @param scratch the object describing the scratch area
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( WorkerNodeScratch scratch ) throws IOException;
/**
* Visit the WorkerNodeStorage object
*
* @param storage the object describing the storage area
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( WorkerNodeStorage storage) throws IOException;
/**
* Depart the WorkerNodeStorage object
*
* @param storage the object describing the storage area
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( WorkerNodeStorage storage ) throws IOException;
/**
* Visit the local directory
*
* @param directory the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( LocalDirectory directory) throws IOException;
/**
* Depart the local directory
*
* @param directory the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( LocalDirectory directory ) throws IOException;
/**
* Visit the shared directory
*
* @param directory the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( SharedDirectory directory ) throws IOException;
/**
* Depart the shared directory
*
* @param directory the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( SharedDirectory directory ) throws IOException;
/**
* Visit the worker shared directory
*
* @param directory the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void visit( WorkerSharedDirectory directory ) throws IOException;
/**
* Depart the worker shared directory
*
* @param directory the directory
*
* @throws IOException in case of error while writing to underlying stream
*/
// public void depart( WorkerSharedDirectory directory ) throws IOException;
}