Turn protected Java members into protected ActionScript members, and put them in the right place in the file.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6381 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -34,6 +34,7 @@ import org.apache.tools.ant.Project;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.common.io.Files;
|
||||
@@ -91,9 +92,18 @@ public class GenActionScriptStreamableTask extends GenTask
|
||||
for (Class<?> iface : sclass.getInterfaces()) {
|
||||
implemented.add(ActionScriptUtils.addImportAndGetShortType(iface, false, imports));
|
||||
}
|
||||
List<ASField> fields = Lists.newArrayList();
|
||||
List<ASField> pubFields = Lists.newArrayList();
|
||||
List<ASField> protFields = Lists.newArrayList();
|
||||
for (Field f : reqs.streamedFields) {
|
||||
fields.add(new ASField(f, imports));
|
||||
int mods = f.getModifiers();
|
||||
if (Modifier.isPublic(mods)) {
|
||||
pubFields.add(new ASField(f, imports));
|
||||
} else if (Modifier.isProtected(mods)) {
|
||||
protFields.add(new ASField(f, imports));
|
||||
} else {
|
||||
// don't care about private
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
String output = mergeTemplate("com/threerings/presents/tools/streamable_as.tmpl",
|
||||
@@ -104,7 +114,8 @@ public class GenActionScriptStreamableTask extends GenTask
|
||||
"extends", extendsName,
|
||||
"implements", Joiner.on(", ").join(implemented),
|
||||
"superclassStreamable", reqs.superclassStreamable,
|
||||
"fields", fields,
|
||||
"pubFields", pubFields,
|
||||
"protFields", protFields,
|
||||
"dobject", isDObject);
|
||||
|
||||
File outputLocation = ActionScriptUtils.createActionScriptPath(_asroot, sclass);
|
||||
|
||||
@@ -16,12 +16,12 @@ public class {{classname}} {{^extends.isEmpty}}extends {{extends}}
|
||||
// GENERATED CLASSDECL END
|
||||
|
||||
// GENERATED STREAMING START
|
||||
{{#fields}}
|
||||
{{#pubFields}}
|
||||
public var {{name}} :{{simpleType}};
|
||||
|
||||
{{/fields}}
|
||||
{{/pubFields}}
|
||||
{{#dobject}}
|
||||
{{#fields}}
|
||||
{{#pubFields}}
|
||||
public var set{{capitalName}} :Signal = new Signal({{simpleType}}, {{simpleType}});
|
||||
{{#dset}}
|
||||
public var addedTo{{capitalName}} :Signal = new Signal(DSet_Entry);
|
||||
@@ -31,21 +31,24 @@ public class {{classname}} {{^extends.isEmpty}}extends {{extends}}
|
||||
{{#array}}
|
||||
public var updated{{capitalName}} :Signal = new Signal(int, Object, Object);
|
||||
{{/array}}
|
||||
{{/fields}}
|
||||
{{/pubFields}}
|
||||
|
||||
{{#fields}}
|
||||
{{#pubFields}}
|
||||
public static const {{dobjectField}} :String = "{{name}}";
|
||||
|
||||
{{/fields}}
|
||||
{{/pubFields}}
|
||||
{{/dobject}}
|
||||
{{#superclassStreamable}}override {{/superclassStreamable}}public function readObject (ins :ObjectInputStream) :void
|
||||
{
|
||||
{{#superclassStreamable}}
|
||||
super.readObject(ins);
|
||||
{{/superclassStreamable}}
|
||||
{{#fields}}
|
||||
{{#pubFields}}
|
||||
{{name}} = ins.{{reader}};
|
||||
{{/fields}}
|
||||
{{/pubFields}}
|
||||
{{#protFields}}
|
||||
{{name}} = ins.{{reader}};
|
||||
{{/protFields}}
|
||||
}
|
||||
{{^dobject}}
|
||||
|
||||
@@ -54,9 +57,12 @@ public class {{classname}} {{^extends.isEmpty}}extends {{extends}}
|
||||
{{#superclassStreamable}}
|
||||
super.writeObject(out);
|
||||
{{/superclassStreamable}}
|
||||
{{#fields}}
|
||||
{{#pubFields}}
|
||||
out.{{writer}};
|
||||
{{/fields}}
|
||||
{{/pubFields}}
|
||||
{{#protFields}}
|
||||
out.{{writer}};
|
||||
{{/protFields}}
|
||||
}
|
||||
{{/dobject}}
|
||||
|
||||
@@ -66,6 +72,9 @@ public class {{classname}} {{^extends.isEmpty}}extends {{extends}}
|
||||
new Signaller(this);
|
||||
}
|
||||
{{/dobject}}
|
||||
{{#protFields}}
|
||||
protected var {{name}} :{{simpleType}};
|
||||
{{/protFields}}
|
||||
// GENERATED STREAMING END
|
||||
|
||||
// GENERATED CLASSFINISH START
|
||||
|
||||
Reference in New Issue
Block a user