text: /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common
   * Development and Distribution License("CDDL") (collectively, the
   * "License"). You may not use this file except in compliance with the
   * License. You can obtain a copy of the License at
   * http://www.netbeans.org/cddl-gplv2.html
   * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
   * specific language governing permissions and limitations under the
   * License.  When distributing the software, include this License Header
   * Notice in each file and include the License file at
   * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
   * particular file as subject to the "Classpath" exception as provided
   * by Sun in the GPL Version 2 section of the License file that
   * accompanied this code. If applicable, add the following below the
   * License Header, with the fields enclosed by brackets [] replaced by
   * your own identifying information:
   * "Portions Copyrighted [year] [name of copyright owner]"
   *
   * Contributor(s):
   *
   * The Original Software is NetBeans. The Initial Developer of the Original
   * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
   * Microsystems, Inc. All Rights Reserved.
   *
   * If you wish your version of this file to be governed by only the CDDL
   * or only the GPL Version 2, indicate your decision by adding
   * "[Contributor] elects to include this software in this distribution
   * under the [CDDL or GPL Version 2] license." If you do not indicate a
   * single choice of license, a recipient has the option to distribute
   * your version of this file under either the CDDL, the GPL Version 2 or
   * to extend the choice of license to its licensees as provided above.
   * However, if you add GPL Version 2 code and therefore, elected the GPL
   * Version 2 license, then the option applies only if the new code is
   * made subject to such option by the copyright holder.
   */
  
  #if !defined NAME_LIST_H
  #define NAME_LIST_H
  
  enum tDiscount {tnone, tretail, trepeat};
  
  class NameList // ?database? of names. Singleton class.
  {
      private:
          static NameList* pList; //used to implement singleton design pattern
          
          int nameCount;
          int maxIndex;
          
          char** Name; //2D character array ... name strings ... dynamically allocated in constructor
          char** ID; //2D character array ... ID strings ... dynamically allocated in constructor
          int* Index;
          int* Discount;
          
          protected:
              NameList(); //constructor ... called indirectly through singleton pattern (static ListInstance)
              NameList(const NameList& obj); //copy constructor ... not called directly
              NameList& operator=(NameList& obj); //overload of assignment operator ... not called directly
              ~NameList(); //destructor ... not called directly
              public:
                  static NameList* ListInstance(); //used to implement singleton design pattern (check plist)
                  int FindCustomer(char* name); //returns customer index within namelist data structure
                  char* GetName(int index);
                  char* GetID(int index);
                  int GetDiscount(int index);
                  void DisplayList();
  }
  ;//note that ";" is required at end of class definition header file
  
  #endif //NAME_LIST_H
  