1 23 24 package org.enhydra.xml.xmlc.commands.xmlc; 25 26 import org.enhydra.xml.io.ErrorReporter; 27 import org.enhydra.xml.xmlc.XMLCException; 28 import org.enhydra.xml.xmlc.commands.options.Option; 29 import org.enhydra.xml.xmlc.commands.options.OptionSet; 30 import org.enhydra.xml.xmlc.metadata.DeleteElement; 31 import org.enhydra.xml.xmlc.metadata.MetaData; 32 import org.enhydra.xml.xmlc.metadata.URLMapping; 33 import org.enhydra.xml.xmlc.metadata.URLRegExpMapping; 34 35 38 class DOMEditCmdOptions extends BaseCmdOptions { 39 42 private class UrlMappingOption extends Option { 43 46 public UrlMappingOption() { 47 super("-urlmapping", 2, true, 48 "orgURL newURL - Specify a URL to modify and its new value"); 49 } 50 51 54 protected void parse(String [] args, 55 ErrorReporter errorReporter, 56 Object clientData) throws XMLCException { 57 URLMapping urlMapping 58 = ((MetaData)clientData).getDOMEdits().addURLMapping(); 59 60 urlMapping.setUrl(args[0]); 61 urlMapping.setNewUrl(args[1]); 62 } 63 } 64 65 68 private class UrlSettingOption extends Option { 69 72 public UrlSettingOption() { 73 super("-urlsetting", 2, true, 74 "id newURL - Specify a URL to set given a tag id"); 75 } 76 77 80 protected void parse(String [] args, 81 ErrorReporter errorReporter, 82 Object clientData) throws XMLCException { 83 URLMapping urlMapping 84 = ((MetaData)clientData).getDOMEdits().addURLMapping(); 85 86 urlMapping.addElementId(args[0]); 87 urlMapping.setNewUrl(args[1]); 88 } 89 } 90 91 94 private class UrlRegExpMappingOption extends Option { 95 98 public UrlRegExpMappingOption () { 99 super("-urlregexpmapping", 2, true, 100 "regexp replace - Specify a regular expression to match URLs and a replacement pattern"); 101 } 102 103 106 protected void parse(String [] args, 107 ErrorReporter errorReporter, 108 Object clientData) throws XMLCException { 109 URLRegExpMapping urlRegExpMapping 110 = ((MetaData)clientData).getDOMEdits().addURLRegExpMapping(); 111 urlRegExpMapping.setRegexp(args[0]); 112 urlRegExpMapping.setSubst(args[1]); 113 } 114 } 115 116 119 private class DeleteClassOption extends Option { 120 123 public DeleteClassOption() { 124 super("-delete-class", 1, true, 125 "classname - Delete all elements are in the specified class (element class attribute, not Java class)"); 126 } 127 128 131 protected void parse(String [] args, 132 ErrorReporter errorReporter, 133 Object clientData) throws XMLCException { 134 DeleteElement deleteElement 135 = ((MetaData)clientData).getDOMEdits().addDeleteElement(); 136 deleteElement.addElementClass(args[0]); 137 } 138 } 139 140 143 public DOMEditCmdOptions(OptionSet optionSet) { 144 super(optionSet); 145 optionSet.addOption(new UrlMappingOption()); 146 optionSet.addOption(new UrlSettingOption()); 147 optionSet.addOption(new UrlRegExpMappingOption()); 148 optionSet.addOption(new DeleteClassOption()); 149 } 150 } 151 | Popular Tags |