Exemplo n.º 1
0
 public static InjectionPlan Serialize(Implementations.InjectionPlan.InjectionPlan ip) 
 {
     if (ip is Implementations.InjectionPlan.Constructor) 
     {
         Implementations.InjectionPlan.Constructor cons = (Implementations.InjectionPlan.Constructor)ip;
         Implementations.InjectionPlan.InjectionPlan[] args = cons.GetArgs();
         InjectionPlan[] protoArgs = new InjectionPlan[args.Length];
         for (int i = 0; i < args.Length; i++) 
         {
             protoArgs[i] = Serialize(args[i]);
         }
         return NewConstructor(ip.GetNode().GetFullName(), protoArgs.ToList<InjectionPlan>());
     } 
     if (ip is Implementations.InjectionPlan.Subplan) 
     {
         Implementations.InjectionPlan.Subplan sp = (Implementations.InjectionPlan.Subplan)ip;
         Implementations.InjectionPlan.InjectionPlan[] args = sp.GetPlans();
         InjectionPlan[] subPlans = new InjectionPlan[args.Length];
         for (int i = 0; i < args.Length; i++) 
         {
             subPlans[i] = Serialize(args[i]);
         }
         return NewSubplan(ip.GetNode().GetFullName(), sp.GetSelectedIndex(), subPlans.ToList<InjectionPlan>());
     } 
     if (ip is CsInstance) 
     {
         CsInstance ji = (CsInstance)ip;
         return NewInstance(ip.GetNode().GetFullName(), ji.GetInstanceAsString());
     } 
     Org.Apache.REEF.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException(
             "Encountered unknown type of InjectionPlan: " + ip), LOGGER);
     return null;
 }