org.apache.oodt.cas.filemgr.ingest.Ingester Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cas-filemgr Show documentation
Show all versions of cas-filemgr Show documentation
The file management component of a Catalog and Archive Service. This component
purposefully separates data stores and metadata stores as standard interfaces, and
provides some out of the box backend implementations of them (including one based
on the javax.sql.DataSource interface). This component provides everything that you need
to catalog, archive and manage files, and directories, and their associated metadata.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.oodt.cas.filemgr.ingest;
//OODT imports
import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
import org.apache.oodt.cas.filemgr.structs.exceptions.IngestException;
import org.apache.oodt.cas.metadata.MetExtractor;
import org.apache.oodt.cas.metadata.Metadata;
//JDK imports
import java.io.File;
import java.net.URL;
import java.util.List;
/**
* @author mattmann
* @author bfoster
* @version $Revision$
*
*
* An interface for ingesting {@link Product}s
*
.
*/
public interface Ingester {
/**
* Ingests a {@link Product} to the file manager service object identified
* by the given {@link URL} parameter. The product {@link Metadata} is
* extracted dynamically using the provided {@link MetExtractor} interface.
*
* @param fmUrl
* The {@link URL} pointer to the file manager service.
* @param prodFile
* The {@link File} pointer to the product file.
* @param extractor
* The given {@link MetExtractor} to use to extract
* {@link Metadata} from the {@link Product}.
* @param metConfFile
* A Config{@link File} for the {@link MetExtractor}.
* @return The ID returned by the file manager for the newly ingested
* product.
* @throws IngestException
* If there is an error ingesting the {@link Product}
*/
public String ingest(URL fmUrl, File prodFile, MetExtractor extractor,
File metConfFile) throws IngestException;
/**
* Ingests a {@link Product} to the file manager service object identified
* by the given {@link URL} parameter. The product {@link Metadata} is
* provided a priori.
*
* @param fmUrl
* The {@link URL} pointer to the file manager service.
* @param prodFile
* The {@link File} pointer to the product file.
* @param met
* The given {@link Metadata} object already extracted from the
* {@link Product}.
* @return The ID returned by the file manager for the newly ingested
* product.
* @throws IngestException
* If there is an error ingesting the {@link Product}
*/
public String ingest(URL fmUrl, File prodFile, Metadata met)
throws IngestException;
/**
*
* @param fmUrl
* The {@link URL} pointer to the file manager service.
* @param prodFiles
* A {@link List} of {@link String} filePaths pointing to
* {@link Product} files to ingest.
* @param extractor
* The given {@link MetExtractor} to use to extract
* {@link Metadata} from the {@link Product}s.
* @param metConfFile
* A Config{@link File} for the {@link MetExtractor}.
* @throws IngestException
* If there is an error ingesting the {@link Product}s.
*/
public void ingest(URL fmUrl, List prodFiles, MetExtractor extractor,
File metConfFile) throws IngestException;
/**
* Checks the file manager at the given {@link URL} to see whether or not it
* knows about the provided {@link Product} {@link File} parameter. To do
* this, it uses {@link File#getName()} as the {@link Metadata} key
* Filename
.
*
* @param prodFile
* The {@link File} to check for existance of within the file
* manager at given {@link URL}.
* @url The {@link URL} pointer to the file manager service.
* @return
*/
public boolean hasProduct(URL fmUrl, File prodFile) throws CatalogException;
/**
* Checks the file manager at the given {@link URL} to see whether or not it
* knows about the provided {@link Product} with the given
* productName
parameter. To do this, it uses the provided
* productName
key as the {@link Metadata} key to search for
* in the catalog.
*
* @param fmUrl
* The {@link URL} pointer to the file manager service.
* @param productName
* The {@link Product} to search for, identified by its (possibly
* not unique) name.
* @return True if the file manager has the product, false otherwise.
*/
public boolean hasProduct(URL fmUrl, String productName) throws CatalogException;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy