Beispiel #1
0
        public static List <JavaClass> Import(List <TypeDefinition> cilTypes)
        {
            if (_Where != null)
            {
                throw new InvalidOperationException();
            }

            _Where       = new JavaException.Where();
            JavaClasses  = new List <JavaClass>();
            GenericStack = new GenericStack();

            foreach (var cilType in cilTypes)
            {
                if (cilType.HasCustomAttribute("Discard"))
                {
                    continue; // if decorated with [java.attr.Discard], don't export to java
                }
                if (cilType.FullName == "<PrivateImplementationDetails>")
                {
                    continue; // discard the private class for array initializers
                }
                Where.Push($"assembly {cilType.Module.FileName}");

                TypeBuilder.BuildJavaClass(cilType, null);

                Where.Pop();
            }

            _Where = null;
            return(JavaClasses);
        }
Beispiel #2
0
 public GenericStack(GenericStack oldStack = null)
 {
     if (oldStack == null)
     {
         items = new List <GenericStackItem>();
     }
     else
     {
         items = new List <GenericStackItem>(oldStack.items);
     }
 }