package fr.inria.diverse.k3.ui.wizards; import java.util.Iterator; import java.util.List; import org.eclipse.xtext.util.Strings; public class XtendK3CreatorUtil { public static String createAspectClassContent(String typeName, String aspectizedClass, String superClass, @SuppressWarnings("rawtypes") List superInterfaces, String indentation, String lineSeparator) { StringBuffer sb = new StringBuffer(); sb.append("import fr.inria.diverse.k3.al.annotationprocessor.Aspect"); sb.append(lineSeparator); if(!Strings.isEmpty(superClass) && !superClass.equals("java.lang.Object")) { sb.append("import fr.inria.diverse.k3.al.annotationprocessor.OverrideAspectMethod"); sb.append(lineSeparator); } sb.append(indentation); sb.append(lineSeparator); sb.append("import "); sb.append(aspectizedClass); sb.append(lineSeparator); sb.append(indentation); sb.append(lineSeparator); if(!Strings.isEmpty(aspectizedClass) && !aspectizedClass.equals("java.lang.Object")) { sb.append("@Aspect(className="); sb.append(stripPackage(aspectizedClass)); sb.append(")"); sb.append(lineSeparator); } sb.append("class "); sb.append(typeName); if(!Strings.isEmpty(superClass) && !superClass.equals("java.lang.Object")) { sb.append(" extends "); sb.append(stripPackage(superClass)); } @SuppressWarnings("rawtypes") Iterator i = superInterfaces.iterator(); if(i.hasNext()) { sb.append(" implements "); sb.append(stripPackage(i.next())); while (i.hasNext()) { sb.append(", "); sb.append(stripPackage(i.next())); } } sb.append(" {"); sb.append(lineSeparator); sb.append(indentation); sb.append(lineSeparator); sb.append("}"); return sb.toString(); } private static Object stripPackage(Object superType) { return superType.toString().replaceAll("^(\\w+\\.)*", "") ; } }