• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * ASM: a very small and fast Java bytecode manipulation framework Copyright (c) 2000-2011 INRIA,
3  * France Telecom All rights reserved.
4  *
5  * <p>Redistribution and use in source and binary forms, with or without modification, are permitted
6  * provided that the following conditions are met: 1. Redistributions of source code must retain the
7  * above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions
8  * in binary form must reproduce the above copyright notice, this list of conditions and the
9  * following disclaimer in the documentation and/or other materials provided with the distribution.
10  * 3. Neither the name of the copyright holders nor the names of its contributors may be used to
11  * endorse or promote products derived from this software without specific prior written permission.
12  *
13  * <p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
15  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
16  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
18  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
19  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
20  * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21  */
22 package org.objectweb.asm.util;
23 
24 import java.util.Map;
25 import org.objectweb.asm.Label;
26 
27 /**
28  * An {@link org.objectweb.asm.Attribute} that can generate the ASM code to create an equivalent
29  * attribute.
30  *
31  * @author Eugene Kuleshov
32  */
33 // DontCheck(AbbreviationAsWordInName): can't be renamed (for backward binary compatibility).
34 public interface ASMifierSupport {
35 
36   /**
37    * Generates the ASM code to create an attribute equal to this attribute.
38    *
39    * @param outputBuilder where the generated code must be appended.
40    * @param visitorVariableName the name of the visitor variable in the produced code.
41    * @param labelNames the names of the labels in the generated code.
42    */
asmify( StringBuilder outputBuilder, String visitorVariableName, Map<Label, String> labelNames)43   void asmify(
44       StringBuilder outputBuilder, String visitorVariableName, Map<Label, String> labelNames);
45 }
46