All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.ajde.internal.StructureUtilities Maven / Gradle / Ivy

/* *******************************************************************
 * Copyright (c) 1999-2001 Xerox Corporation, 
 *               2002 Palo Alto Research Center, Incorporated (PARC).
 * All rights reserved. 
 * This program and the accompanying materials are made available 
 * under the terms of the Eclipse Public License v1.0 
 * which accompanies this distribution and is available at 
 * http://www.eclipse.org/legal/epl-v10.html 
 *  
 * Contributors: 
 *     Xerox/PARC     initial implementation 
 * ******************************************************************/

 
package org.aspectj.ajde.internal;

//import org.aspectj.ajde.compiler.AjdeCompiler;
//import org.aspectj.compiler.structure.*;
//import org.aspectj.compiler.structure.associations.*;

/**
 * Utility class for building a structure model for a given compile. Typical command-line usage: 
*   > java org.aspectj.tools.ajde.StructureManager @<config-file>.lst */ public class StructureUtilities { // private static StructureManager structureManager = new StructureManager(); /** * Usage is the same as org.aspectj.tools.ajc.Main. */ // public static void main(String[] args) throws IOException { // StructureNode model = buildStructureModel(args); // if (model == null) { // } else { // dumpStructure(model, ""); // } // } /** * Compiles and builds a structure model. * * @return the node representing the root for the structure model */ // public static StructureNode buildStructureModel(String[] args) { // new StructureBuilder().buildStructure(args); // return structureManager.getStructureModel(); // } /** * Dumps the structure model by walking the * corresponding tree. * * @param node node to start traversal at, typically the root * @param indent whitespace accumulator for pretty-printing */ // public static void dumpStructure(StructureNode node, String indent) { // if (node == null) return; // Syste.println(indent + node); // if (node.getChildren() != null) { // for (Iterator it = node.getChildren().iterator(); it.hasNext(); ) { // dumpStructure((StructureNode)it.next(), indent + " "); // } // } // if (node instanceof ProgramElementNode) { // if (((ProgramElementNode)node).getRelations() != null) { // for (Iterator it = ((ProgramElementNode)node).getRelations().iterator(); it.hasNext(); ) { // dumpStructure((StructureNode)it.next(), indent + " "); // } // } // } // } // // private static class StructureBuilder extends org.aspectj.tools.ajc.Main { // public void buildStructure(String[] args) { // compile(args); // } // // public JavaCompiler getCompiler() { // if (compiler != null) return compiler; // if (compiler == null) { // if (errorHandler == null) { // compiler = new AjdeCompiler(structureManager); // } // } // return compiler; // } // } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy