Move addExistingImports from GenActionScriptStreamableTask to ActionScriptUtils
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6641 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -24,6 +24,8 @@ package com.threerings.presents.tools;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
@@ -37,6 +39,26 @@ import com.threerings.util.StreamableHashSet;
|
|||||||
|
|
||||||
public class ActionScriptUtils
|
public class ActionScriptUtils
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Adds an existing ActionScript file's imports to the given ImportSet.
|
||||||
|
* @param asFile a String containing the contents of an ActionScript file
|
||||||
|
*/
|
||||||
|
public static void addExistingImports (String asFile, ImportSet imports)
|
||||||
|
{
|
||||||
|
// Discover the location of the 'public class' declaration.
|
||||||
|
// We won't search past there.
|
||||||
|
Matcher m = AS_PUBLIC_CLASS_DECL.matcher(asFile);
|
||||||
|
int searchTo = asFile.length();
|
||||||
|
if (m.find()) {
|
||||||
|
searchTo = m.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
m = AS_IMPORT.matcher(asFile.substring(0, searchTo));
|
||||||
|
while (m.find()) {
|
||||||
|
imports.add(m.group(3));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static String addImportAndGetShortType (Class<?> type, boolean isField,
|
public static String addImportAndGetShortType (Class<?> type, boolean isField,
|
||||||
ImportSet imports)
|
ImportSet imports)
|
||||||
{
|
{
|
||||||
@@ -249,4 +271,9 @@ public class ActionScriptUtils
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected static final Splitter DOT_SPLITTER = Splitter.on('.');
|
protected static final Splitter DOT_SPLITTER = Splitter.on('.');
|
||||||
|
|
||||||
|
protected static final Pattern AS_PUBLIC_CLASS_DECL = Pattern.compile("^public class(.*)$",
|
||||||
|
Pattern.MULTILINE);
|
||||||
|
protected static final Pattern AS_IMPORT = Pattern.compile("^(\\s*)import(\\s+)([^;]*);",
|
||||||
|
Pattern.MULTILINE);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,9 +27,6 @@ import java.lang.reflect.Modifier;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import org.apache.tools.ant.Project;
|
import org.apache.tools.ant.Project;
|
||||||
|
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
@@ -100,7 +97,7 @@ public class GenActionScriptStreamableTask extends GenTask
|
|||||||
// it a pain to keep additional imports out of the GENERATED PREAMBLE section of
|
// it a pain to keep additional imports out of the GENERATED PREAMBLE section of
|
||||||
// class, so we just merge all the imports we find.
|
// class, so we just merge all the imports we find.
|
||||||
if (existing != null) {
|
if (existing != null) {
|
||||||
addExistingImports(existing, imports);
|
ActionScriptUtils.addExistingImports(existing, imports);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isDObject = DObject.class.isAssignableFrom(sclass);
|
boolean isDObject = DObject.class.isAssignableFrom(sclass);
|
||||||
@@ -163,23 +160,6 @@ public class GenActionScriptStreamableTask extends GenTask
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static void addExistingImports (String asFile, ImportSet imports)
|
|
||||||
throws Exception
|
|
||||||
{
|
|
||||||
// Discover the location of the 'public class' declaration.
|
|
||||||
// We won't search past there.
|
|
||||||
Matcher m = AS_PUBLIC_CLASS_DECL.matcher(asFile);
|
|
||||||
int searchTo = asFile.length();
|
|
||||||
if (m.find()) {
|
|
||||||
searchTo = m.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
m = AS_IMPORT.matcher(asFile.substring(0, searchTo));
|
|
||||||
while (m.find()) {
|
|
||||||
imports.add(m.group(3));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static class ASField
|
protected static class ASField
|
||||||
{
|
{
|
||||||
public final String name;
|
public final String name;
|
||||||
@@ -230,9 +210,4 @@ public class GenActionScriptStreamableTask extends GenTask
|
|||||||
|
|
||||||
/** The path to our ActionScript source files. */
|
/** The path to our ActionScript source files. */
|
||||||
protected File _asroot;
|
protected File _asroot;
|
||||||
|
|
||||||
protected static final Pattern AS_PUBLIC_CLASS_DECL = Pattern.compile("^public class(.*)$",
|
|
||||||
Pattern.MULTILINE);
|
|
||||||
protected static final Pattern AS_IMPORT = Pattern.compile("^(\\s*)import(\\s+)([^;]*);",
|
|
||||||
Pattern.MULTILINE);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user