egads that was a hell of a lot of refactoring! approved
On Tue, Sep 21, 2010 at 9:26 AM, P T Withington <[email protected]> wrote: > 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 > -- Henry Minsky Software Architect [email protected]
