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]


Reply via email to