Well, yeah, I got a little carried away, but it was driving me nuts the way you had to bounce back and forth between ViewSchema and ClassModel all the time. I think this makes ClassModel a lot cleaner, and ViewSchema a lot simpler too.
On 2010-09-22, at 07:20, Henry Minsky wrote: > 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]
