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  }