org.apache.oodt.cas.pge.writers.PcsMetFileWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cas-pge Show documentation
Show all versions of cas-pge Show documentation
Allows data processing jobs not written in conformance with the
PCS PGE (Production Generation Executive) interface to be run within the PCS.
/*
* 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.pge.writers;
//OODT imports
import org.apache.oodt.cas.pge.metadata.PgeMetadata;
import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
import org.apache.oodt.cas.metadata.Metadata;
//OODT imports
import java.io.File;
/**
*
* @author bfoster
* @version $Revision$
*
*
* Writes a PCS metadata file for the give data file
*
.
*/
public abstract class PcsMetFileWriter {
public static final String FILE_SIZE = "FileSize";
public Metadata getMetadataForFile(File sciPgeCreatedDataFile,
PgeMetadata pgeMetadata, Object... customArgs) throws Exception {
try {
Metadata inputMetadata = pgeMetadata.asMetadata();
inputMetadata.replaceMetadata(CoreMetKeys.FILENAME,
sciPgeCreatedDataFile.getName());
inputMetadata.replaceMetadata(CoreMetKeys.FILE_LOCATION,
sciPgeCreatedDataFile.getParentFile().getAbsolutePath());
inputMetadata.replaceMetadata(FILE_SIZE, Long.toString(new File(
inputMetadata.getMetadata(CoreMetKeys.FILE_LOCATION),
inputMetadata.getMetadata(CoreMetKeys.FILENAME)).length()));
return this.getSciPgeSpecificMetadata(
sciPgeCreatedDataFile, inputMetadata, customArgs);
} catch (Exception e) {
throw new Exception("Failed to create PCS metadata file for '"
+ sciPgeCreatedDataFile + "' : " + e.getMessage(), e);
}
}
protected abstract Metadata getSciPgeSpecificMetadata(
File sciPgeCreatedDataFile, Metadata inputMetadata,
Object... customArgs) throws Exception;
}