| /* |
| * $Id$ |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.commons.ognl.performance.invocation; |
| |
| import org.apache.commons.ognl.test.objects.BaseBean; |
| import org.apache.commons.ognl.test.objects.BaseGeneric; |
| import org.apache.commons.ognl.test.objects.BaseIndexed; |
| import org.apache.commons.ognl.test.objects.BaseObjectIndexed; |
| import org.apache.commons.ognl.test.objects.BaseSyntheticObject; |
| import org.apache.commons.ognl.test.objects.Bean1; |
| import org.apache.commons.ognl.test.objects.Bean2; |
| import org.apache.commons.ognl.test.objects.Bean3; |
| import org.apache.commons.ognl.test.objects.BeanProvider; |
| import org.apache.commons.ognl.test.objects.BeanProviderAccessor; |
| import org.apache.commons.ognl.test.objects.BeanProviderImpl; |
| import org.apache.commons.ognl.test.objects.Component; |
| import org.apache.commons.ognl.test.objects.ComponentImpl; |
| import org.apache.commons.ognl.test.objects.ComponentSubclass; |
| import org.apache.commons.ognl.test.objects.Copy; |
| import org.apache.commons.ognl.test.objects.CorrectedObject; |
| import org.apache.commons.ognl.test.objects.Cracker; |
| import org.apache.commons.ognl.test.objects.Entry; |
| import org.apache.commons.ognl.test.objects.EvenOdd; |
| import org.apache.commons.ognl.test.objects.FirstBean; |
| import org.apache.commons.ognl.test.objects.FormComponentImpl; |
| import org.apache.commons.ognl.test.objects.FormImpl; |
| import org.apache.commons.ognl.test.objects.GameGeneric; |
| import org.apache.commons.ognl.test.objects.GameGenericObject; |
| import org.apache.commons.ognl.test.objects.GenericCracker; |
| import org.apache.commons.ognl.test.objects.GenericObject; |
| import org.apache.commons.ognl.test.objects.GenericRoot; |
| import org.apache.commons.ognl.test.objects.GenericService; |
| import org.apache.commons.ognl.test.objects.GenericServiceImpl; |
| import org.apache.commons.ognl.test.objects.GetterMethods; |
| import org.apache.commons.ognl.test.objects.IComponent; |
| import org.apache.commons.ognl.test.objects.IContentProvider; |
| import org.apache.commons.ognl.test.objects.IForm; |
| import org.apache.commons.ognl.test.objects.IFormComponent; |
| import org.apache.commons.ognl.test.objects.ITreeContentProvider; |
| import org.apache.commons.ognl.test.objects.Indexed; |
| import org.apache.commons.ognl.test.objects.IndexedMapObject; |
| import org.apache.commons.ognl.test.objects.IndexedSetObject; |
| import org.apache.commons.ognl.test.objects.Inherited; |
| import org.apache.commons.ognl.test.objects.ListSource; |
| import org.apache.commons.ognl.test.objects.ListSourceImpl; |
| import org.apache.commons.ognl.test.objects.MenuItem; |
| import org.apache.commons.ognl.test.objects.Messages; |
| import org.apache.commons.ognl.test.objects.Model; |
| import org.apache.commons.ognl.test.objects.MyMap; |
| import org.apache.commons.ognl.test.objects.MyMapImpl; |
| import org.apache.commons.ognl.test.objects.ObjectIndexed; |
| import org.apache.commons.ognl.test.objects.OtherObjectIndexed; |
| import org.apache.commons.ognl.test.objects.PersonGenericObject; |
| import org.apache.commons.ognl.test.objects.PropertyHolder; |
| import org.apache.commons.ognl.test.objects.Root; |
| import org.apache.commons.ognl.test.objects.SearchCriteria; |
| import org.apache.commons.ognl.test.objects.SearchTab; |
| import org.apache.commons.ognl.test.objects.SecondBean; |
| import org.apache.commons.ognl.test.objects.SetterReturns; |
| import org.apache.commons.ognl.test.objects.Simple; |
| import org.apache.commons.ognl.test.objects.SimpleEnum; |
| import org.apache.commons.ognl.test.objects.SimpleNumeric; |
| import org.apache.commons.ognl.test.objects.SubclassSyntheticObject; |
| import org.apache.commons.ognl.test.objects.TestClass; |
| import org.apache.commons.ognl.test.objects.TestImpl; |
| import org.apache.commons.ognl.test.objects.TestInherited1; |
| import org.apache.commons.ognl.test.objects.TestInherited2; |
| import org.apache.commons.ognl.test.objects.TestModel; |
| import org.apache.commons.ognl.test.objects.TreeContentProvider; |
| import org.apache.commons.ognl.test.objects.Two; |
| import org.apache.commons.ognl.performance.runtime.RuntimeWrapper; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| |
| /** |
| * User: Maurizio Cucchiara |
| * Date: 10/22/11 |
| * Time: 12:20 AM |
| */ |
| public abstract class RepeatableInvocation |
| { |
| private RuntimeWrapper runtimeWrapper; |
| |
| private int times = 1000; |
| |
| private List<Class<?>> classes = |
| Arrays.asList( ComponentImpl.class, BaseObjectIndexed.class, TestInherited2.class, MenuItem.class, |
| BaseIndexed.class, ListSourceImpl.class, GenericService.class, Copy.class, Inherited.class, |
| MyMapImpl.class, GenericCracker.class, MyMap.class, SecondBean.class, SetterReturns.class, |
| IContentProvider.class, FirstBean.class, CorrectedObject.class, BeanProviderImpl.class, |
| TestClass.class, TestImpl.class, TreeContentProvider.class, Messages.class, Two.class, |
| IndexedMapObject.class, SimpleNumeric.class, GameGeneric.class, Entry.class, |
| SubclassSyntheticObject.class, SimpleEnum.class, Model.class, Simple.class, |
| BaseSyntheticObject.class, ObjectIndexed.class, IComponent.class, SearchCriteria.class, |
| FormImpl.class, TestInherited1.class, IndexedSetObject.class, SearchTab.class, |
| GenericObject.class, GenericRoot.class, Bean1.class, FormComponentImpl.class, |
| ComponentSubclass.class, IForm.class, OtherObjectIndexed.class, Cracker.class, Indexed.class, |
| EvenOdd.class, PersonGenericObject.class, Bean2.class, GenericServiceImpl.class, |
| IFormComponent.class, ListSource.class, PropertyHolder.class, Bean3.class, BaseGeneric.class, |
| GetterMethods.class, BeanProviderAccessor.class, BeanProvider.class, GameGenericObject.class, |
| ITreeContentProvider.class, TestModel.class, BaseBean.class, Component.class, Root.class ); |
| |
| public RepeatableInvocation( RuntimeWrapper runtimeWrapper ) |
| throws Exception |
| { |
| this.runtimeWrapper = runtimeWrapper; |
| invoke(); |
| |
| } |
| |
| public RepeatableInvocation( RuntimeWrapper runtimeWrapper, int times ) |
| throws Exception |
| { |
| |
| this.runtimeWrapper = runtimeWrapper; |
| this.times = times; |
| invoke(); |
| } |
| |
| private void invoke() |
| throws Exception |
| { |
| for ( int i = 0; i < times; i++ ) |
| { |
| for ( Class<?> c : classes ) |
| { |
| invoke( c ); |
| } |
| } |
| } |
| |
| protected abstract void invoke( Class<?> c ) |
| throws Exception; |
| |
| protected RuntimeWrapper getRuntime() |
| { |
| return runtimeWrapper; |
| } |
| } |