/* This file is part of jpcsp. Jpcsp is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Jpcsp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Jpcsp. If not, see <http://www.gnu.org/licenses/>. */ package jpcsp.format.rco; import jpcsp.format.RCO; import jpcsp.format.rco.object.ActionObject; import jpcsp.format.rco.object.BaseObject; import jpcsp.format.rco.object.ButtonObject; import jpcsp.format.rco.object.ClockObject; import jpcsp.format.rco.object.EditObject; import jpcsp.format.rco.object.GroupObject; import jpcsp.format.rco.object.IItemObject; import jpcsp.format.rco.object.IListObject; import jpcsp.format.rco.object.IconObject; import jpcsp.format.rco.object.ItemSpinObject; import jpcsp.format.rco.object.LItemObject; import jpcsp.format.rco.object.LListObject; import jpcsp.format.rco.object.MItemObject; import jpcsp.format.rco.object.MListObject; import jpcsp.format.rco.object.ModelObject; import jpcsp.format.rco.object.PageObject; import jpcsp.format.rco.object.PlaneObject; import jpcsp.format.rco.object.ProgressObject; import jpcsp.format.rco.object.ScrollObject; import jpcsp.format.rco.object.SpinObject; import jpcsp.format.rco.object.TextObject; import jpcsp.format.rco.object.UButtonObject; import jpcsp.format.rco.object.XItemObject; import jpcsp.format.rco.object.XListObject; import jpcsp.format.rco.object.XMListObject; import jpcsp.format.rco.object.XMenuObject; public class ObjectFactory { public static BaseObject newObject(int type) { switch (type) { case 1: return new PageObject(); case 2: return new PlaneObject(); case 3: return new ButtonObject(); case 4: return new XMenuObject(); case 5: return new XMListObject(); case 6: return new XListObject(); case 7: return new ProgressObject(); case 8: return new ScrollObject(); case 9: return new MListObject(); case 10: return new MItemObject(); case 11: break; // Unknown object 11 case 12: return new XItemObject(); case 13: return new TextObject(); case 14: return new ModelObject(); case 15: return new SpinObject(); case 16: return new ActionObject(); case 17: return new ItemSpinObject(); case 18: return new GroupObject(); case 19: return new LListObject(); case 20: return new LItemObject(); case 21: return new EditObject(); case 22: return new ClockObject(); case 23: return new IListObject(); case 24: return new IItemObject(); case 25: return new IconObject(); case 26: return new UButtonObject(); } RCO.log.warn(String.format("ObjectFactory.newObject unknown type 0x%X", type)); return null; } }