Approved for QA!
On 9/21/10 6:26 AM, P T Withington 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