blob: b081a448a2189f5875a764b40570e06064820da4 [file] [log] [blame]
<%
final String TAG = "//IMPORT_LOCATION";
importManager = new ImportManager(packageName) {
private StringBuffer buf;
@Override
public void markImportLocation(StringBuffer stringBuffer) {
stringBuffer.append(TAG);
buf = stringBuffer;
}
@Override
public void emitSortedImports() {
InternalPatternContext ictx = (InternalPatternContext) ctx;
final Container node = ictx.getNode();
Node.DataLeaf importNode = getImportNode((Node.Container) node.getContainer(Node.Container.class));
if (importNode == null) {
final int indexOf = buf.indexOf(TAG);
final int indexOf2 = buf.indexOf("//IMPORT_LOCATION", indexOf + 1);
buf.replace(indexOf, indexOf + TAG.length(), computeSortedImports());
} else {
String data = importNode.getData();
data = data.replace(TAG, computeSortedImports());
importNode.setData(data);
}
}
protected Node.DataLeaf getImportNode(final Container container) {
for (Node node : container.getChildren())
if (node instanceof Container) {
Node.DataLeaf result = getImportNode((Container) node);
if (result != null)
return result;
} else if (node instanceof Node.DataLeaf) {
Node.DataLeaf result = (Node.DataLeaf) node;
if (result.getData().contains(TAG))
return result;
}
return null;
}
};
importManager.addMasterImport(packageName, className);
genModel.setImportManager(importManager);
%>