1 19 20 package org.netbeans.modules.xml.axi.impl; 21 22 import org.netbeans.modules.xml.axi.AXIComponent; 23 import org.netbeans.modules.xml.axi.Element; 24 import org.netbeans.modules.xml.axi.SchemaGenerator; 25 import org.netbeans.modules.xml.schema.model.*; 26 27 31 public class VenetianBlind extends GardenOfEden { 32 33 36 public VenetianBlind(SchemaGenerator.Mode mode) { 37 super(mode); 38 } 39 40 protected SchemaGenerator.Pattern getSchemaDesignPattern() { 41 return SchemaGenerator.Pattern.VENITIAN_BLIND; 42 } 43 44 public void visit(Element element) { 45 prepareLocalElement(element); 46 } 47 48 protected void setPeer(final Element element, 49 final org.netbeans.modules.xml.schema.model.Element e, 50 final ElementReference eref) { 51 if(element.getPeer() != null && element.getChildren().size() > 0 && 52 SchemaGeneratorUtil.isGlobalElement(element)) { 53 LocalType lct = SchemaGeneratorUtil.getLocalComplexType(e); 54 if(lct == null) 55 lct = SchemaGeneratorUtil.createLocalComplexType(sm, e); 56 assert lct != null; 57 scParent = lct; 58 } else 59 super.setPeer(element, e, eref); 60 } 61 62 protected SchemaComponent getParent( 63 AXIComponent axiparent) throws IllegalArgumentException { 64 SchemaComponent scParent = null; 65 if(axiparent instanceof Element && 66 (SchemaGeneratorUtil.isGlobalElement(axiparent) )) { 68 SchemaComponent e = axiparent.getPeer(); 69 if(e instanceof ElementReference) 70 e = ((ElementReference)e).getRef().get(); 71 assert e != null; 72 SchemaComponent lct = SchemaGeneratorUtil.getLocalComplexType(e); 73 if(lct == null) { 74 lct = SchemaGeneratorUtil.getGlobalComplexType(e); 75 if(lct == null) 76 lct = SchemaGeneratorUtil.createLocalComplexType(sm, e); 77 } 78 assert lct != null; 79 scParent = lct; 80 } else { 81 scParent = super.getParent(axiparent); 82 } 83 return scParent; 84 } 85 } 86 | Popular Tags |