Matching m1 = new Matching( docBase, docA );
Matching m1 = new TriMatching( docA, docBase, docB );
  public void runBM( String[] args ) {   BranchNode docA=null;   BaseNode docBase=null;   final String OTHER = "2";    if( args.length < 2 ) {      System.out.println("Usage: TreeDM base.xml deriv.xml");      System.exit(0);   }   try {      XMLParser p = new XMLParser();      System.out.println("Parsing " + args [0]);      docBase = (BaseNode) p.parse(args[0] + PSEP + "b.xml",baseNodeFactory);      System.out.println("Parsing " + OTHER + ".xml");      docA =  (BranchNode) p.parse(args[0] + PSEP+ OTHER+".xml",branchNodeFactory);      System.out.println("OK.");   } catch ( Exception e ) {    e.printStackTrace();    System.exit(0);   }//   System.exit(0);  System.out.println("Building matching...");   Matching m1 = new Matching( docBase, docA );  System.out.println("done.");   java.io.File mf = new java.io.File( args[0] + PSEP+ "match"+OTHER );   if( mf.exists() ) {    System.out.println("Additional matchings from match"+OTHER);//    m1.matchFromFile(mf);   }   //   System.out.println("Showing area tree..." );//   java.awt.Frame treeView = new TreeView(m1.atRoot , null, m1, null );   System.out.println("Showing mapping..." );   java.awt.Frame treeView = new TreeView((BaseNode) docBase , (BranchNode) docA  );   treeView.setVisible(true);  }