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

Reply via email to