001    /*
002     * $Id: Indexed.java 1103095 2011-05-14 13:18:29Z simonetripodi $
003     * Licensed to the Apache Software Foundation (ASF) under one
004     * or more contributor license agreements.  See the NOTICE file
005     * distributed with this work for additional information
006     * regarding copyright ownership.  The ASF licenses this file
007     * to you under the Apache License, Version 2.0 (the
008     * "License"); you may not use this file except in compliance
009     * with the License.  You may obtain a copy of the License at
010     *
011     * http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing,
014     * software distributed under the License is distributed on an
015     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016     * KIND, either express or implied.  See the License for the
017     * specific language governing permissions and limitations
018     * under the License.
019     */
020    package org.apache.commons.ognl.test.objects;
021    
022    import java.util.*;
023    
024    public class Indexed
025        extends BaseIndexed
026    {
027        private String[] _values = new String[] { "foo", "bar", "baz" };
028    
029        private List _list = new ArrayList();
030    
031        private ListSource _source = new ListSourceImpl();
032    
033        private Map _props = new HashMap();
034    
035        public Indexed()
036        {
037            _list.add( new Integer( 1 ) );
038            _list.add( new Integer( 2 ) );
039            _list.add( new Integer( 3 ) );
040    
041            _source.addValue( new Bean2() );
042        }
043    
044        public Indexed( String[] values )
045        {
046            _values = values;
047        }
048    
049        /* Indexed property "_values" */
050        public String[] getValues()
051        {
052            return _values;
053        }
054    
055        public void setValues( String[] value )
056        {
057            _values = value;
058        }
059    
060        /**
061         * This method returns the string from the array and appends "xxx" to distinguish the "get" method from the direct
062         * array access.
063         */
064        public String getValues( int index )
065        {
066            return _values[index] + "xxx";
067        }
068    
069        public void setValues( int index, String value )
070        {
071            if ( value.endsWith( "xxx" ) )
072            {
073                _values[index] = value.substring( 0, value.length() - 3 );
074            }
075            else
076            {
077                _values[index] = value;
078            }
079        }
080    
081        public Collection getList()
082        {
083            return _list;
084        }
085    
086        public String getTitle( int count )
087        {
088            return "Title count " + count;
089        }
090    
091        public ListSource getSource()
092        {
093            return _source;
094        }
095    
096        public void setProperty( String property, Object value )
097        {
098            _props.put( property, value );
099        }
100    
101        public Object getProperty( String property )
102        {
103            return _props.get( property );
104        }
105    }