1 19 20 package org.netbeans.modules.xml.schema.model.impl; 21 22 import org.netbeans.modules.xml.schema.model.ElementReference; 23 import org.netbeans.modules.xml.schema.model.LocalElement; 24 import org.netbeans.modules.xml.schema.model.SchemaComponent; 25 import org.netbeans.modules.xml.schema.model.visitor.DefaultSchemaVisitor; 26 import org.netbeans.modules.xml.xam.dom.SyncUnit; 27 28 32 public class SyncUnitReviewVisitor extends DefaultSchemaVisitor { 33 private SyncUnit unit; 34 35 36 public SyncUnitReviewVisitor() { 37 } 38 39 public SyncUnit review(SyncUnit unit) { 40 this.unit = unit; 41 ((SchemaComponent)unit.getTarget()).accept(this); 42 return unit; 43 } 44 45 static private SchemaModelImpl getSchemaModel(SchemaComponent c) { 46 return (SchemaModelImpl) c.getModel(); 47 } 48 49 private void fixSyncUnit(SchemaComponentImpl atarget) { 50 unit = new SyncUnit(atarget.getParent()); 51 unit.addToRemoveList(atarget); 52 unit.addToAddList(getSchemaModel(atarget).createComponent(atarget.getParent(), atarget.getPeer())); 53 } 54 55 public void visit(LocalElement target) { 56 SchemaComponentImpl atarget = (SchemaComponentImpl) target; 57 if (atarget.getAttributeValue(SchemaAttributes.REF) != null) { 58 fixSyncUnit(atarget); 59 } 60 } 61 62 public void visit(ElementReference target) { 63 SchemaComponentImpl atarget = (SchemaComponentImpl) target; 64 if (atarget.getAttributeValue(SchemaAttributes.TYPE) != null) { 65 fixSyncUnit(atarget); 66 } 67 } 68 69 } 70 | Popular Tags |