DebugMethodItem.java revision 16a911620ccf7b530b873fb71cf13e8dcb88ad28
1b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com/* 2b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * [The "BSD licence"] 3b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * Copyright (c) 2009 Ben Gruver 4b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * All rights reserved. 5b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * 6b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * Redistribution and use in source and binary forms, with or without 7b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * modification, are permitted provided that the following conditions 8b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * are met: 9b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * 1. Redistributions of source code must retain the above copyright 10b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * notice, this list of conditions and the following disclaimer. 11b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * 2. Redistributions in binary form must reproduce the above copyright 12b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * notice, this list of conditions and the following disclaimer in the 13b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * documentation and/or other materials provided with the distribution. 14b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * 3. The name of the author may not be used to endorse or promote products 15b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * derived from this software without specific prior written permission. 16b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * 17b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 18b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 19b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com */ 28b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com 29b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.compackage org.jf.baksmali.Adaptors; 30b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com 317ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.comimport org.antlr.stringtemplate.StringTemplateGroup; 327ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.comimport org.antlr.stringtemplate.StringTemplate; 337ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com 34b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.compublic class DebugMethodItem extends MethodItem { 357ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com private final StringTemplateGroup stg; 367ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com private final String templateName; 37cf6729c1ee64e732f28eb40386ecc69d4fb6b401JesusFreke@JesusFreke.com private final int sortOrder; 38b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com 3916a911620ccf7b530b873fb71cf13e8dcb88ad28JesusFreke@JesusFreke.com public DebugMethodItem(int codeAddress, StringTemplateGroup stg, String templateName, int sortOrder) { 4016a911620ccf7b530b873fb71cf13e8dcb88ad28JesusFreke@JesusFreke.com super(codeAddress); 417ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com this.stg = stg; 427ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com this.templateName = templateName; 43b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com this.sortOrder = sortOrder; 44b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com } 45b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com 46b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com public int getSortOrder() { 47b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com return sortOrder; 48b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com } 497ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com 507ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com @Override 517ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com public String toString() { 527ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com StringTemplate template = stg.getInstanceOf(templateName); 537ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com setAttributes(template); 547ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com return template.toString(); 557ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com } 567ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com 577ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com protected void setAttributes(StringTemplate template) 587ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com { 597ab77bc90be62b0688c97d4476e3bd219eace0daJesusFreke@JesusFreke.com } 60b6547e8fd56242dde90275d9b0ba6f3639083a61JesusFreke@JesusFreke.com} 61