001 /*
002 // $Id: NamedList.java 229 2009-05-08 19:11:29Z jhyde $
003 // This software is subject to the terms of the Eclipse Public License v1.0
004 // Agreement, available at the following URL:
005 // http://www.eclipse.org/legal/epl-v10.html.
006 // Copyright (C) 2006-2008 Julian Hyde
007 // All Rights Reserved.
008 // You must accept the terms of that agreement to use this software.
009 */
010 package org.olap4j.metadata;
011
012 import java.util.List;
013
014 /**
015 * Extension to {@link java.util.List} which allows access to members of the
016 * list by name as well as by ordinal.
017 *
018 * @author jhyde
019 * @version $Id: NamedList.java 229 2009-05-08 19:11:29Z jhyde $
020 * @since Aug 22, 2006
021 */
022 public interface NamedList<E> extends List<E> {
023 /**
024 * Retrieves a member by name.
025 *
026 * @param name name of the element to return
027 *
028 * @see #get(int)
029 *
030 * @return the element of the list with the specified name, or null if
031 * there is no such element
032 */
033 E get(String name);
034
035 /**
036 * Returns the position where a member of a given name is found, or -1
037 * if the member is not present.
038 *
039 * @param name name of the element to return
040 *
041 * @return the index of element of the list with the specified name, or -1
042 * if there is no such element
043 *
044 * @see #indexOf(Object)
045 */
046 int indexOfName(String name);
047 }
048
049 // End NamedList.java