equal
deleted
inserted
replaced
1218 } |
1218 } |
1219 private static void writeOutputs(DataOutputStream out, Object... data) throws IOException { |
1219 private static void writeOutputs(DataOutputStream out, Object... data) throws IOException { |
1220 for (Object x : data) writeOutput(out, x); |
1220 for (Object x : data) writeOutput(out, x); |
1221 } |
1221 } |
1222 |
1222 |
1223 public static abstract class Outer { |
1223 public abstract static class Outer { |
1224 public abstract List<? extends Inner> inners(); |
1224 public abstract List<? extends Inner> inners(); |
1225 protected void linkInners() { |
1225 protected void linkInners() { |
1226 for (Inner i : inners()) { |
1226 for (Inner i : inners()) { |
1227 i.linkOuter(this); |
1227 i.linkOuter(this); |
1228 if (i instanceof Outer) |
1228 if (i instanceof Outer) |
1248 } |
1248 } |
1249 return null; |
1249 return null; |
1250 } |
1250 } |
1251 } |
1251 } |
1252 public interface Inner { Outer outer(); void linkOuter(Outer o); } |
1252 public interface Inner { Outer outer(); void linkOuter(Outer o); } |
1253 public static abstract class InnerOuter extends Outer implements Inner { |
1253 public abstract static class InnerOuter extends Outer implements Inner { |
1254 public Outer outer; |
1254 public Outer outer; |
1255 public Outer outer() { return outer; } |
1255 public Outer outer() { return outer; } |
1256 public void linkOuter(Outer o) { assert(outer == null); outer = o; } |
1256 public void linkOuter(Outer o) { assert(outer == null); outer = o; } |
1257 } |
1257 } |
1258 public static class Constant<T> implements Chunk { |
1258 public static class Constant<T> implements Chunk { |