    001/*
    002 * Copyright (c) 2007-2016 Concurrent, Inc. All Rights Reserved.
    003 *
    004 * Project and contact information: http://www.cascading.org/
    005 *
    006 * This file is part of the Cascading project.
    007 *
    008 * Licensed under the Apache License, Version 2.0 (the "License");
    009 * you may not use this file except in compliance with the License.
    010 * You may obtain a copy of the License at
    011 *
    012 *     http://www.apache.org/licenses/LICENSE-2.0
    013 *
    014 * Unless required by applicable law or agreed to in writing, software
    015 * distributed under the License is distributed on an "AS IS" BASIS,
    016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    017 * See the License for the specific language governing permissions and
    018 * limitations under the License.
    019 */
    020
    021package cascading.tuple;
    022
    023/**
    024 * Class FieldsResolverException is thrown when selectorFields cannot
    025 * select from the sourceFields.
    026 */
    027public class FieldsResolverException extends TupleException
    028  {
    029  /** Field sourceFields */
    030  private final Fields sourceFields;
    031  /** Field selectorFields */
    032  private final Fields selectorFields;
    033
    034  /**
    035   * Constructor FieldsResolverException creates a new FieldsResolverException instance.
    036   *
    037   * @param sourceFields   of type Fields
    038   * @param selectorFields of type Fields
    039   */
    040  public FieldsResolverException( Fields sourceFields, Fields selectorFields )
    041    {
    042    super( createMessage( sourceFields, selectorFields ) );
    043
    044    this.sourceFields = sourceFields;
    045    this.selectorFields = selectorFields;
    046    }
    047
    048  /**
    049   * Method getSourceFields returns the sourceFields of this FieldsResolverException object.
    050   *
    051   * @return the sourceFields (type Fields) of this FieldsResolverException object.
    052   */
    053  public Fields getSourceFields()
    054    {
    055    return sourceFields;
    056    }
    057
    058  /**
    059   * Method getSelectorFields returns the selectorFields of this FieldsResolverException object.
    060   *
    061   * @return the selectorFields (type Fields) of this FieldsResolverException object.
    062   */
    063  public Fields getSelectorFields()
    064    {
    065    return selectorFields;
    066    }
    067
    068  private static String createMessage( Fields sourceFields, Fields selectorFields )
    069    {
    070    return "could not select fields: " + selectorFields.printVerbose() + ", from: " + sourceFields.printVerbose();
    071    }
    072  }