📄 jsourcecodewizardabstract.java
字号:
/**
* 梌偊傜傟偨暥帤楍偺堦晹暘傪庢摼偡傞儊僜僢僪
* 2僶僀僩1暥帤偺暥帤偼2暥帤偲偟偰僇僂儞僩偟傑偡丅
* Unicode揑側摦嶌偼峴偄傑偣傫丅
* 暥帤偑搑拞偱暘抐偝傟傞応崌偼 偦偺暥帤偼徣偒 敿妏嬻敀傪杽傔傑偡丅<BR>
* 亂拲堄亃偙偺儊僜僢僪偵偮偄偰偼 JSourceCodeWizard僋儔僗偑嶌惉偡傞傂側宍僜乕僗僐乕僪
* 偺堦晹偲偟偰棙梡偝傟傑偡丅偛棟夝偲偛嫤椡偺傎偳 偳偆偧傛傠偟偔偍婅偄偄偨偟傑偡丅<BR>
*
* @param String strInput 擖椡暥帤楍
* @param int iStart 奐巒埵抲 (0僆儕僕儞)
* @param int iLength 庢摼挿偝
* @return String 晹暘暥帤楍
*/
public static final String subString(String strInput,int iStart,int iLength)
{
if(strInput==null)return null;
if(iLength<=0)return "";
try{
StringReader reader=new StringReader(strInput);
StringWriter writer=new StringWriter();
int iTotalLength=0;
// 僗僞乕僩抧揰傑偱憗憲傝
for(int iCurrentLength=0;iCurrentLength<iStart;)
{
int iRead=reader.read();
if(iRead<0)
{
// 僗僞乕僩抧揰偵撏偔慜偵廔椆
return "";
}
if(iRead>0xff)
{
iCurrentLength+=2;
if(iCurrentLength>=iStart)
{
if(iCurrentLength>iStart)
{
writer.write(' ');
iTotalLength++;
}
break;
}
}
else
{
iCurrentLength+=1;
}
}
// 巜掕挿偝偩偗撉傒偲傝
for(;iTotalLength<iLength;)
{
int iRead=reader.read();
if(iRead<0)break;
if(iRead>0xff)
{
iTotalLength+=2;
if(iTotalLength>iLength)
{
writer.write(' ');
break;
}
}
else
{
iTotalLength+=1;
}
writer.write(iRead);
}
writer.flush();
writer.close();
return writer.toString();
}catch(IOException ex){
System.out.println(ex.toString());
ex.printStackTrace();
return null;
}
}
/**
* 梌偊傜傟偨Node傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
*
* @param Node nodeLook 擖椡僲乕僪
*/
public void parse(org.w3c.dom.Node nodeLook)
{
org.w3c.dom.NodeList nodelistLook=nodeLook.getChildNodes();
for(int indexKey=0;indexKey<nodelistLook.getLength();indexKey++)
{
org.w3c.dom.Node nodeItemLook=nodelistLook.item(indexKey);
if(nodeItemLook.getNodeType()!=org.w3c.dom.Node.ELEMENT_NODE)
{
continue;
}
org.w3c.dom.Element eleItemLook=(org.w3c.dom.Element)nodeItemLook;
if(eleItemLook.getTagName().equals("channel"))
{
f_channel.parse(eleItemLook);
}
else if(eleItemLook.getTagName().equals(JSourceCodeWizardField.getWizardShortName()))
{
JSourceCodeWizardField genItem=new JSourceCodeWizardField();
genItem.parse(eleItemLook);
f_field.add(genItem);
}
else if(eleItemLook.getTagName().equals("currentDirectory"))
{
setCurrentDirectory((getTextNodeValue(eleItemLook)));
}
else
{
System.out.println("JSourceCodeWizardAbstract: Unknown element ["+eleItemLook.getTagName()+"]");
}
}
}
/**
* 梌偊傜傟偨XML僼傽僀儖傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
*
* @param File fileXmlFile 擖椡XML僼傽僀儖
*/
public void parseXml(File fileXmlFile)
throws IOException
{
InputStream inStream=new BufferedInputStream(new FileInputStream(fileXmlFile));
try{
javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();
javax.xml.transform.dom.DOMResult domResult=new javax.xml.transform.dom.DOMResult();
transformer.transform(new javax.xml.transform.stream.StreamSource(inStream),domResult);
org.w3c.dom.Document document=(org.w3c.dom.Document)domResult.getNode();
parse(document.getDocumentElement());
}catch(javax.xml.transform.TransformerException ex){
System.out.println(ex.toString());
ex.printStackTrace();
}
inStream.close();
}
/**
* 梌偊傜傟偨Element偵僼傿乕儖僪傪彂偒弌偟傑偡
*
* @param Document document 僪僉儏儊儞僩
* @param Element elementParent 恊僲乕僪
*/
public void serialize(org.w3c.dom.Document document,org.w3c.dom.Element elementParent)
{
org.w3c.dom.Comment commentMySelf=document.createComment("JSourceCodeWizard(abstract class of wizard)");
if(elementParent!=null)elementParent.appendChild(commentMySelf);
org.w3c.dom.Element elementMyself=document.createElement("JSourceCodeWizard");
{
StringBuffer strbufChannel=new StringBuffer();
strbufChannel.append("channel(class define)");
strbufChannel.append(" 宆:JSourceCodeWizardChannel");
strbufChannel.append(" 僨僼僅儖僩抣:[new JSourceCodeWizardChannel()]");
org.w3c.dom.Comment commentChannel=document.createComment(strbufChannel.toString());
elementMyself.appendChild(commentChannel);
}
f_channel.serialize(document,elementMyself);
{
StringBuffer strbufField=new StringBuffer();
strbufField.append("field(field define)");
strbufField.append(" 宆:java.util.ArrayList");
strbufField.append(" 僨僼僅儖僩抣:[new java.util.ArrayList()]");
org.w3c.dom.Comment commentField=document.createComment(strbufField.toString());
elementMyself.appendChild(commentField);
}
if(f_field!=null)for(int index=0;index<f_field.size();index++)
{
JSourceCodeWizardField itemLook=(JSourceCodeWizardField)f_field.get(index);
itemLook.serialize(document,elementMyself);
}
{
StringBuffer strbufCurrentDirectory=new StringBuffer();
strbufCurrentDirectory.append("currentDirectory(processing directory)");
strbufCurrentDirectory.append(" 宆:String");
strbufCurrentDirectory.append(" 僨僼僅儖僩抣:[\".\"]");
org.w3c.dom.Comment commentCurrentDirectory=document.createComment(strbufCurrentDirectory.toString());
elementMyself.appendChild(commentCurrentDirectory);
}
org.w3c.dom.Element elementCurrentDirectory=document.createElement("currentDirectory");
if(getCurrentDirectory()!=null)elementCurrentDirectory.appendChild(document.createTextNode((getCurrentDirectory())));
elementMyself.appendChild(elementCurrentDirectory);
if(elementParent!=null)
{
elementParent.appendChild(elementMyself);
}
else
{
document.appendChild(elementMyself);
}
}
/**
* 梌偊傜傟偨XML僼傽僀儖偵彂偒弌偟偟傑偡
*
* @param File fileXmlFile 弌椡XML僼傽僀儖
*/
public void serializeXml(File fileXmlFile)
throws IOException
{
org.w3c.dom.Document document=null;
try{
javax.xml.parsers.DocumentBuilder documentBuilder=javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
document=documentBuilder.newDocument();
}catch(javax.xml.parsers.ParserConfigurationException ex){
System.out.println(ex.toString());
ex.printStackTrace();
throw new IOException(ex.toString());
}
serialize(document,null);
OutputStream outStream=new BufferedOutputStream(new FileOutputStream(fileXmlFile));
try{
javax.xml.transform.Transformer transformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty("encoding","Shift_JIS");
transformer.setOutputProperty("standalone","yes");
transformer.setOutputProperty("indent","yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","2");
transformer.transform(new javax.xml.transform.dom.DOMSource(document),new javax.xml.transform.stream.StreamResult(outStream));
}catch(javax.xml.transform.TransformerException ex){
System.out.println(ex.toString());
ex.printStackTrace();
}
outStream.flush();
outStream.close();
}
/**
* 梌偊傜傟偨Node偵娷傑傟傞暥帤楍傪庢傝弌偟傑偡
*
* @param Node nodeLook 擖椡僲乕僪
*/
public static final String getTextNodeValue(org.w3c.dom.Node nodeLook)
{
StringBuffer strbufWrk=new StringBuffer();
org.w3c.dom.NodeList nodelistItems=nodeLook.getChildNodes();
if(nodelistItems.getLength()==0)return null;
for(int indexItem=0;indexItem<nodelistItems.getLength();indexItem++)
{
org.w3c.dom.Node nodeText=nodelistItems.item(indexItem);
if(nodeText.getNodeType()==org.w3c.dom.Node.TEXT_NODE)
{
strbufWrk.append(nodeText.getNodeValue());
}
}
return strbufWrk.toString();
}
/**
* 梌偊傜傟偨Csv暥帤楍傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
*
* @param String strLine 擖椡峴
*/
public void parseCsv(String strLine)
{
StringReader reader=new StringReader(strLine);
setCurrentDirectory((wizTsvNextToken(reader)));
}
protected String wizCsvNextToken(Reader reader)
{
StringWriter writer=new StringWriter();
try{
for(;;)
{
int iRead=reader.read();
if(iRead<0)break;
if(iRead==',')break;
if(iRead=='\n')break;
writer.write(iRead);
}
writer.flush();
writer.close();
}catch(IOException ex){
System.out.println(ex.toString());
ex.printStackTrace();
}
return writer.toString();
}
/**
* 梌偊傜傟偨Csv僼傽僀儖偵彂偒弌偟偟傑偡
*
* @param File fileFile 弌椡Csv僼傽僀儖
*/
public void serializeCsv(Writer writer)
throws IOException
{
writer.write((getCurrentDirectory()));
}
/**
* 梌偊傜傟偨Csv僼傽僀儖偵彂偒弌偟偟傑偡
*
* @param File fileFile 弌椡Csv僼傽僀儖
*/
public void serializeCsv(File fileFile)
throws IOException
{
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileFile)));
serializeCsv(writer);
writer.newLine();
writer.flush();
writer.close();
}
/**
* 梌偊傜傟偨Tsv暥帤楍傪僷乕僗偟偰僼傿乕儖僪偵戙擖偟傑偡
*
* @param String strLine 擖椡峴
*/
public void parseTsv(String strLine)
{
StringReader reader=new StringReader(strLine);
setCurrentDirectory((wizTsvNextToken(reader)));
}
protected String wizTsvNextToken(Reader reader)
{
StringWriter writer=new StringWriter();
try{
for(;;)
{
int iRead=reader.read();
if(iRead<0)break;
if(iRead=='\t')break;
if(iRead=='\n')break;
writer.write(iRead);
}
writer.flush();
writer.close();
}catch(IOException ex){
System.out.println(ex.toString());
ex.printStackTrace();
}
return writer.toString();
}
/**
* 梌偊傜傟偨Tsv僼傽僀儖偵彂偒弌偟偟傑偡
*
* @param File fileFile 弌椡Tsv僼傽僀儖
*/
public void serializeTsv(Writer writer)
throws IOException
{
writer.write((getCurrentDirectory()));
}
/**
* 梌偊傜傟偨Tsv僼傽僀儖偵彂偒弌偟偟傑偡
*
* @param File fileFile 弌椡Tsv僼傽僀儖
*/
public void serializeTsv(File fileFile)
throws IOException
{
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileFile)));
serializeTsv(writer);
writer.newLine();
writer.flush();
writer.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -