    001    /*
    002     * Copyright (c) 2007-2014 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
    021    package cascading.tuple;
    022
    023    /**
    024     * Class FieldsResolverException is thrown when selectorFields cannot
    025     * select from the sourceFields.
    026     */
    027    public 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      }