Package org.apache.oodt.pcs.listing

Source Code of org.apache.oodt.pcs.listing.ListingConf

/**
* 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.pcs.listing;

//JDK imports
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Collections;
import java.util.List;

//OODT imports
import org.apache.oodt.pcs.input.PGEConfigFileException;
import org.apache.oodt.pcs.input.PGEConfigFileReader;
import org.apache.oodt.pcs.input.PGEConfigurationFile;
import org.apache.oodt.pcs.tools.PCSLongLister; //for javadoc
import static org.apache.oodt.pcs.listing.ListingConfKeys.*;

/**
*
* The configuration for the {@link PCSLongLister}.
*
* @author mattmann
* @version $Revision$
*
*/
public class ListingConf {

  private PGEConfigurationFile conf;

  /**
   * Constructs a new ListingConf with the given {@link File}.
   *
   * @param file
   *          The configuration file.
   * @throws FileNotFoundException
   *           If the config file cannot be found.
   * @throws InstantiationException
   *           If there is some error reading the config file.
   */
  public ListingConf(File file) throws FileNotFoundException,
      InstantiationException {
    try {
      this.conf = new PGEConfigFileReader().read(new FileInputStream(file));
    } catch (FileNotFoundException e) {
      throw e;
    } catch (PGEConfigFileException e) {
      throw new InstantiationException(e.getMessage());
    } finally {
      if (this.conf == null)
        throw new InstantiationException("Configuration is null!");
    }
  }

  /**
   * Returns the set of excluded product types.
   *
   * @return The set of excluded product types.
   */
  public List<String> getExcludedTypes() {
    if (this.conf.getPgeSpecificGroups().get(EXCLUDED_PRODUCT_TYPE_GROUP) == null) {
      return Collections.EMPTY_LIST;
    }

    return (List<String>) (List<?>) this.conf.getPgeSpecificGroups().get(
        EXCLUDED_PRODUCT_TYPE_GROUP).getVector(EXCLUDED_VECTOR).getElements();

  }

  /**
   * Gets the set of Header column met key names for the long lister.
   *
   * @return The set of Header column met key names for the long lister.
   */
  public List<String> getHeaderColKeys() {
    if (this.conf.getPgeSpecificGroups().get(MET_FIELD_COLS_GROUP) == null) {
      return Collections.EMPTY_LIST;
    }

    return (List<String>) (List<?>) this.conf.getPgeSpecificGroups().get(
        MET_FIELD_COLS_GROUP).getVector(MET_FIELDS_ORDER_VECTOR).getElements();
  }

  /**
   * Returns the display name for a particular header col key.
   *
   * @param headerColKey
   *          The header col met key to look up the display name for.
   * @return The header col met key's display name.
   */
  public String getHeaderColDisplayName(String headerColKey) {
    if (this.conf.getPgeSpecificGroups().get(MET_FIELD_COLS_GROUP) == null) {
      return "";
    }

    return this.conf.getPgeSpecificGroups().get(MET_FIELD_COLS_GROUP)
        .getScalar(headerColKey).getValue();
  }

  /**
   * Tester method to determine if an output field is a collection field, and
   * needs special handling.
   *
   * @param colName
   *          The field name to check.
   * @return True if it's a collection field, false if not, or if the collection
   *         fields group doesn't exist in the conf.
   */
  public boolean isCollectionField(String colName) {
    if (this.conf.getPgeSpecificGroups().get(COLLECTION_FIELDS_GROUP) == null) {
      return false;
    }

    return this.conf.getPgeSpecificGroups().get(COLLECTION_FIELDS_GROUP)
        .getVector(COLLECTION_FIELDS_NAMES).getElements().contains(colName);
  }

}
TOP

Related Classes of org.apache.oodt.pcs.listing.ListingConf

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.