⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkdoc.java

📁 该代码是《JXTA-java P2P网络编程技术》一书的源代码
💻 JAVA
字号:
package net.jxta.impl.shell.bin.mkdoc;

import net.jxta.impl.shell.*;
import net.jxta.endpoint.*;
import net.jxta.document.*;


public class mkdoc extends ShellApp {
   ShellEnv env;
  private static final String elementDefine = "-e";
  private static final String combineElements = "-c";
  private static final String makeDoc = "-d";
  private String myDocType = null;

   private String elementName = null;
   private String elementContent = null;
   private String myElement = null;

public mkdoc() {
  }




  public int startApp (String[] args) {

	if ((args == null) || (args.length < 3)) {
	    return reportError();
	}

      env = getEnv();

      if (elementDefine.equals(args[0])) { // define a new element
        
         elementName = args[1];
         elementContent = getRestOfArgs(args,2);
      
            myElement = "<" + elementName + ">" +elementContent + "</"+elementName +">";

	
      }

      if (combineElements.equals(args[0])) { // combine elements into new element
       elementName = args[1];
       elementContent = mergeAllElements(args,2);
       myElement = "<" + elementName + ">" +elementContent + "</"+elementName +">";

        }

       if (makeDoc.equals(args[0])) {// create a structured document
          myDocType = args[1];
          myElement = mergeAllElements(args,2);
 	StructuredDocument doc = null;
 	try {     
 	    	
	    doc = StructuredDocumentFactory.newStructuredDocument (
								   new MimeMediaType ("text/xml"),myDocType,
								   myElement);
	} catch (Exception ex) {
	    	 println("mkdoc: " + ex.toString());
	    return ShellApp.appMiscError;
	}
        env.add(getReturnVariable(),
                                  new ShellObject("StructuredDocument", doc));


        return ShellApp.appNoError;

        }
        env.add(getReturnVariable(),
                                  new ShellObject("String", myElement));


     return ShellApp.appNoError; 
  }

  public void stopApp () {
  }

  public String getRestOfArgs(String [] args, int idx) {
    int arysize = args.length;
    String res = args[idx];

    for (int i=(idx + 1); i < arysize; i++) {
       res = res + " " + args[i];

      }
     return res;

   }

  public String mergeAllElements(  String [] args, int idx) {

    int arysize = args.length;
    String res = "";
    try {
    for (int i= idx; i <arysize; i++) {
           ShellObject obj = env.get (args[i]);
           res += (String) obj.getObject();
       }
    }
    catch (Exception ex) { 
      println("mkdoc: sorry, cannot access some elements.");
      res = "";  
      } 
     return res;
  }
 private int reportError() {
	println ("usage: mkdoc [-e <element name> <element content>]");
      println ("             [-c <element name> <element> .... ]");
      println ("             [-d <doctype> <element> .... ]");
      println (" ");
      println ("'man mkdoc' to get more information.");
	return ShellApp.appParamError;
    }

  public String getDescription() {
      return "Creates a structured document in memory.";
  }


  public void help() {
      println("NAME");
      println("     mkdoc - create a sructured document in memory.");
      println(" ");
      println("SYNOPSIS");
      println("     mkdoc [-e <element name> <element content>]");
      println("           [-c <element name> <element>...]");
      println("           [-d <doctype> <element> ....]");

      println(" ");
      println("DESCRIPTION");
      println(" ");
      println("'mkdoc' provides a way to create complete structured");
      println("documents from scratch, in memory, without using file.");
      println(" ");
      println("First, you use -e to create environment variables that");
      println("contains the element you want. Then you can use -c to");
      println("combine them in new elements, or just create a structured");
      println("document using the -d option");
            println(" ");
      println("EXAMPLE");
      println("    JXTA>name=mkdoc -e name Joe Baxer");
      println("    JXTA>phone=mkdoc -e phone 223-222-3333");
      println("    JXTA>mydoc=mkdoc -d CustData name phone");
      println("Explanation");
      println("    The commands above creates a structured document with");
      println("     root of CustData containing the name and phone info.");
     println(" ");
       }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -