Change ptw-20100920-Zt6 by [email protected] on 2010-09-20 12:45:21 EDT in /Users/ptw/OpenLaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: Remodularize LZX class compilation to support types Bugs Fixed: LPP-7354 Presentation Types (partial) Technical Reviewer: [email protected] (pending) QA Reviewer: [email protected] (pending) Doc Reviewer: (pending) Overview: Disentangled ClassModel from ViewSchema and created a separate class table for classes that implement <type> as opposed to <class>. Details: lfc-undeclared: interface/mixin/class are really meta-tags, not subclasses of node. Permit <anonymous> nodes in <node>. Permit <interface> and <type> in <canvas> SchemaBuilder, ClassCompiler, ViewCompiler, TypeCompiler, MixinCompiler, ToplevelCompiler, InterfaceCompiler, CompilationEnvironment, Parser: Update to use symbolic constants, new API's. Schema: Remove DEFAULT_SCHEMA and getTypeAttribute protocol (moved to ClassModel). ViewSchema: Move all class modelling to ClassModel. Add separate table for <type> classes. Remove lots of unused cruft. Fix total brain-oh in resolveClassModels to actually resolve classes in dependency order. Simplify detection and checking of built-in classes. Simplify containment checking by merging forbidden//tagset of superclasses. Make event property of <method> obsolete. NodeModel: Use metaclass model, cache isclassdef. Inline discovery of parentClassModel rather than trampolining through ViewSchema. Inherit initstage. Simplify totalSubnodes computation. Simplify attribute type computation. Handle user-defined <type>s. Compiler: Look for <type>s. AttributeSpec: Store final as a boolean ClassModel: Cache more predicates. Remove unused crud. Generalize to support type implementations. Improve sortKey and compareTo so classes can actually be sorted in dependency order. Inherit predicates and contain/forbidded tags from superclass. Move class modelling stuff from ViewSchema here. Tests: ant lztest, smokecheck X all runtimes, selected demo X runtime combinations Files: M WEB-INF/lps/schema/lfc-undeclared.lzx M WEB-INF/lps/server/src/org/openlaszlo/js2doc/SchemaBuilder.java M WEB-INF/lps/server/src/org/openlaszlo/xml/internal/Schema.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ViewCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/TypeCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/MixinCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/InterfaceCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ViewSchema.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/AttributeSpec.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java Changeset: http://svn.openlaszlo.org/openlaszlo/patches/ptw-20100920-Zt6.tar
