litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.ui_1_5.def; import junit.framework.*; import org.litesoft.ui.def.*; import org.litesoft.ui.def.nonpublic.support.*; public class VisitorTest extends TestCase { public static TestSuite suite() { return new TestSuite( VisitorTest.class ); } public VisitorTest( String name ) { super( name ); } public static void main( String[] args ) { junit.textui.TestRunner.run( suite() ); } public void testVisit() throws Exception { UiFormDef form = UI.form( "Test", // UI.vertical().layout( // UI.input( "zAname" ), // UI.action( "Save" ) // ) ).forEdit(); StringBuilder sb = new StringBuilder(); new TestVisitor().process( form, sb ); assertEquals( "Visits", // "visit1PreAnyChildProcessing: Form(IntendedUse='Edit' RootType='Test')\n" + // "visit2ChildrenHelper: Form(IntendedUse='Edit' RootType='Test')\n" + // "visit3mutateParameterForChildren: Form(IntendedUse='Edit' RootType='Test')\n" + // "visit4mutateParameterForChild: Form(IntendedUse='Edit' RootType='Test') -> VerticalLayout()\n" + "visit1PreAnyChildProcessing: VerticalLayout()\n" + // "visit2ChildrenHelper: VerticalLayout()\n" + // "visit3mutateParameterForChildren: VerticalLayout()\n" + // "visit4mutateParameterForChild: VerticalLayout() -> Action(ActionID='Save')\n" + // "visit4mutateParameterForChild: VerticalLayout() -> Input(AttributeName='zAname')\n" + "visit1PreAnyChildProcessing: Input(AttributeName='zAname')\n" + // "visit5PostAllChildProcessing: Input(AttributeName='zAname')\n" + // "visit1PreAnyChildProcessing: Action(ActionID='Save')\n" + // "visit5PostAllChildProcessing: Action(ActionID='Save')\n" + // "visit5PostAllChildProcessing: VerticalLayout()\n" + // "visit5PostAllChildProcessing: Form(IntendedUse='Edit' RootType='Test')\n" + // "", sb.toString() ); } private class TestVisitor extends UiD_Visitor { protected void visit1PreAnyChildProcessing( UiDef pUiDef, Object pParameter ) { super.visit1PreAnyChildProcessing( pUiDef, pParameter ); ((StringBuilder) pParameter).append( "visit1PreAnyChildProcessing: " ).append( pUiDef ).append( "\n" ); } protected void visit2ChildrenHelper( UiDef pUiDef, Object pParameter, AbstractUiChildrenHelper pHelper ) { super.visit2ChildrenHelper( pUiDef, pParameter, pHelper ); ((StringBuilder) pParameter).append( "visit2ChildrenHelper: " ).append( pUiDef ).append( "\n" ); } protected Object visit3mutateParameterForChildren( UiDef pUiDef, Object pParameter ) { ((StringBuilder) pParameter).append( "visit3mutateParameterForChildren: " ).append( pUiDef ).append( "\n" ); return pParameter; } protected Object visit4mutateParameterForChild( UiDef pUiDef, Object pParameter, UiDef pChild ) { ((StringBuilder) pParameter).append( "visit4mutateParameterForChild: " ).append( pUiDef ).append( " -> " ).append( pChild ).append( "\n" ); return super.visit4mutateParameterForChild( pUiDef, pParameter, pChild ); } protected void visit5PostAllChildProcessing( UiDef pUiDef, Object pParameter ) { super.visit5PostAllChildProcessing( pUiDef, pParameter ); ((StringBuilder) pParameter).append( "visit5PostAllChildProcessing: " ).append( pUiDef ).append( "\n" ); } } } |